我有一个Silverlight应用程序,我正在使用Entity Framework和Ria Services。
我需要创建一个自定义属性,用于识别某些属性。
实施例。 :
public class Person
{
[IsSpecialProperty]
public string PersonProperty { get; set; }
}
public class IsSpecialPropertyAttribute : Attribute
{
}
我将类文件“IsSpecialPropertyAttribute.shared.cs”命名为从客户端访问它。
从客户端,我使用的方法:
var attributes = (IsSpecialPropertyAttribute[])Attribute.GetCustomAttributes(memberInfo, typeof(IsSpecialPropertyAttribute));
此方法适用于系统属性,但不适用于我的自定义属性...
知道为什么吗?
此方法为我提供了所有其他属性,但不是我创建的自定义...
var test = Attribute.GetCustomAttributes(memberInfo);
答案 0 :(得分:0)
你可以尝试另外两种方法:
var attributes = memberInfo.GetCustomAttributes(typeof(IsSpecialPropertyAttribute), true);
或:
var attribute = person.GetType().GetCustomAttributes(typeof(IsSpecialPropertyAttribute), true).FirstOrDefault() as IsSpecialPropertyAttribute;