У меня есть интерфейс:
namespace IF.Model
{
public interface IAllocationGroupRepository
{
}
}
и класс, который реализует этот интерфейс:
using IF.Model;
namespace IF.Repository
{
public class AllocationGroupRepository : IAllocationGroupRepository
{
}
}
В вызове Unity Framework я могу .RegisterType () в коде дляоба из них:
IUnityContainer container = new UnityContainer();
container.RegisterType<IAllocationItemRepository, AllocationItemRepository>();
IAllocationItemRepository _allocationItemRepository = container.Resolve<IAllocationItemRepository>();
и .Resolve () работают и дают мне новый объект AllocationItemRepository.
НО, когда я пытаюсь вызвать Resolve, и отображение живет в app.configфайл, я получаю эту ошибку:
"Текущий тип, IF.Model.IAllocationItemRepository, является интерфейсом и не может быть создан. Вам не хватает отображения типов?"
Вот что мойФайл app.config выглядит следующим образом:
<unity>
<containers>
<container>
<types>
<type
type="IF.Model.IAllocationGroupRepository, IF.Model"
mapTo="IF.Repository.AllocationGroupRepository, IF.Repository" />
</types>
</container>
</containers>
</unity>
. Вот как выглядит код, пытаясь вызвать .Resolve () с использованием содержимого файла App.config:
IUnityContainer container = new UnityContainer();
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Containers.Default.Configure(container);
IAllocationItemRepository _allocationItemRepository = container.Resolve<IAllocationItemRepository>();
Как видите, это довольно простые вещи.Учитывая интерфейс, разрешите его классу.Он работает, когда делает это встроенным, но терпит неудачу при попытке сделать это из файла app.config.
Что мне здесь не хватает?
Спасибо, Майк