Я использую мой app.config, чтобы сообщить Unity мой интерфейс для сопоставления типов ...
<unity>
<containers>
<container>
<types>
<type type="UnityDAL.Interfaces.IDataContextFactory, UnityDAL"
mapTo="UnityDAL.UnityDemoDataContextFactory, UnityDAL" />
<type type="UnityDAL.Interfaces.IProductRepository, UnityDAL"
mapTo="UnityDAL.ProductRepository, UnityDAL" />
<type name="productRepo"
type="UnityDAL.Interfaces.IProductRepository, UnityDAL"
mapTo="UnityDAL.ProductRepository, UnityDAL" />
and so on...
используя этот код
var wrapper = UnityWrapper.Create();
var productRepository =
wrapper.Container.Resolve<IProductRepository>("productRepo");
var productsBO = new ProductBO(productRepository);
var products = productsBO.GetAllProducts();
Вот конструктор для объекта оболочки ...
public UnityWrapper()
{
_container = new UnityContainer();
var section =
(UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Containers.Default.Configure(_container);
}
но я получаю исключение, которое говорит ...
{"Не удалось разрешить зависимость, type = \" IProductRepository \ ",
name = \ "productRepo \". Сообщение об исключении: текущая операция сборки
(ключ сборки Ключ сборки [UnityDAL.ProductRepository, productRepo]) не выполнен:
Параметр dataContextFactory не может быть разрешен при попытке
вызвать конструктор UnityDAL.ProductRepository (UnityDAL.Interfaces.
IDataContextFactory dataContextFactory). (Тип стратегии
Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy, index 2) "}
Я думал, что этот узел подключен к этому
<type type="UnityDAL.Interfaces.IDataContextFactory, UnityDAL"
mapTo="UnityDAL.UnityDemoDataContextFactory, UnityDAL" />
Идея здесь изначально заключалась в создании хорошей цепочки зависимостей. Есть идеи, что я делаю не так? Если у вас есть какие-либо советы или советы о том, как я могу исправить проблему, я бы хотел их услышать. Спасибо за любую помощь.
Приветствия
~ СК в Сан-Диего