Зарегистрируйте контейнер Microsoft Practices Unity в Unty webapi - PullRequest
1 голос
/ 07 августа 2020

Я работаю над новым проектом веб-API и использую Unity.WebAPI в качестве своего DI. У меня есть другие проекты, которые используют Microsoft.Practices.Unity как DI и разрешают зависимости. Мне нужно использовать объекты из этих объектов в моем проекте веб-API. Когда я пытаюсь зарегистрировать их зависимости, я не могу преобразовать Microsoft.Practices.Unity.IUnityContainer в Unity.WebApi.UnityContainer. Я погуглил и не смог добиться результата. См. Приведенную ниже ссылку на код:

Global.asax.cs

protected void Application_Start()
{
    Bootstrapper.Initialise();
    UnityConfig.RegisterComponents();
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);
    // Other stuffs here
}

Bootstrapper.cs

public class Bootstrapper
{
    public static void Initialise()
    {
        DependencyResolver.SetResolver(new UnityDependencyResolver(CreateContainer()));
    }
    
    public static Unity.IUnityContainer CreateContainer()
    {
        Microsoft.Practices.Unity.IUnityContainer container = RegisterMyDependencies();
        return (Unity.IUnityContainer)container;
        // suspicious cast: there is no type in the solution which is inherited from both 'Microsoft.Practices.Unity.IUnityContainer'
        // and 'Unity.UnityContainer'
    }
}

Итак, мой контроллер не разрешает зависимости. Я понимаю, что где-то я не налаживаю связь между двумя библиотеками. Я новичок в этом единстве DI и не уверен, как решить эту проблему. Я пробовал использовать пакет Unity, он не работал, как для проекта веб-api, нам нужно использовать Unity.WebApi. Спасибо, если кто-нибудь поможет мне в этом.

...