Considérese la clase siguiente:¿Cómo puedo utilizar la reflexión para obtener el valor de una propiedad estática de un tipo sin una instancia concreta
public class AClass : ISomeInterface
{
public static int AProperty
{
get { return 100; }
}
}
entonces tengo otra clase de la siguiente manera:
public class AnotherClass<T>
where T : ISomeInterface
{
}
me ejemplo a través de la cual:
AnotherClass<AClass> genericClass = new AnotherClass<AClass>();
¿Cómo puedo obtener el valor estático de AClass.AProperty desde dentro de mis genericClass sin tener una instancia concreta de AClass?
Grande. El único problema que he descubierto ahora es que no puedo definir la propiedad estática en la interfaz, lo que debe hacer. Supongo que podría agregar una propiedad no estática y una propiedad estática que devuelva el mismo valor, uno para la instancia a usar y otro para hacer referencia al tipo. ¿O hay otra forma de evitarlo? –
Como alternativa, podría obtener la propiedad no estática usando la nueva propiedad T() .PROperty, pero parece que sería una mala práctica. ¿Qué piensas? –
@Stewart: Bueno, construir una nueva 'T' puede ser costoso. Es una pena que las interfaces no puedan incluir cosas estáticas, de hecho. – Vlad