Я работаю над новым проектом веб-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. Спасибо, если кто-нибудь поможет мне в этом.