1
让我解释一下我需要的一个非常简单的例子。假设我有一个使用MEF的VS解决方案,并且具有以下广泛的项目和类结构。如何在我的解决方案中使用相同的CompositionConainer对象(或包含的组件)?
- 服务器(项目)
- Server.cs(包含
Main
方法,用于启动该应用程序。)
- Server.cs(包含
- 共享(项目)
- \合同
- ILogger.cs 个
- ISettings.cs
- \合同
- 设置(项目)
- MySettings.cs(类实施ISettings)
- 记录器(项目
- MyLogger.cs(类实施ILogger)
鉴于...
- 上述所有项目的引用共享项目。
- 服务器是启动应用程序,它将所有目录初始化为应用程序容器。
...我可以启动一个应用程序,并从我Server
应用程序中初始化的MySettings
和MyLogger
单身。到现在为止还挺好。
现在,我们假设MyLogger
需要访问输出目录的设置文件。目录位置的值存储在MySettings
对象中,该对象在Server.cs
中初始化为CompositonContainer
。
由于我使用的是MEF,因此我不想在Logger
项目中参考Settings
项目。相反,我想使用MEF获取当前应用程序ISettings
singleton,该应用程序在我的Server
应用程序的开始处初始化,并且与服务器CompositionContainer
一起存在。
如何使用MEF正确访问MyLogger
内的MySettings
单身人士?
Thabk您的回答!当我周一回到我的办公室时,我会验证这一点。这似乎是解决方案。 – RLH