动态运行时依赖项注入
本文关键字:注入 依赖 运行时 动态 | 更新日期: 2023-09-27 17:58:51
这是我的情况:
我有一个基于模板(使用T4)生成内容的应用程序,并且我有多个从ITemplate接口继承的模板类。
我想在Main中做的是在Generator类中定期注入一些ITemplate实现,从配置文件中读取要使用的实现。然后在Main中,我应该调用Generator,它将了解要使用什么模板,并调用适当的TransformText()。
我正在使用Ninject。
这是我第一次在静态类型语言中使用依赖注入,所以我不确定如何继续。。。
问候,
Hugo
如果你真的想在这里使用DI,这是一个简单的例子,但如果你正在搜索类似插件系统的东西,你可能想看看mef。
假设您有一个生成器
public class Generator
{
private ITemplate _template;
public Generator(ITemplate t)
{
_template = t;
}
public void Generate()
{
_template.Generate();
}
}
设置模块。
public class MyNinjectModules : NinjectModule
{
public override void Load()
{
Bind<ITemplate>().To< TemplateImplementation>();
Bind<Generator>().ToSelf();
}
}
然后准备你的Ninject内核,并使用它。
public class Program
{
public static void Main(
{
var kernel = new StandardKernel(MyNinjectModules);
var myGenerator = kernel.Get<Generator>();
}
}