NInject может загрузить модули/блоки по требованию?

VMware? Нет. Однако QEMU имеет x86_64 системную цель, которую можно использовать. Вы, вероятно, не будете в состоянии использовать изображение VMware непосредственно (IIRC, нет никакого инструмента преобразования), но можно установить ОС и такой сами и работать в ней. QEMU может быть что-то вроде ЛАВАША для подъема и выполнение, но это имеет тенденцию работать вполне приятно.

6
задан alexandrul 18 May 2010 в 05:37
поделиться

3 ответа

Если вы имеете в виду нестатическую загрузку сборок из коробки, то нет.

Есть много других вопросов по этому поводу, например, Использование Ninject в плагин, подобный архитектуре

0
ответ дан 8 December 2019 в 14:43
поделиться

Я почти уверен, что это именно то, что вы ищете:

var kernel = new StandardKernel();
kernel.Load( Assembly.Load("yourpath_to_assembly.dll");

Если вы посмотрите на KernelBase с отражателем в Ninject.dll, вы увидите, что этот вызов рекурсивно загружает все модули в загруженных сборках (метод Load принимает IEnumerable)

public void Load(IEnumerable<Assembly> assemblies)
{
    foreach (Assembly assembly in assemblies)
    {
        this.Load(assembly.GetNinjectModules());
    }
}
13
ответ дан 8 December 2019 в 14:43
поделиться

Я не совсем понимаю, что вы подразумеваете под «Like Unity», но вы можете делать несколько разных вещей для загрузки сборок. Сам Ninject по умолчанию загружает локальные сборки для расширений / плагинов. Ninject также может загружать классы NinjectModule из сборок. Если вы хотите сделать что-то более сложное, вы можете использовать проект Ninject.Extensions.Conventions для выполнения множества различных операций сканирования и привязки типов.

3
ответ дан 8 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: