現在、ビューモデルに次のコンストラクターがあります
public CartViewModel() : this(new PayPalCompleted()) { }
public CartViewModel(IPayPalCompleted serviceAgent)
{
if (!IsDesignTime)
{
_ServiceAgent = serviceAgent;
WireCommands();
}
}
アプリケーションのPrismとMEFをモジュール化しようとしています。モジュールは正常に動作しますが、ビューモデルの1つで問題が発生しています。
私の問題は、コンストラクターでEventAggregatorをインポートする必要があることですが、パラメーターのないコンストラクターとインポートコンストラクターでこれを行う方法に問題があります。
[ImportingConstructor]
public CartViewModel([Import] IEventAggregator eventAggregator)
{
if (!IsDesignTime)
{
_ServiceAgent = new PayPalCompleted();
TheEventAggregator = eventAggregator;
WireCommands();
}
}
つまり、私はこのようなことをしたい
public CartViewModel() : this(new PayPalCompleted(), IEventAggregator eventAggregator) { }
[ImportingConstructor]
public CartViewModel(IPayPalCompleted serviceAgent, IEventAggregator eventAggregator)
{
...stuff
}
私が知っているのは正しくない...何ですか?
問題の一部は、インポートコンストラクターを使用する場合、コンストラクターのパラメーターはデフォルトでインポートパラメーターであるということです。つまり、MEFが正しく構成できるようにするには、対応するエクスポートが必要です。これはおそらく、Paypayサービスをエクスポートする必要があることを意味しますか?それともすべきですか?
ありがとう