ここで質問するのはこれが初めてですが、ご容赦ください。オブジェクトにアトリビュートをアタッチする方法を学ぼうとしていますが、それらを取得できません。だからここに私の属性クラスがあります:
[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 オブジェクトを返します。それで、何が起こっているのか本当にわかりませんか?
前もって感謝します。