prism中ImportingConstructor构造注入时的参数匹配
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
prism中ImportingConstructor构造注⼊时的参数匹配
通常情况下的构造注⼊很简单,只需要在构造函数上加⼊ImportingConstructor标签,然后在构造函数中加⼊需要的参数即可,但若所加的参数特别指定了Contact契约,那么就需要在所需的参数前指定契约⽅式。
如导出部件定义如下
[Export("UserViewModel", typeof(UserViewModel))]
public class UserViewModel:MyViewModelBase
{
....
}
那么在需要利⽤构造注⼊时就需要按如下⽅式:
[ImportingConstructor]
public NewUser([Import("UserViewModel", typeof(UserViewModel))]UserViewModel viewModel)
{
InitializeComponent();
this.DataContext = viewModel;
}
在利⽤MEF进⾏silverlight开发时对于部件的契约要格外注意,最好按照⼀个规范定义契约,避免因契约不⼀致导致的错误!另外如需引⼊部件则⼀定要将该部件所对应的dll,或xap加⼊到⽬录中,否则会⽆法找到需要导⼊的部件。