4

このシナリオを想定

public class CustomerMetaData
{


    [DataType(DataType.EmailAddress)]       
    public String EmailAddress {get;set;}

    [DataType(DataType.Url)]       
    public String UrlUser {get;set;}

}

このクラスのすべてのプロパティのリフレクションDataType を介して取得する必要がありますが、広範な Web 検索では、このタイプの DataAttribute に関する解決策が見つかりませんでした。

もう少し説明します。プロパティのデータ型を知る必要はありません。Like、String、Boolean ....) [DataType(DataType.....)] 属性の一部が必要です。

前もって感謝します。

何かアイデア?

4

2 に答える 2

5

GetCustomAttributesメソッドが必要です。

これはメモリからのものですが、次のようになります。

PropertyInfo[] props = typeof(CustomerMetaData).GetProperties();
foreach(PropertyInfo p in props)
{
    object[] attribs = p.GetCustomAttributes(false);
    // do something with the attributes
}

GetPropertiesメソッドとGetCustomAttributesメソッドを調べて、パラメーターを確認します。プロパティのいずれかが非公開の場合、それらの情報を取得するには、いくつかの追加情報を指定する必要があります。

于 2012-09-18T15:55:27.213 に答える