Estoy en una situación en la que me gustaría crear una instancia de un objeto de un tipo que se determinará en tiempo de ejecución. También necesito realizar un lanzamiento explícito a ese tipo.Crear una instancia de un objeto con un tipo determinado en el tiempo de ejecución
Algo como esto:
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);
}
Esto obviamente no es un código válido, pero espero que transmite la esencia de lo que estoy tratando de hacer. El método en el que estoy trabajando tendrá que realizar la operación de cálculo de referencias en ~ 35 tipos diferentes. Tengo varios otros métodos que deberán hacer algo similar con el mismo conjunto de tipos. Por lo tanto, me gustaría aislar la lógica de determinación del tipo de estos métodos para que solo tenga que escribirla una vez, y para que los métodos se mantengan limpios y legibles.
Debo admitir que soy un principiante total en el diseño. ¿Alguien podría sugerir un buen enfoque para este problema? Sospecho que podría haber un patrón de diseño apropiado que desconozco.
Tal http://msdn.microsoft.com/en- us/library/system.activator.aspx puede ayudarlo?A menudo es útil para crear instancias de objetos cuyo tipo solo conoce en tiempo de ejecución. Se puede hacer con Reflection regular pero es un poco más complicado. No tengo ideas sobre su diseño, así que no responderé. – Skurmedel
posible duplicado de [Obtener una nueva instancia de objeto de un Tipo] (http://stackoverflow.com/questions/752/get-a-new-object-instance-from-a-type) – nawfal