Ninject 프레임 워크를 사용하여 wpf 응용 프로그램에 DI를 추가합니다. 커널을 App 클래스의 정적 멤버 인 으로 저장하는 것이 적절합니까 아니면 App 클래스에서 삭제하고 인스턴스를 만들 때마다 (IUnitOfWork unit = new ...) 사용하기 전에 Windows의 코드에서 사용해야합니다. 블록? 다른 창에서 커널 호출맞습니까? 응용 프로그램의 종속 변수 커널을 정적 변수로 저장 하시겠습니까?
App.xaml.cs를
public partial class App : Application
{
internal static StandardKernel kernel;
protected override void OnStartup(StartupEventArgs e)
{
kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
base.OnStartup(e);
}
}
:
using (IUnitOfWork unitOfWork = App.kernel.Get<IUnitOfWork>())
{
comboFloors.ItemsSource = unitOfWork.Buildings.GetLivingFloors();
}