【发布时间】:2014-07-29 17:30:40
【问题描述】:
我需要在整个应用程序中拥有一个对象 (RuleFile),表示要序列化的文件,例如与我的应用程序关联的 word (*.docs) 文件。
我使用 Prism 5 和 MEF 作为依赖注入容器。
[Export]
[Serializable()]
public class RuleFile : NotificationBase, IRuleFile { }
现在我用[Export] 装饰了对象,并尝试将其导入MyViewModel 之一,但它给出了null。
public class MyViewModel : ViewModelBase
{
[Import]
private RuleFile RuleFile; // 'null' coming here
}
请指导我我错过了什么?或者告诉我任何其他方式来最好地处理这种情况。
【问题讨论】:
-
你有什么错误吗?是因为你的会员是私人的吗?在 mef.codeplex.com/wikipage?title=Declaring%20Imports 上,它说“注意:请注意,在完全信任的支持下导入或导出私有成员(字段、属性和方法)可能会在中等/部分信任下出现问题。”
-
不会出现错误。正如你提到的,即使我将我的私人成员更改为公共财产,但仍然没有运气。
-
抱歉,我不太了解 Prism。您是在配置 MEF 组合(容器和目录)还是应该由 Prism 来处理它?
标签: c# dependency-injection prism mef prism-5