Betrachten Sie die folgende Klasse erhalten:Wie kann ich Reflection verwenden Sie den Wert eines statische Eigenschaft eines Typ ohne eine konkrete Instanz
public class AClass : ISomeInterface
{
public static int AProperty
{
get { return 100; }
}
}
ich eine andere Klasse dann wie folgt:
public class AnotherClass<T>
where T : ISomeInterface
{
}
was ich zB über:
AnotherClass<AClass> genericClass = new AnotherClass<AClass>();
Wie kann ich den statischen Wert von AClass.AProperty aus meinem Generic bekommen ohne eine konkrete Instanz von AClass zu haben?
Großen. Das einzige Problem, das ich jetzt entdeckt habe, ist, dass ich die statische Eigenschaft in der Schnittstelle nicht definieren kann, die es tun muss. Ich denke, ich könnte eine nicht statische Eigenschaft und eine statische Eigenschaft hinzufügen, die denselben Wert zurückgibt, einen für die zu verwendende Instanz und einen für den Typ, auf den verwiesen wird. Oder gibt es einen anderen Weg? –
Alternativ könnte ich die nicht statische Eigenschaft mit neuen T(). AProperty, aber das scheint wie es wäre schlechte Praxis. Was denken Sie? –
@Stewart: Nun, die Konstruktion eines neuen 'T' könnte teuer sein. Es ist schade, dass Interfaces statische Dinge nicht beinhalten können. – Vlad