Поведение, подобное синглтону, с внедрением зависимостей

После некоторых исследований MEF я наткнулся на CreationPolicy.Свойство Shared, которое согласно MSDN:

Указывает, что один общий экземпляр связанного ComposablePart будет создан CompositionContainer и разделен всеми запросившими.

Звучит неплохо, если я всегда гарантирую, что один и только один контейнер когда-либо получает доступ к классу, который я экспортирую с помощью этой политики. Итак, как мне обеспечить, чтобы только один контейнер когда-либо обращался к моему экспортируемому типу? Вот мой сценарий:

У меня есть служба Windows, которой нужно подключиться к одноэлементному классу для некоторых данных в памяти. Данные непостоянны, поэтому я хочу, чтобы они создавались заново при каждом запуске службы, но они бесполезны после остановки службы. Несколько потоков в моей службе должны будут читать и записывать этот объект потокобезопасным способом, поэтому мой первоначальный план состоял в том, чтобы наследоваться от ConcurrentDictionary, чтобы обеспечить потокобезопасные операции с ним.

Все потоки, которые будут подключаться к этому классу, наследуются от одного абстрактного базового класса, поэтому есть ли способ импортировать этот класс (и только этот класс) из MEF и заставить его работать так, как я хочу?

спасибо за любые советы, я новичок в MEF, поэтому я все еще изучаю все тонкости

7
задан BrokenGlass 15 June 2012 в 19:25
поделиться