Устранить зависимости с помощью Castle Windsor с помощью MEF в надстройке Visual Studio 2010 - PullRequest
1 голос
/ 11 мая 2011

Мне было интересно, есть ли лучшие практики по использованию Castle Windsor с надстройкой Visual Studio 2010, которая использует MEF для создания своих элементов управления, таких как IWpfTextView.

Все зависимости регистрируются при создании VsPackage. Как я могу позже разрешить эти зависимости, когда IWpfTextViewCreationListener создается через MEF, когда-нибудь позже? Стоит ли выставлять контейнер как синглтон и получать к нему доступ, или есть лучший способ?

Редактировать Вот что я пытаюсь сделать. Когда VsPackage создан, Виндзор связывает все зависимости, что, конечно, прекрасно.

Мой плагин является расширяемым типом редактора, поэтому после загрузки решения и открытия файла кода я получаю обратный вызов в мой класс, который наследует IWpfTextViewCreationListener (и экспортируется с [Export(typeof(IWpfTextViewCreationListener))] через MEF ( это делается автоматически в Visual Studio)

Это происходит в другом контексте, то есть у меня нет доступа к VsPackage из этого класса, и любые необходимые мне зависимости не будут инициализированы. Так что на данный момент я не уверен, как я могу получить те зависимости, которые были подключены ранее Виндзор.

Надеюсь, это прояснит ситуацию.

(Вы можете попробовать создать свой собственный проект extensibilty, используя Файл | Новый проект | Visual C # | Расширяемость | Украшение текстового редактора , например, чтобы увидеть, как (и когда) создается TextAdornment1Factory.

...