私は自分の問題に対する答えを見つけることができませんでした。MEFを使用してIPlugInを実装するクラスを見つけて作成していますが、最終的には各PlugInクラスの2つのバージョンになります。AggregateCatalogには、パーツとして各クラスの1つのタイプのみを含む1つのアセンブリのみが含まれていると判断しましたが、最終結果としてそれぞれ2つのインスタンスを取得しています。私はおそらく愚かなことをしているだけですが、まだそれを見つけていません。助けていただければ幸いです...
..。
    [ImportMany(typeof(IPlugIn))]
     publicSystem.Lazy>[]プラグイン{get; セットする; }
..。
    //aggregatecatalogにはプラグインクラスを含むdllが1つだけ含まれています。そのうちの4つは
    コンテナ=新しいCompositionContainer(aggregateCatalog、
                                         CompositionOptions.DisableSilentRejection
                                         | CompositionOptions.IsThreadSafe); \
    container.SatisfyImportsOnce(this);
    ..。
    public void StartAll()
    {{
    //ここに8つのプラグインがありますか?どのように?
    if(Plugins == null || Plugins.Count()== 0)
    {{
       log.Warn( "開始できるプラグインがありません!");
       戻る;
    }
        foreach(varプラグインプラグイン)
        {{
            log.Info( "プラグインの開始:" + plugin.Value.GetName());
            plugin.Value.Start();
        }
    }
   ..。
    [Export(typeof(IPlugIn))]
    パブリッククラスMyPlugIn:BasePlugIn、IPlugIn
    ..。
VisualStudioでデバッグしています。アセンブリのロードが1つだけはっきりとわかります。CompositionContainerにはそれぞれ1つしかありません。StartAll()でSatisfyImportOnceを実行した後、各IPlugInクラスのインスタンスが2つあります。これは私がImportManyを使用している方法と何か関係がありますか?私はどんなアイデアにもオープンです。