gpt4 book ai didi

.net - 使用 Ninject 延迟加载

转载 作者:行者123 更新时间:2023-12-03 22:56:03 25 4
gpt4 key购买 nike

我正在评估ninject2,但似乎无法弄清楚除了通过内核之外如何进行延迟加载。

据我所知,这违背了使用 [Inject] 属性的目的。
是否可以使用 InjectAttribute 但延迟加载?每次实例化一个对象时,我都不想强制构建一个对象图。

具体来说,我真的只是对性能感到好奇。

最佳答案

有一种更简单的方法可以做到这一点:

public class Module : NinjectModule
{
public override void Load()
{
Bind(typeof(Lazy<>)).ToMethod(ctx =>
GetType()
.GetMethod("GetLazyProvider", BindingFlags.Instance | BindingFlags.NonPublic)
.MakeGenericMethod(ctx.GenericArguments[0])
.Invoke(this, new object[] { ctx.Kernel }));
}

protected Lazy<T> GetLazyProvider<T>(IKernel kernel)
{
return new Lazy<T>(() => kernel.Get<T>());
}
}

关于.net - 使用 Ninject 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538132/

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