まず、あなたはすべて素晴らしいです。私はこのサイトでMEFの回答を探しています。MEF Importing null
私の問題は、以下の通りである。
私はそれらの多くの[インポート]を有するいくつかのアセンブリおよび組立が行われる一つのメインのアプリケーションを持っています。今問題は、それらの輸入が常に満たされていないということです。
単純な小さなプロジェクトでこの動作を再現しようとしましたが、次のソースコードがありました。
私はMEFについていくつか迷っていますか?
助けてください!皆さん、ありがとうございました!
アセンブリインターフェース:
namespace Interfaces
{
public interface IClass1
{
void Trigger();
}
public interface IClass2
{
void Trigger();
}
public interface IClass3
{
void Trigger();
}
}
アセンブリライブラリ1:
namespace Library1
{
[Export(typeof(IClass1))]
public class Class1:IClass1
{
#region IClass1 Members
public void Trigger()
{
}
#endregion
}
}
アセンブリLibrary2:
:私は次の操作を行って、全体MEFのものを組み立てるメインプログラムの開発にnamespace Library2
{
[Export(typeof(IClass2))]
public class Class2:IClass2
{
[Import]
public IClass1 Class1 { get; set; }
public void Trigger()
{
}
}
}
しかし、以下のクラスが満たされた輸入品のいずれかを持っていないことをした後:私は容器の中に探していたとき
namespace MEFTest
{
public class Class3:IClass3
{
[Import]
public IClass1 Class1 { get; set; }
[Import]
public IClass2 Class2 { get; set; }
public void Trigger()
{
Class1.Trigger();
Class2.Trigger();
}
}
}
、私はIClass1とICLass2が構成されていたことがわかります。
[インポート]がClass3で満たされていないのはなぜですか?私は何かが完全に欠けていると思います...
ありがとうございました!
限りClass3には、あなたが任意のインポートは表示されませんMEFによってインスタンス化されていないとして、マイケル
ああのOKを知らない - 右 - そう私はSatisfyImportsOnceを使用する必要がありますでしょうか? – Michael
なぜあなたはclass3をexportとして宣言せず、MEFにclass3インスタンスを作成させますか?あなたがclass3にCompositionContainerインスタンスが必要なのを望んでいないのですが、私はあなたが欲しいと思うことはしません。 – blindmeis
OK - クラス3のインスタンスを保持するにはどうすればいいですか? – Michael