c#,silverlight,检查ref传递的字段是否已应用属性

时间:2011-11-26 11:36:12

标签: c# silverlight reflection

在基类中,我有以下派生类的方法:

protected virtual void SetValue<T>(ref T field, string propertyName, T value)
{
   //assign value to the field and do some other staff 
   ...
}

有没有办法检查fieldVar是否已应用某个属性(例如DataMemberAttribute)?

2 个答案:

答案 0 :(得分:0)

不,没有办法做到这一点,只是看起来你也被告知了房产名称。

如果您可以找到该字段的FieldInfo,那么您可以找到任何属性,但不能仅通过ref参数找到。

答案 1 :(得分:0)

在行之间读取一组私有字段,这些字段支持公共属性的值。在部分或全部这些属性上,您附加了一些要发现的数据属性。

 PropertyInfo pi = this.GetType().GetProperty(propertyName);
 object[] dataMemberAttributes = pi.GetCustomAttributes(typeof(DataMemberAttribute, true);
 if (dataMemberAttributes.Length > 0)
 {
     DataMemberAttribute dataMemberAttribute = (DataMemberAttribute)dataMemberAttributes[0];
     // Do stuff with the attribute.
 }