Assuming you have a real need to access the instances of your run-time created objects by names like: "axCZKEM1" , "axCZKEM2" :
using czClass = YourNameSpaceGoesHere.zkemkeeper.CZKEMClass;
private Dictionary<string, czClass> dctCZ = new Dictionary<string, czClass>();
private const string czNameBase = "axCZEM_";
private void initializeCZClasses()
{
int nCZ = int.Parse
(System.Configuration.ConfigurationSettings.AppSettings["NoOfPunchStation"]);
for (int i = 1; i <= nCZ; i++)
{
string name = czNameBase + i.ToString();
dctCZ.Add(name, new czClass(name, i));
}
}
var cz = dctCZ["axCZKEM_4"];
bool is4 = cz.someInt == 4 && cz.Name == "axCZKEM_4";
Note that we assume the zkemkeeper.CZKEMClass class has two Properties, one string (Name), one int (someInt) , that are set in its constructor call.