1

コードは次のとおりです。

引数の値に名前でアクセスする方法を探しています。

属性は次のようになります。

[AttributeUsage(AttributeTargets.Field)]
public class EDataAttrAttribute : Attribute {

    public EDataAttrAttribute(int GroupID, int MinimumPermissionToEdit, bool ForcePersianLetter = false) {
        this.GroupID = GroupID;
        this.MinimumPermissionToEdit = MinimumPermissionToEdit; 
    }


    public int GroupID { get; private set; }
    public int MinimumPermissionToEdit { get; private set; } 

}

public class EUser {
    [EDataAttr(1, 1)]
    public string FirstName;
}

                    var attr = typeof(T).GetField("FirstName").CustomAttributes.FirstOrDefault(a => a.AttributeType == typeof(EDataAttrAttribute));
                    int n = attr.ConstructorArguments.Count; // 2 !
                    int v = attr.NamedArguments.Count;       // 0 !

インデックスintがわからないときにMinimumPermissionToEdit値を取得する方法。
私が知っているのは、MinimumPermissionToEdit という名前だけです。

4

2 に答える 2

2

を使用NamedArgumentsしてそれらにアクセスできます。MemberInfoプロパティ onを使用するCustomAttributeNamedArgumentと、名前付き属性引数を使用して設定されるメンバーを反映​​できます。

于 2013-04-10T09:42:47.433 に答える