c# – 编译时/构建后依赖注入IoC?

前端之家收集整理的这篇文章主要介绍了c# – 编译时/构建后依赖注入IoC?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前使用 NInject将接口绑定到具体类型并将它们注入到我的类中.但是,我的理解是这是一个运行时间.对我来说,如果有人想改变我的应用程序的行为,它似乎是一个攻击点.

是否有任何东西可以让我将依赖注入IoC迁移到编译时间(阅读:构建后的IL编织/替换)?

详细说明

在我的代码中,我设置了一个绑定

Bind<IFoo>().To<Foo>()
Bind<Bar>().ToSelf().InSingletonScope();

与ctor Foo(酒吧依赖)

在我的应用程序的根源(启动时)我解析图表

var foo = kernel.Get<IFoo>();

假设我没有服务定位器(anti-pattern anyway right?).所以我不再使用内核了.

现在我想要一个“post-build release-compile”,用instanciators替换内核的解析引擎,或者引用constant / singleton等.这样我的代码就像这样;

var foo = kernel.Get<IFoo>();

实际上,在我的最终构建阶段更换IL之后,它看起来像这样:

var bar = new Bar(); 
var foo = new Foo(bar);

并且不再提及NInject了.

我对这个问题的理性是,我正在使用Fody来IL编织我所有的PropertyChanged提升器,我想知道是否可以为依赖注入执行类似的操作.

解决方法

正如所讨论的那样,你所引用的理由并没有加起来.然而,Philip Laureano(Linfu作者)在一段时间内做了 Hiro project,这是预部署DI.不知道它是否去过任何地方……
原文链接:https://www.f2er.com/csharp/100361.html

猜你在找的C#相关文章