Tengo un método de C# decir:¿Cómo identificar cada tipo de parámetro en un método de C#?
MyMethod(int num, string name, Color color, MyComplexType complex)
El uso de la reflexión, ¿cómo puedo claramente identificar cada uno de los tipos de parámetros de cualquier método? Quiero realizar algunas tareas por tipo de parámetro. Si el tipo es simple int, string o boolean entonces hago algo, si es Color, XMLDocument, etc. Hago otra cosa y si es de tipo definido por el usuario como MyComplexType o MyCalci, etc., entonces quiero hacer cierta tarea.
Soy capaz de recuperar todos los parámetros de un método usando ParameterInfo y puedo recorrer cada parámetro y obtener sus tipos. Pero, ¿cómo puedo identificar cada tipo de datos?
foreach (var parameter in parameters)
{
//identify primitive types??
//identify value types
//identify reference types
}
Editar: esto es parte de mi código para crear una especie de rejilla propert página donde quiero mostrar la lista de parámetros con tipos de datos para el método seleccionado. Si el parámetro tiene un tipo de referencia/tipo definido por el usuario, entonces quiero expandirlo más para mostrar todos los elementos debajo de él con los tipos de datos.
¿Qué es exactamente lo que quieres hacer con el parámetro de tipo complejo? –
Tienes un problema * mucho * más grande que eso, ¿cómo vas a generar el * valor * adecuado para hacer la llamada? Piense en esto y la respuesta saldrá a la luz. Mire la palabra clave * dynamic *. –
@mace, básicamente, estoy tratando de crear un tipo de página de propiedades, donde la página debe mostrar los parámetros y el tipo. Si es un tipo de referencia como MyComplexType, entonces estoy expandiendo ese tipo para encontrar otro tipo dentro de él.Si no es un tipo de referencia como int, cadena o color, entonces no necesito verificarlo. Espero que entiendas lo que quiero decir. –