在对 MEF 进行了一些研究之后,我发现了CreationPolicy.Shared属性,根据 MSDN:
指定关联 ComposablePart 的单个共享实例将由 CompositionContainer 创建并由所有请求者共享。
只要我始终确保只有一个容器访问我使用此策略导出的类,这听起来不错。那么我该如何确保只有一个容器能够访问我导出的类型呢?这是我的场景:
我有一个 Windows 服务,它需要为一些内存中的数据利用类似单例的类。数据是非持久的,所以我希望在服务启动时重新创建它,但一旦服务停止,它就没有任何用处。我的服务中的多个线程需要以线程安全的方式读取和写入此对象,因此我最初的计划是从ConcurrentDictionary继承以确保针对它的线程安全操作。
将要利用这个类的线程都继承自一个抽象基类,那么有没有办法让这个类(并且只有这个类)从 MEF 导入它并按照我想要的方式进行这项工作?
感谢您提供的任何提示,我对 MEF 很陌生,所以我仍在学习细节