Внедрение зависимостей в WinForms с использованием Ninject и Entity Framework

В настоящее время я работаю над проектом, в котором мы конвертируем наше старое приложение WinForm для хранимых процедур DataSet, чтобы использовать Entity Framework, чтобы новые веб-сайты могли получать доступ к той же объектной модели и репозиториям.

В любом случае, я пытаюсь внедрить Dependency Injection в Forms, чтобы мы могли использовать поддельные репозитории для модульного тестирования. Я использую Ninject по той простой причине, по которой я использовал его ранее на веб-сайтах MVC, однако попытка реализовать это в приложении WinForm оказывается, по меньшей мере, проблематичной, еще больше затрудненной отсутствием информации о DI в WinForms на паутина.

До сих пор я создал Ninject Factory и репозитории, но у меня нетМне очень повезло, что хранилища появились в формах.

Поэтому кто-нибудь может мне помочь или внести какие-либо предложения?

Ниже у меня есть части моего кода, которые могут помочь:

Ninject Factory:

public class NinjectFactory : NinjectModule
{
    private IKernel _ninjectKernel;

    public NinjectFactory()
    {
        _ninjectKernel = new StandardKernel();
    }

    public override void Load()
    {
        _ninjectKernel.Bind(typeof(IRepository)).To(typeof(GenericRepository));
        _ninjectKernel.Bind(typeof(IProductionRepository)).To(typeof(ProductionRepository));
    }
}

Форма с репозиториями:

Public Class TaskForm
    Inherits BaseBusinessDialogForm

    Private _repository As TaskRepository
    Private _task As Production.Task = Nothing

    Public Sub New(ByVal task As Production.Task)

        InitializeComponent()

        _repository = New TaskRepository(ConnectString)

        If task.TaskID = 0 Then
            _task = task
        Else
            _task = _repository.GetByID(task.TaskID)
        End If

        MyBase.BusinessObject = _task
        Me.TaskBindingSource.DataSource = MyBase.BusinessObject

    End Sub

Класс, который запускает форму MDI, которая содержит вышеуказанную форму:

Dim kernel As IKernel = New StandardKernel(New NinjectFactory())
''Dim kernel As IKernel = New StandardKernel(New NinjectFactoryTest())
mfrmMDI = kernel.Get(Of Forms.MDI)()

Application.DoEvents()
mfrmMDI.ShowDialog()

Я понимаю, что мой вопрос немного расплывчат, но яЯ не уверен, где проблема или что мне нужно для завершения.

Спасибо большое

Ответы на вопрос(1)

Ваш ответ на вопрос