0

MEF を使用しており、プラグイン ディレクトリはc:\dev\plugins

フォームがありますが、開くと次のエラーが表示されます。

構成で 1 つの構成エラーが発生しました。根本的な原因を以下に示します。詳細については、CompositionException.Errors プロパティを確認してください。1) エクスポート 'Helper (ContractName="IHelper")' はタイプ 'IHelper' に割り当てられません。結果: インポート 'helper (ContractName="IHelper")' をパーツ 'Manager' に設定できません。要素: helper (ContractName="IHelper") --> Manager`

同じエクスポートを含む 2 つのアセンブリがありますが、DirectoryCatalog一度に 1 つのみをロードするために使用しています。

このエラーはデザイナーにのみ表示されるようです。コードを実行すると、例外は発生せず、アプリは正常に動作します。デザイナーは私にオプションを与えてくれますがIgnore and Continue、私はこれを一度行って失敗したので、控えています.

public class Manager
    {

        private static readonly Manager instance = new Manager();

        public static IHelper Helper { get { return Manager.instance.helper; } }

        [Import(typeof(IHelper))]
        internal IHelper helper { get; set; }

        private Manager()
        {

           using (DirectoryCatalog catalog = 
                                    new DirectoryCatalog(@"c:\dev\plugins"))
           {
               using (CompositionContainer container = 
                                              new CompositionContainer(catalog))
               {
                      container.ComposeParts(this);
               }
            }
        }
     }

public interface IHelper
    {
        string LabelText { get; }
    }


[Export(typeof(IHelper))]
public class SpecificHelper : IHelper
{
    public string LabelText
    {
         get { return "Id:"};
    }
}
4

0 に答える 0