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:"};
}
}