Je suis dans une situation où je voudrais instancier un objet d'un type qui sera déterminé au moment de l'exécution. J'ai aussi besoin d'effectuer un cast explicite de ce type.
Quelque chose comme ceci:
static void castTest(myEnum val)
{
//Call a native function that returns a pointer to a structure
IntPtr = someNativeFunction(..params..);
//determine the type of the structure based on the enum value
Type structType = getTypeFromEnum(val);
structType myStruct = (structType)Marshal.PtrToStructure(IntPtr, structType);
}
Ce n'est évidemment pas un code valide, mais j'espère qu'il traduit l'essence même de ce que je suis en train de faire. La méthode que je suis en train de travailler sur aurez à effectuer l'opération de regroupement sur ~35 différents types. J'ai plusieurs autres méthodes qui devront faire quelque chose de similaire avec le même ensemble de types. Donc, j'aimerais isoler le type de détermination logique de ces méthodes, de sorte que je n'ai besoin de l'écrire une fois, et donc que les méthodes rester propre et lisible.
Je dois avouer être un novice total lors de la conception. Quelqu'un peut-il suggérer une bonne approche de ce problème? Je présume qu'il pourrait être un motif de conception que je suis pas au courant de.