Не удается заставить работать Ninject.Extensions.Conventions
мы пытались заставить работать Ninject.Extensions.Conventions (Ninject 3+), но безуспешно. Я свел его к найденному образцу консольного приложения, и я могудаже не получилось. Вот'Что у меня есть?
class Program
{
static void Main(string[] args)
{
var kernel = new StandardKernel();
kernel.Bind(x => x
.FromThisAssembly()
.SelectAllClasses()
.BindAllInterfaces());
var output = kernel.Get();
output.HelloWorld();
var service = kernel.Get();
service.OutputToConsole();
Console.ReadLine();
}
public interface IConsoleOutput
{
void HelloWorld();
}
public class ConsoleOutput : IConsoleOutput
{
public void HelloWorld()
{
Console.WriteLine("Hello world!");
}
}
public class Service
{
private readonly IConsoleOutput _output;
public Service(IConsoleOutput output)
{
_output = output;
}
public void OutputToConsole()
{
_output.HelloWorld();
}
}
}
Мы также пробовали различные комбинацииFromAssembliesMatching,SelectAllTypes,BindDefaultInterfacesи т. д. Все выдает ошибку активации. Соответствующие привязки недоступны, а тип не является самосвязываемым.
Просто для здравого смысла, если я сделаю ручное связывание с:
kernel.Bind().To();
Все работает просто отлично. Так ясно, яЯ просто что-то упустил.