我有一個static class
與static private readonly
成員通過該類的static constructor
設置。以下是一個簡單的例子。是否可以使用反射來設置靜態類的靜態私有成員?
public static class MyClass
{
private static readonly string m_myField;
static MyClass()
{
// logic to determine and set m_myField;
}
public static string MyField
{
get
{
// More logic to validate m_myField and then return it.
}
}
}
由於上述類是一個靜態類,我不能爲了利用通這樣成FieldInfo.GetValue()
調用來檢索創建它的一個實例,並在以後設置的m_myField
值。有沒有一種方法我不知道要麼使用FieldInfo類來獲取和設置靜態類的值,要麼是唯一的選擇是重構我被要求單元測試的類?
爲什麼會你想要一個實例去反射信息?只需說'typeof(MyClass)',然後進入反射API的有趣位... – flq 2010-02-24 22:15:59
+1,如果它是這樣的話,我會接受答案,因爲我完全沒有意識到Type可以用於Get/SetValue並不一定是類本身的一個實例。謝謝 – JamesEggers 2010-02-24 22:21:35