C# 动态运行时依赖注入
我的情况如下: 我有一个基于模板生成内容的应用程序(使用T4),我有多个从ITemplate接口继承的模板类 我主要想做的是在我的生成器类中以友好的方式注入一些ITemplate实现,从配置文件中读取要使用的实现。然后,我主要应该调用生成器来理解要使用的模板,并调用适当的TransformText() 我用的是Ninject 这是我第一次在静态类型语言中使用依赖项注入,所以我不确定如何继续 问候,C# 动态运行时依赖注入,c#,dynamic,dependency-injection,ninject,t4,C#,Dynamic,Dependency Injection,Ninject,T4,我的情况如下: 我有一个基于模板生成内容的应用程序(使用T4),我有多个从ITemplate接口继承的模板类 我主要想做的是在我的生成器类中以友好的方式注入一些ITemplate实现,从配置文件中读取要使用的实现。然后,我主要应该调用生成器来理解要使用的模板,并调用适当的TransformText() 我用的是Ninject 这是我第一次在静态类型语言中使用依赖项注入,所以我不确定如何继续 问候, Hugo如果你真的想使用DI,这里有一个简单的例子,但如果你正在搜索插件系统之类的东西,你可能会想
Hugo如果你真的想使用DI,这里有一个简单的例子,但如果你正在搜索插件系统之类的东西,你可能会想看看 假设你有一个发电机
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();
}
}
公共类MyNinjectModules:NinjectModule
{
公共覆盖无效负载()
{
绑定()到();
Bind().ToSelf();
}
}
然后准备你的Ninject内核,并使用它
public class Program
{
public static void Main(
{
var kernel = new StandardKernel(MyNinjectModules);
var myGenerator = kernel.Get<Generator>();
}
}
公共类程序
{
公共静态真空总管(
{
var kernel=新的标准内核(MyNinjectModules);
var myGenerator=kernel.Get();
}
}