Я создаю приложение на основе WPF. Я использую Unity для внедрения всех различных зависимостей в мое приложение (определено в App.xaml.cs).
В моем окне MainApplication у меня есть довольно сложный пользовательский элемент управления без внешнего вида, полученный из Control (в него встроено еще около десяти элементов управления).
Я хотел бы добавить виртуальную машину в этот пользовательский элемент управления, не связывая ее с любым другим объектом в моем приложении (за исключением, конечно, App.xaml.cs)
Инъекция в любое окно WPF в моем приложении работает хорошо, но когда я пытаюсь внедрить пользовательский элемент управления, я сталкиваюсь с другой ситуацией:
1. Если я использую
container.RegisterInstance (container.Resolve);
DI создает фиктивный экземпляр MyCustomControl и внедряет виртуальную машину (используя атрибут [Dependency]). Однако этот конкретный экземпляр не используется, когда я использую его в своем XAML:
, в этом случае он инициализирует новый MyCustomControl, игнорируя любые зависимости.
- Если я использую
container.RegisterType ();
MyCustomControl полностью игнорирует инъекцию.
Я понимаю, что, возможно, я делаю что-то не так (не только технически), и я действительно стараюсь не связывать этот элемент управления (что, очевидно, решит проблему).