MS Unity дает сбой сразу после инициализации - PullRequest
0 голосов
/ 26 сентября 2019

Вот код:

protected void Application_Start(object sender, EventArgs e)
    {
        UnityContainer container = new UnityContainer();
        container.RegisterType<IMapper, CustomMapper>();
        container.RegisterType<ISessionLoginInfo, CustomSession>();
        IDateTimeProvider dtp = DateTimeProvider.Current;
        var cc = container.RegisterInstance<IDateTimeProvider>(dtp);
        GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
 }

Прямо у последней фигурной скобки я получаю следующее исключение:

Ошибка сервера в приложении '/'.Не удалось загрузить тип «Custom.Shared.IDateTimeProvider» из сборки «Custom.Shared, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль».Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.TypeLoadException: Не удалось загрузить тип 'Custom.Shared.IDateTimeProvider' из сборки 'Custom.Shared,Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null '.

Сборка Custom.Shared находится в той же папке, что и основная сборка веб-приложения.Интерфейс IDateTimeProvider и соответствующий класс DateTimeProvider размещаются в вышеупомянутой сборке Custom.Shared в пространстве имен Custom.Shared.Также, если я исключу строку с помощью RegisterInstance () и создам экземпляр класса DateTimeProvider, ошибка исчезнет.Что я сделал не так и как правильно сделать инициализацию DI?

...