Làm cách nào để có được ConstructorInfo
cho một hàm tạo tĩnh?Làm cách nào để gọi một hàm tạo tĩnh có phản ánh?
public class MyClass
{
public static int SomeValue;
static MyClass()
{
SomeValue = 23;
}
}
Tôi đã thử những điều sau đây và thất bại ....
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 nhờ Jon! Câu trả lời dường như rất rõ ràng bây giờ * grin * –
Tôi cần truy cập nó theo thứ tự [để áp dụng một khía cạnh cho nó bằng cách sử dụng PostSharp] (http://www.sharpcrafters.com/). Tôi đoán rằng vẫn là một trường hợp sử dụng hợp lệ. –
Bị bỏ phiếu, chỉ vì câu trả lời tiếp theo là (ít nhất là về lý thuyết) an toàn hơn nhiều. p.s. ... Chết tiệt, tôi vừa mới trả lời câu trả lời của Jon Skeet. Tôi không đậm? –