在基类中,我有以下派生类的方法:
protected virtual void SetValue<T>(ref T field, string propertyName, T value)
{
//assign value to the field and do some other staff
...
}
有没有办法检查fieldVar是否已应用某个属性(例如DataMemberAttribute)?
答案 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.
}