1

ここで質問するのはこれが初めてですが、ご容赦ください。オブジェクトにアトリビュートをアタッチする方法を学ぼうとしていますが、それらを取得できません。だからここに私の属性クラスがあります:

[AttributeUsage(AttributeTargets.Property)]
public class attr : System.Attribute
{
    public readonly Boolean Required;

    public string formID { get; set; }

    public attr(Boolean required)
    {
        this.Required = required;
    }

    public attr(Boolean required, string formID)
    {
        this.Required = required;
        this.formID = formID;
    }
}

オブジェクトの 1 つのプロパティに「アタッチ」する方法のサンプル:

public class MyObject
{
    [attr(true, "formRequireField")]
    public int RequiredField { get { return REQUIREDFIELD; } set { REQUIREDFIELD = value; } }
}

そして、現在属性を取得している方法のコード:

foreach (PropertyInfo property in typeof(MyObject).GetProperties())
{
    Attribute[] attributes = Attribute.GetCustomAttributes(property, false);
    foreach (Attribute attribute in attributes)
    {
        if (attribute is attr)
        {
            attr propAttr = (attr)attribute;
            if (propAttr.Required)
            {
                Page.Form.FindControl(propAttr.formID);
            }
        }
    }

私もこのフォーマットを試しました

    object[] attributes = property.GetCustomAttributes(true);
    foreach (object attribute in attributes)
    {
        if (attribute is attr)
        {
            attr propAttr = (attr)attribute;
            if (propAttr.Required)
            {
                Page.Form.FindControl(propAttr.formID);
            }
        }
    }
}

どちらも 0 オブジェクトを返します。それで、何が起こっているのか本当にわかりませんか?

前もって感謝します。

4

0 に答える 0