Niektóre z kontenerów IOC mają tak zwane automatyczne okablowanie w oparciu o konwencje, np. Mapy IP Producttepepular do ProductRepository bez ręcznego okablowania na części.Automatyczne okablowanie dla Ninject
Czy jest coś takiego w Ninject?
Niektóre z kontenerów IOC mają tak zwane automatyczne okablowanie w oparciu o konwencje, np. Mapy IP Producttepepular do ProductRepository bez ręcznego okablowania na części.Automatyczne okablowanie dla Ninject
Czy jest coś takiego w Ninject?
// use Ninject.Extensions.Conventions for convention-based binding
kernel.Scan(scanner =>
{
// look for types in this assembly
scanner.FromCallingAssembly();
// make ISomeType bind to SomeType by default (remove the 'I'!)
scanner.BindWith<DefaultBindingGenerator>();
});
skopiowane z @Pete Montgomery komentarzu
Ninject pochodzi z rozszerzeniem dla konfiguracji opartej konferencyjnym. Ale nadal musisz skonfigurować swoje konwencje. Zobacz https://github.com/ninject/ninject.extensions.conventions Składnia została zmieniona dla wersji 3.0.0, ale stała się znacznie potężniejsza. Poniższe czynności dodają powiązania dla wszystkich klas w systemie. Ale normalnie chcesz kilka z tych konwencji dla różnych rodzajów klas (np. Usługi są pojedyncze, ...)
kernel.Bind(
x => x.FromThisAssembly()
.SelectAllClasses()
.BindAllInterfaces());
Działa, ale ostatnia linia powinna być odczytana .BindAllInterfaces() przez 3.0.2 –