10

Windows 8 で MEF を使用しようとしています。

AssemblyCatalogコンテナーのmy を構築するには、アセンブリへの参照が必要です。以前は、次のようにしていました。

var catalog = new AssemblyCatalog(typeof(App).Assembly);

不思議なことに、プロパティはオブジェクトAssemblyに存在しなくなりました。Type良い回避策を知っている人はいますか?アセンブリを取得する別の方法はありますか? を使用してロードできましAssembly.Loadたが、アセンブリの名前が必要です。タイプからもそれを得ることができません。

DirectoryCatalog可能な代替手段を使用していますか? 私はその考えが好きではありませんが、私は必要なことをします。

4

2 に答える 2

17
using System.Reflection;

type.GetTypeInfo().Assembly代わりに使用してください。

于 2011-09-30T15:03:06.117 に答える
6

メトロスタイルアプリの構築に関する大量のドキュメントを掘り下げた後、答えが見つかりました。

http://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=VS.85%29.aspx#reflection

Typeクラスのリフレクションの側面は、という新しいオブジェクトに移動されましたSystem.Reflection.TypeInfo。を呼び出すと、このクラスのインスタンスを取得できますtype.GetTypeInfo()

したがって、アセンブリを取得するには: typeof(App).GetTypeInfo().Assembly.

必要using System.Reflection;

于 2011-09-30T15:02:27.223 に答える