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



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

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

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

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

如果您可以找到字段的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.
 }

相关内容

  • 没有找到相关文章

最新更新