【发布时间】:2013-03-20 20:30:56
【问题描述】:
我的视图模型中目前有以下构造函数
public CartViewModel() : this(new PayPalCompleted()) { }
public CartViewModel(IPayPalCompleted serviceAgent)
{
if (!IsDesignTime)
{
_ServiceAgent = serviceAgent;
WireCommands();
}
}
我正在尝试模块化我的应用程序 Prism 和 MEF。我的模块工作正常,但我的一个视图模型出现问题。
我的问题是我需要在构造函数中导入 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 服务?还是应该?
谢谢
【问题讨论】:
标签: silverlight mvvm mef