J’essaie d’utiliser MEF sous Windows 8.
Afin de construire mon AssemblyCatalog
pour le conteneur, il me faut une référence à l’assemblage. Dans le passé, j’aurais juste fait ceci:
var catalog = new AssemblyCatalog(typeof(App).Assembly);
Mystérieusement, la propriété Assembly
n’existe plus sur l’object Type
. Quelqu’un sait-il un bon travail autour? Y a-t-il un autre moyen d’obtenir l’assemblée? Je pourrais le charger en utilisant Assembly.Load
, mais j’aurais besoin du nom de l’assembly. Je ne peux pas obtenir cela du type non plus.
Est-ce que l’utilisation d’un DirectoryCatalog
une alternative possible? Je n’aime pas l’idée, mais je ferai ce dont j’ai besoin.
using System.Reflection;
Utilisez type.GetTypeInfo().Assembly
place.
Vous avez trouvé la réponse après quelques recherches dans la documentation sur la création d’applications de style métropolitain.
http://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=VS.85%29.aspx#reflection
Les aspects de reflection de la classe Type
ont été déplacés vers un nouvel object appelé System.Reflection.TypeInfo
. Vous pouvez obtenir une instance de cette classe en appelant type.GetTypeInfo()
.
Donc, pour obtenir l’ typeof(App).GetTypeInfo().Assembly
: typeof(App).GetTypeInfo().Assembly
.
Nécessite l’ using System.Reflection;