Preguntas etiquetadas con reflection

236
¿Cómo verificar si una variable es una clase o no?

Me preguntaba cómo verificar si una variable es una clase (¡no una instancia!) O no. Intenté usar la función isinstance(object, class_or_type_or_tuple)para hacer esto, pero no sé qué tipo tendría una clase. Por ejemplo, en el siguiente código class Foo: pass isinstance(Foo, **???**) # i want to...

231
Usar isKindOfClass con Swift

Estoy tratando de aprender un poco de Swift Lang y me pregunto cómo convertir el siguiente Objective-C en Swift: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesBegan:touches withEvent:event]; UITouch *touch = [touches anyObject]; if ([touch.view...

210
¿Qué tan costoso es el reflejo .NET?

Constantemente escucho lo mal que es usar la reflexión. Si bien generalmente evito la reflexión y rara vez encuentro situaciones en las que es imposible resolver mi problema sin ella, me preguntaba ... Para aquellos que han usado la reflexión en aplicaciones, ¿han medido los éxitos de rendimiento...

210
¿Cómo obtener una lista de propiedades con un atributo dado?

Tengo un tipo, ty me gustaría obtener una lista de las propiedades públicas que tienen el atributo MyAttribute. El atributo está marcado con AllowMultiple = false, así: [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] Actualmente lo que tengo es esto, pero creo que hay una mejor...

204
Obtener el nombre de la propiedad como una cadena

(Vea a continuación la solución que creé usando la respuesta que acepté) Estoy tratando de mejorar la capacidad de mantenimiento de algunos códigos que implican reflexión. La aplicación tiene una interfaz .NET Remoting que expone (entre otras cosas) un método llamado Ejecutar para acceder a partes...

191
Obteniendo el nombre del ensamblado

La clase de excepción de C # tiene una propiedad de origen que se establece en el nombre del ensamblado de forma predeterminada. ¿Hay otra forma de obtener esta cadena exacta (sin analizar una cadena diferente)? He probado lo siguiente: catch(Exception e) { string str = e.Source; //"EPA" -...