Czy w NInject są dostępne funkcje, które pozwolą mi ładować usługi z innych modułów (zespołów) na żądanie, tak jak w Unity?Czy NInject może ładować moduły/zespoły na żądanie?
Odpowiedz
Jeśli chodzi o ładowanie Złożonych w sposób nie-statyczny, nie robi tego.
Istnieje wiele innych pytań na ten temat, np Using Ninject in a plugin like architecture
Jestem całkiem pewien, że to jest to, czego szukasz:
var kernel = new StandardKernel();
kernel.Load(Assembly.Load("yourpath_to_assembly.dll");
Jeśli spojrzeć na KernelBase z odbłyśnikiem w Ninject. dll widać, że ta rozmowa będzie rekurencyjnie załadowanie wszystkich modułów załadowanych zespołów (metoda ładowania trwa IEnumerable)
public void Load(IEnumerable<Assembly> assemblies)
{
foreach (Assembly assembly in assemblies)
{
this.Load(assembly.GetNinjectModules());
}
}
nie bardzo pod zobacz co masz na myśli przez "Like Unity", ale możesz zrobić kilka różnych rzeczy do ładowania złożeń. Sam Ninject będzie domyślnie ładował lokalne zestawy dla rozszerzeń/wtyczek. Ninject może również ładować klasy NinjectModule ze złożeń. Jeśli chcesz zrobić coś bardziej złożonego, możesz użyć projektu Ninject.Extensions.Conventions, aby wykonać wiele różnych skanowania i wiązania tekstu.
Czy możesz podać więcej szczegółów na temat tworzenia Ninject "ładuj klasy NinjectModule ze złożeń"? Wiki Ninject obejmuje dość podstawowe rzeczy. –
Ok, mam to teraz, ja mieszałem wersje Ninject w moim projekcie. –
Podany link do GitHub jest uszkodzony. Rzeczywisty link to https://github.com/ninject/Ninject.Extensions.Conventions. – realsonic
Myślę, że nie rozumiem, co masz na myśli. W jaki sposób "ładujesz usługi z innych zespołów" w Unity? – Konamiman