I have a situation where I have three separate C# class objects that all have the same properties and methods so their signatures are the same in all respects except for the class name (I am writing a code generator for personal use with each class representing a different design pattern).
There is also a core class which operates as a control point to call each class depending on which design pattern is chosen. The challenge I have is that it would be extremely cumbersome and complex in the control class to populate the many properties and call the many methods separately for each design pattern class so I was attempting to declare a generic object type first, instantiate the proper pattern class inside a switch block, assign the instantiated pattern class to the generic object type outside of the switch block, and finally populate all the necessary properties and call all the necessary methods using the generic object type class.
The result in many different attemtps to do this always result in the compiler returning an error message saying the generic object type class does not contain the properties or methods specifed and I am looking for way to make this happen.
A psuedo-code example of what I am trying to do is as follows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Declare generic object type
object cNetPattern;
// Determine design pattern requested
switch(m_iNETDesignPattern)
{
case (int)eNETDesignPattern.TDSTraversal:
// Instantiate TDS Traversal design pattern class 'clsPattern_1' here
break;
case (int)eNETDesignPattern.Collection:
// Instantiate Collections design pattern class 'clsPattern_2' here
break;
case (int)eNETDesignPattern.ClassProvider:
// Instantiate Class Provider design pattern class 'clsPattern_3' here
break;
}
// Assign specific class type object to generic object type
cNetPattern = clsPattern_n; // Where 'n' is the specific pattern class object instantiated above
// Populate proerties and call methods
cNetPattern.bProperty1 = m_bProperty1;
cNetPattern.Method1();
...many, many more properties and methods
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTE: As mentioned all three specific design patterns have the same property and method signatures.
Any help would be grealy appreciated!