Я использую инъекцию зависимостей с Microsoft Unity. Но у меня возникают проблемы, когда у меня есть Resolve
экземпляры.Unity Container с UnityDependencyResolver
Мой сценарий: У меня есть приложение WPF и библиотека классов. Unity устанавливается в библиотеке классов.
Я пытаюсь создать объект, используя инъекцию зависимости.
я получил следующее сообщение об ошибке:
The type 'Microsoft.Practices.Unity.IUnityContainer' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Practices.Unity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=6d32ff45e0ccc69f'.
Код:
UnityDependencyResolver ObjUnityDependencyResolver = new UnityDependencyResolver(UnityContainerConfig.Initialize());
var myclass = ObjUnityDependencyResolver.GetService(typeof(IMyClass));
myclass.HelloWorld(); //Console.Write("Hello World");
Это мое единство контейнер:
public static class UnityContainerConfig
{
private static IUnityContainer _unityContainer = null;
public static IUnityContainer Initialize()
{
if (_unityContainer == null)
{
_unityContainer = new Microsoft.Practices.Unity.UnityContainer()
.RegisterType<IMyClass, MyClass>();
}
return _unityContainer;
}
}
Это мое единство распознаватель:
public class UnityDependencyResolver : IDependencyResolver
{
private IUnityContainer _unityContainer = null;
public UnityDependencyResolver(IUnityContainer unityContainer)
{
this._unityContainer = unityContainer;
}
public object GetService(Type serviceType)
{
try
{
return _unityContainer.Resolve(serviceType);
}
catch
{
return null;
}
}
public IEnumerable<object> GetServices(Type serviceType)
{
try
{
return _unityContainer.ResolveAll(serviceType);
}
catch
{
return new List<object>();
}
}
}
Я должен установить Unity в каждом проекте в моем решении?
Что такое «лучший способ создать экземпляр» и использовать инъекцию зависимости на единицу?
Является ли это проект MVC ? –
@TarekAboELkheir - * У меня есть приложение WPF и библиотека классов * – smoksnes