5
我試圖使用GetCustomAttributes()
來獲取在屬性上定義的屬性。問題是該屬性是一個被覆蓋的屬性,我不能解決如何從表達式中提取被覆蓋的屬性。我只能研究如何獲得基類的一個。通過linq獲取重寫屬性的屬性表達式
下面是一些代碼
public class MyAttribute : Attribute
{
//...
}
public abstract class Text
{
public abstract string Content {get; set;}
}
public class Abstract : Text
{
[MyAttribute("Some Info")]
public override string Content {get; set;}
}
現在我試圖讓MyAttribute
出來的抽象類。但我需要通過Expression
來獲取它。這是我一直在使用的:
Expression<Func<Abstract, string>> expression = c => c.Content;
Expression exp = expression.Body;
MemberInfo memberType = (exp as MemberExpression).Member;
var attrs = Attribute.GetCustomAttributes(memberType, true);
不幸的是atts
結束爲空。問題是menberType
最終代替Text.Content
而不是Abstract.Content
類。所以當我得到這些屬性時,它什麼都不返回。
感謝您提供其他問題的鏈接。我搜索了類似的東西,但沒有找到那個。 – Jero 2012-04-30 20:54:59
你給的解決方案是我一直在使用到現在很高興得到一些獨立支持的工作:-)謝謝 – Jero 2012-04-30 20:56:04