gpt4 book ai didi

c# - Ninject 属性注入(inject)返回 null

转载 作者:太空狗 更新时间:2023-10-29 17:54:15 24 4
gpt4 key购买 nike

我有一个包含以下代码的 WinForms 应用程序:

static void Main()
{
IKernel kernel = new StandardKernel(new MyModule());
TestInterface test = kernel.Get<TestInterface>();
}

对于 Module.Load() 事件:

Bind<TestClass>().ToSelf().InSingletonScope();
Bind<TestInterface>().To<TestClass>();

此时 Main() 方法中的 test 是我期望的正确对象。

在稍后的表单中,我使用了属性注入(inject):

[Inject]
TestInterface test {get;set;}

加载表单后,尝试使用 test,但它是一个空对象。

想法?

最佳答案

确保在 IKernel 实例上调用 Inject() 并传入表单实例。这将确保正确注入(inject)所有依赖项。例如……

[Inject]
TestInterface Test { get; set; }

private void Form_Load(object sender, EventArgs e)
{
IKernel kernel = ... // Get an instance of IKernel
kernel.Inject(this);

// Your form dependencies have now been injected and the
// Test property is ready to use
}

关于c# - Ninject 属性注入(inject)返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com