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

本文关键字:是否 字段 应用 属性 silverlight 检查 ref | 更新日期: 2023-09-27 18:15:42

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

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

是否有任何方法来检查fieldVar是否有一个属性应用(例如DataMemberAttribute)?

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

不,没有办法做到这一点,除了它看起来像你也被告知属性名称。

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

从字里行间看,你有一组私有字段,支持公共属性的值。在某些或所有这些属性上附加一些您想要发现的数据属性。

 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.
 }