2017-05-12 5 views
2

次のコードを使用して、指定されたクラスのすべてのプロパティ名の簡単なテキストリストを取得できます。データ属性の表示名をC#クラスから抽出していますか?

PropertyInfo[] propertyInfos; 
    propertyInfos = typeof(MyClass).GetProperties(); 
    foreach (var item in propertyInfos) 
    { 
    yield return item.Name.ToString(); 
    } 

しかし、各フィールドの表示名を取得する方法を理解できませんでした。表示名はデータ属性で指定されています。

[Display(Name = "First Name")] 
public string FirstName { get; set; } 

反射を使用する方法はありますか?それともプログラマティックにそれを行うための他の方法ですか?

+1

I反映するための方法があります(知っている)だと思います属性についてGetCustomAttributes()を試してください –

答えて

4
あなたは、このようにタイプによってCustomAttributeを取得することができます

:ちょうど例えば使用

DisplayAttribute attribute = (DisplayAttribute)item.GetCustomAttribute(typeof(DisplayAttribute)); 

は今、あなたはDisplayAttributeフィールドの任意の値を取得することができます

attributes.Name 
関連する問題