Я программист на VB, и я думаю, что отсюда моя проблема.Обычно я могу понять это, но эй.
У меня есть модель представления и я хочу получить доступ к своему контейнеру единства - я использую Prism и silverlight.Поэтому я пытаюсь:
dim container as IUnityContainer
Private Sub New(container as IUnityContainer)
Me.Container = container
end sub
Однако, когда я пытаюсь создать экземпляр моей модели представления из своего представления, я получаю сообщение об ошибке, что все параметры не были предоставлены для новой подпрограммы.Так как мне получить доступ к контейнеру?Я уверен, что я просто дингбат, но все примеры на C # помещают его в сабвуфер с тем же именем, что и класс ...
SOLUTION!
Модель представления должна бытьинициализируется чем-то, что уже использует внедрение зависимостей.Поскольку я использую единицу, это означает, что нам нужно получить экземпляр используемого контейнера.Так как все запускается загрузчиком в какой-то момент вдоль линии, вам нужно проследить это вдоль.
В моем случае я использовал подход, основанный на представлении, поэтому (и я ненавижу это делать, но в настоящее время я неуверен, что лучше) Я разрешаю модель представления через контейнер, который был передан в представление ... Звучит странно, но вот весь код для представления:
Imports Microsoft.Practices.Unity
Partial Public Class CustomerList
Inherits UserControl
' This grabs the container when the class is created
Pblic Sub New(container As IUnityContainer)
InitializeComponent()
'Important -> This resolves the class and adds it to the container
Me.DataContext = container.Resolve(Of CustomerListViewModel)()
End Sub
End Class
Теперь, когда я перепрыгиваю на своюviewmodel, я могу получить доступ к правильному контейнеру!
Если вам нужны пояснения, дайте мне знать