私は奇妙なMEFの問題を抱えています。これをテストプロジェクトでテストしましたが、すべてうまく機能しているように見えますが、実際のプロジェクトでは何らかの理由で機能していません
これはエクスポートコードです
public void RegisterComponents()
{
_registrationBuilder = new RegistrationBuilder();
_registrationBuilder
.ForTypesDerivedFrom(typeof(MyType))
.SetCreationPolicy(CreationPolicy.NonShared)
.Export();
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(typeof(MyType).Assembly, _registrationBuilder));
var directoryCatalog = new DirectoryCatalog(PathToMyTypeDerived, _registrationBuilder);
catalog.Catalogs.Add(directoryCatalog);
_compositionContainer = new CompositionContainer(catalog);
_compositionContainer.ComposeParts();
var exports = _compositionContainer.GetExportedValues<MyType>();
Console.WriteLine("{0} exports in AppDomain {1}", exports.Count(), AppDomain.CurrentDomain.FriendlyName);
}
exports count は 0 です :( 理由はありますか?
ログファイルには、これがたくさんあります
System.ComponentModel.Composition 情報: 6 : エクスポートが含まれていないため、ComposablePartDefinition 'SomeOthertype' は無視されました。
「someOtherType」のエクスポートに興味があったので、これで問題ないと思いますが
更新: このリンクを見つけましたが、デバッグした後は賢明ではありませんが、適切にフォローアップしていない可能性があります。
ご指摘ありがとうございます
乾杯