После некоторых исследований MEF я наткнулся на CreationPolicy.Свойство Shared, которое согласно MSDN:
Указывает, что один общий экземпляр связанного ComposablePart будет создан CompositionContainer и разделен всеми запросившими.
Звучит неплохо, если я всегда гарантирую, что один и только один контейнер когда-либо получает доступ к классу, который я экспортирую с помощью этой политики. Итак, как мне обеспечить, чтобы только один контейнер когда-либо обращался к моему экспортируемому типу? Вот мой сценарий:
У меня есть служба Windows, которой нужно подключиться к одноэлементному классу для некоторых данных в памяти. Данные непостоянны, поэтому я хочу, чтобы они создавались заново при каждом запуске службы, но они бесполезны после остановки службы. Несколько потоков в моей службе должны будут читать и записывать этот объект потокобезопасным способом, поэтому мой первоначальный план состоял в том, чтобы наследоваться от ConcurrentDictionary, чтобы обеспечить потокобезопасные операции с ним.
Все потоки, которые будут подключаться к этому классу, наследуются от одного абстрактного базового класса, поэтому есть ли способ импортировать этот класс (и только этот класс) из MEF и заставить его работать так, как я хочу?
спасибо за любые советы, я новичок в MEF, поэтому я все еще изучаю все тонкости