2010-12-12 6 views
5

public static class MyClassには多くのpublic static stringパラメータが含まれています。 MyClass.somethingのように -文字列で静的プロパティを取得する

私は指定されたプロパティを取得することができるようにしたいvalことを利用し、いくつかの値

string val = "something"; 

を持って後。 どうすればいいですか?

+0

MyClass.somethingが文字列 "val"を返すか、その名前でプロパティ値を取得しようとしていますか?質問は少し不明です、あなたはコードの使用例を与えることができますか? – sprite

+0

申し訳ありません。今はコードがありませんが、あなたの質問に答えると、その名前でプロパティ値を取得したいのです。 – hsz

答えて

12
PropertyInfo propertyInfo = typeof(MyClass).GetProperty("something"); 
string something = (string) propertyInfo.GetValue(null, null); 
0

もう1つの方法は、コードを確認することです。 IMHO、リフレクションでプロパティを取得するのがベストアイデアではありません。したがって、コードを書き直すと、そのプロパティは静的フィールドには格納されず、Dictionary<string, string>に格納されます。あなたがMyClass.Property1MyClass.Properties["Property1"]を使用して、それを呼び出すことができます。その後

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"];} } 
} 

:ここでは一例です。

関連する問題