Если вы действительно хотите использовать 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>();
}
}