10

Sto tentando di definire e recuperare attributi personalizzati su una classe in una libreria portatile App Metro Style.Attributi di classe personalizzati in stile Metro App

Qualcosa di simile

[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)); 
    } 
} 

Questo funziona in ordinaria 4.5, ma in una libreria portabile rivolte a un app in stile Metro mi dice

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

Grazie

+0

A quanto pare, è necessario fare attrs var = CustomAttributeExtensions.GetCustomAttribute (typeof (Bar) .GetTypeInfo()); –

+1

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

+1

@ user1364325 se il codice nel commento sopra riportato risolve il problema, per favore pubblicalo come una risposta e contrassegnala come risposta. – Adam

risposta

4

Oppure, anche le estensioni di leva come sono stati concepiti:

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

Secondo l'OP:

Tu n eed per fare var attrs = CustomAttributeExtensions.GetCustomAttribute (typeof (Bar) .GetTypeIn fo());

Questo sembra essere d'accordo con the documentation

Problemi correlati