[Export]
public class MyViewModel : NotificationObject
{
public MyViewModel(Foo foo)
{
DoWorkCommand = new DelegateCommand(DoWork);
MyFoo = foo;
}
[Import]
private IBarService MyBarService { get; set; }
public Foo MyFoo { get; private set; }
public DelegateCommand DoWorkCommand { get; set; }
public void DoWork()
{
MyBarService.DoSomething(MyFoo);
}
}
MyViewModelクラスのインスタンスをパラメータで渡すことはできますか?私はおそらくExportFactor<T>
が私にいくつかのパラメータを渡すだろうと思ったが、そうではない。だから、私が達成しようとしていることを説明するパターンがありますか?MEF - パラメータで初期化する方法はありますか?
単にnew()を実行すると、MyBarService
がnullのままであるため、カットされません。私はExportAttribute
を削除し、ComponentInitializer.SatisfyImports(this)
を使用してnew()を使用すると考えましたが、そのようにすると新しいものにする必要があります。私は両方の世界のベストを期待していました...パラメータを使って何かをインポートする方法がいくつかあります。私はまだデカップリングされていますが、パラメータを設定してViewModelのインスタンスを生成することができます。
いいえFooにExportAttributeが設定されていない限り、これは機能しません。その時点で、ImportAttributeでフィールドにマークを付けるだけで済みます。 – michael