Разрешить интерфейс с помощью Unity 2.1 - PullRequest
0 голосов
/ 06 августа 2011

У меня есть базовый класс, который пытается разрешить интерфейс с помощью Unity.

            IUnityContainer containter = new UnityContainer();

            containter.RegisterType<IRepositoryFactory>();

            IRepositoryFactory repositoryFactory = containter.Resolve<IRepositoryFactory>();

Мой конфигурационный файл выглядит следующим образом:

<unity>
    <containers>
        <container>
            <types>
                <type   name="IRepositoryFactory"
                        type="QuinntyneBrown.Interfaces.IRepositoryFactory"
                        mapTo="QuinntyneBrown.Photography.Factories.RepositoryFactory" />
            </types>
        </container>
    </containers>
</unity>

Я получаю следующую ошибку:

Не удалось разрешить зависимость, type = "QuinntyneBrown.Interfaces.IRepositoryFactory", name = "(none)". Исключение произошло во время: при разрешении.

Исключением является: InvalidOperationException - Текущий тип, QuinntyneBrown.Interfaces.IRepositoryFactory, является интерфейсом и не может быть создан. Вам не хватает отображения типов?

На момент исключения контейнер был:

Разрешение QuinntyneBrown.Interfaces.IRepositoryFactory, (нет)

1 Ответ

1 голос
/ 06 августа 2011
containter.RegisterType<IRepositoryFactory>();

Это не делает никакой привязки. Вместо этого загрузите привязки из вашего конфигурационного файла:

containter.LoadConfiguration();
...