C#: Как включать зависимый DLLs?

Из документации по Внедрение зависимостей :

IIocResolver (и IIocManager) также имеют метод расширения CreateScope (определенный в Abp.Dependency. namespace) для безопасного освобождения всех разрешенных зависимостей.

В конце использования блока все разрешенные зависимости автоматически удаляются.

blockquote>

Если вы находитесь в статическом контексте или не можете внедрить IIocManager, в качестве крайней меры вы можете использовать одноэлементный объект IocManager.Instance везде.

blockquote>

Итак, используйте область с IocManager.Instance:

  • using (var scope = IocManager.Instance.CreateScope()) { ... }
    IocManager.Instance.UsingScope(scope => { ... })
protected void Session_Start()
{
    // Starting a session and already authenticated means we have an old cookie
    var existingUser = System.Web.HttpContext.Current.User;
    if (existingUser != null && existingUser.Identity.Name != "")
    {
        IocManager.Instance.UsingScope(scope => // Here
        {
            // Execute app service here.
            var srv = scope.Resolve();
            srv.UpdateItems();
        });
    }
}

11
задан paul 27 October 2008 в 13:45
поделиться

3 ответа

Это кажется, что необходимо лучше понять стороннюю библиотеку и как это использует свои собственные зависимости. Если установка API решает проблему, но копирование файлов вручную не делает, то Вы пропускаете что-то. Существует или недостающий файл, или некоторая переменная среды или ключ реестра, это требуется. Две вещи, которые действительно помогут Вам в этом, зависит инструмент (который является частью установки C++), и procmon, который скажет Вам все ключи реестра и файлы, которые привыкают во времени выполнения.

Если Вы удачливы, это - просто файл, который Вы пропускаете. Если это - все, что это, можно использовать раздел "Build Events" проекта скопировать необходимые файлы в правильное местоположение на успешной сборке. В противном случае Вы оказываетесь перед необходимостью решать этот некоторый другой путь - или путем требования API быть установленными, или прокрутка собственного проекта установки.

2
ответ дан 3 December 2019 в 12:17
поделиться

Как Вы развертываетесь? Просто плоские файлы? Если так, это должно работать, пока файл заканчивается в выходном каталоге проекта. Он?

При использовании другого развертывания необходимо будет сказать что механизм включать его. Это отличается для каждого из msi/ClickOnce/etc.

0
ответ дан 3 December 2019 в 12:17
поделиться

Можно или медленно добавлять нисходящие зависимости как ссылки на проект. Это является громоздким, и несколько хрупким

Или Ваш мог использовать инструмент как "Depends.exe" от Microsoft, чтобы осмотреть Ваши высокоуровневые блоки и получить список ссылок к зависимостям.

0
ответ дан 3 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

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