Я использую Window Forms C# с Ninject версии: 2.0.0.1реализация Ninject в Window Forms - C#
Первый Установили Ninject Пакет: ninject.extensions.infrastructure.winforms
Во-вторых, я создал новый класс со следующим кодом.
public class CustomModule : NinjectModule
{
public override void Load()
{
Bind<IDAL.IORDR>().To<DAL.DAL_ORDR>();
}
}
В-третьих, в виде окна я сделал ниже
public partial class SODetails : Form
{
public IORDR _IORDR { get; set; }
[Inject]
public SODetails(IORDR ORDR)
{
_IORDR = ORDR;
}
public SODetails()
{
InitializeComponent();
}
}
Наконец в Program.cs, я сделал следующий код
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var kernel = new StandardKernel(new CustomModule());
var form = kernel.Get<SODetails>();
Application.Run(form);
}
Хотя я могу впрыснуть но форма не показывает никакого контроля. Я делаю неправильную реализацию Ninject?
alright ... u вызывается InitializeComponent() из обоих конструкторов. Любая конкретная причина не использовать цепочку конструкторов? – Kapoor
Injection Dependency никогда не позволит мне вызвать конструктор по умолчанию. – Pankaj
Конечно .. если вы вызываете конструктор по умолчанию напрямую, у вас никогда не будет шанса ввести зависимость. – Kapoor