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)?
不,没有办法做到这一点,除了它看起来像你也被告知属性名称。
如果您可以找到字段的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.
}