这是我的情况:
我有一个基于模板生成内容的应用程序(使用T4),我有多个继承自ITemplate界面的模板类。
我想在我的Main中做的是在我的Generator类中使用dinamically注入一些ITemplate实现,使用从配置文件中读取的实现。然后在Main我应该调用Generator,它将理解要使用的模板并调用正确的TransformText()。
我正在使用Ninject。
这是我第一次在静态类型语言中使用依赖注入,所以我不确定如何继续......
此致
雨果
答案 0 :(得分:0)
如果你真的想在这里使用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>();
}
}