10

Tôi đang cố gắng xác định và truy xuất thuộc tính tùy chỉnh trên một lớp trong thư viện di động Ứng dụng kiểu Metro.Thuộc tính lớp tùy chỉnh trong Ứng dụng kiểu Metro

Something như

[AttributeUsage(AttributeTargets.Class)] 
public class FooAttribute : Attribute 
{ 
} 

[Foo] 
public class Bar 
{ 
} 


class Program 
{ 
    static void Main(string[] args) 
    { 
     var attrs = CustomAttributeExtensions.GetCustomAttribute<FooAttribute>(typeof(Bar)); 
    } 
} 

này hoạt động trong bình thường 4.5, nhưng trong một thư viện di động nhắm mục tiêu ứng dụng phong cách metro nó nói với tôi

Cannot convert type 'System.Type' to 'System.Reflection.MemberInfo' 

Cảm ơn

+0

Rõ ràng, bạn cần làm var attrs = CustomAttributeExtensions.GetCustomAttribute (typeof (Bar) .GetTypeInfo()); –

+1

http://msdn.microsoft.com/en-us/library/windows/apps/hh535795%28v=vs.110%29.aspx –

+1

@ user1364325 nếu mã trong nhận xét ở trên của bạn giải quyết được sự cố, vui lòng đăng nó dưới dạng một câu trả lời và đánh dấu nó là đã trả lời. – Adam

Trả lời

4

Hoặc, quá mở rộng đòn bẩy như họ đã có nghĩa:

var attr = typeof(Bar).GetTypeInfo().GetCustomAttribute<FooAttribute>(); 
2

Theo OP:

Bạn n eed để làm var attrs = CustomAttributeExtensions.GetCustomAttribute (typeof (Bar) .GetTypeIn‌ fo());

Điều này dường như đồng ý với the documentation

Các vấn đề liên quan