¿Cómo puedo obtener el ConstructorInfo
para un constructor estático?¿Cómo invoco un constructor estático con reflejo?
public class MyClass
{
public static int SomeValue;
static MyClass()
{
SomeValue = 23;
}
}
He intentado lo siguiente y no ....
Type myClass = typeof (MyClass);
// throws exception
myClass.TypeInitializer.Invoke(null);
// returns null (also tried deleting BindingFlags.Public
ConstructorInfo ci = myClass.GetConstructor(BindingFlags.Static|BindingFlags.Public, System.Type.DefaultBinder, System.Type.EmptyTypes, null);
// returns empty array
ConstructorInfo[] clutchingAtStraws = myClass.GetConstructors(BindingFlags.Static| BindingFlags.Public);
+1 gracias Jon! La respuesta parece tan obvia ahora * sonrisa * –
Necesitaba acceder a ella para poder [aplicarle un aspecto usando PostSharp] (http://www.sharpcrafters.com/). Supongo que todavía es un caso de uso válido. –
Downvoted, solo porque la siguiente respuesta es (al menos en teoría) mucho más segura. p.s. ... Maldita sea, acabo de rechazar la respuesta de Jon Skeet. ¿No soy valiente? –