我有public static class MyClass
其中包含許多public static string
參數。通過字符串獲取靜態屬性
繼我有一定的價值
string val = "something";
使用val
我希望能夠得到指定的屬性 - 像MyClass.something
。 我該怎麼做?
我有public static class MyClass
其中包含許多public static string
參數。通過字符串獲取靜態屬性
繼我有一定的價值
string val = "something";
使用val
我希望能夠得到指定的屬性 - 像MyClass.something
。 我該怎麼做?
PropertyInfo propertyInfo = typeof(MyClass).GetProperty("something");
string something = (string) propertyInfo.GetValue(null, null);
另一種方法是檢查您的代碼。恕我直言,通過反射獲取屬性不是最好的主意。所以如果你重寫你的代碼,這些屬性將不會被存儲在靜態字段中,而是存儲在Dictionary<string, string>
中。下面是例子:
public static class MyClass
{
public static readonly Dictionary<string, string> Properites = new Dictionary<string, string>();
public string Property1 { get {return Properties["Property1"];} }
public string Property2 { get {return Properties["Property2"];} }
}
之後,你可以使用MyClass.Property1
或MyClass.Properties["Property1"]
調用它。
你想讓MyClass.something返回字符串「val」或者你是否試圖通過它的名字獲取屬性值?這個問題有點不清楚,你能給出一個代碼的使用示例嗎? – sprite 2010-12-12 15:06:55
對不起。我現在沒有代碼,但回答你的問題,我想通過它的名字獲得一個屬性值。 – hsz 2010-12-12 15:10:23