StructureMap не может найти GenericRepository - PullRequest
0 голосов
/ 19 мая 2011

В MVC 2 я работаю над чем-то и столкнулся с загадкой.Я поместил свой репозиторий вместо того, чтобы поместить в тот же класс интерфейс, у меня тот же проект, что и у файла EDMX.

Инициализация StructureMap - это то, что убивает меня на этом этапе.Вот где я инициализирую StructureMap (в Global.asax.cs.)

ObjectFactory.Initialize(x =>
    {
        x.ForRequestedType<IUnitOfWorkFactory>()
            .TheDefaultIsConcreteType<EFUnitOfWorkFactory>()
            .CacheBy(InstanceScope.HttpContext);

        x.ForRequestedType(typeof(IRepository<>))
            .CacheBy(InstanceScope.HttpContext)
            .TheDefaultIsConcreteType(typeof(GenericRepository<>));
    });

Пространство имен для этого проекта - GpdsCreationTaxidermy.Data (это то же пространство имен, что и мой GenericRepository.cs).Я хотел бы опубликовать код для этого файла, но я не верю, что это проблема здесь.В моем Global.asax я импортирую правильное пространство имен

using GodsCreationTaxidermy.Data;

Я получаю ошибку:

Ошибка 3 Не удалось найти имя типа или пространства имен 'GenericRepository'(вам не хватает директивы using или ссылки на сборку?)

Также прилагается изображение, показывающее этот конкретный макет проекта

enter image description here

Может кто-нибудь помочьс этой проблемой, или что я делаю не так здесь

РЕДАКТИРОВАТЬ Я даже пытался добавить GodsCreationTaxidermy.Data к имени файла, но все равно не повезло.

Ответы [ 2 ]

1 голос
/ 21 мая 2011

Спасибо за отправку файлов: -)

Похоже, что определение GodsCreationTaxidermy.Data изменилось.

Это то, что я сделал, чтобы решить проблему:

Удалите эти ссылки из библиотеки классов GodsCreationTaxidermy.Data.Repository:

  • GodsCreationTaxidermy.Data
  • GodsCreationTaxidermy.Data.Repository

Удалите эти ссылки из GodsCreationTaxidermyБиблиотека классов .Data:

  • GodsCreationTaxidermy
  • GodsCreationTaxidermy.Data

Удалите ссылку на GodsCreationTaxidermy.Data в проекте GodsCreationTaxidermy MVC и заново добавьтессылка, выбрав GodsCreationTaxidermy.Data на вкладке Project

Надеемся, что это заставит GenericRepository работать: -)

Я заметил, что следующая строка больше не работает:

EFUnitOfWorkFactory.SetObjectContext(() => new GodsCreationTaxidermyEntities());

GodsCreationTaxidermyEntities, кажется, больше не существует в GodsCreationTaxidermy.Data.Это вызывает у вас проблемы?

0 голосов
/ 20 мая 2011

Попробуйте это:

.TheDefaultIsConcreteType(typeof(GodsCreationTaxidermy.Data.GenericRepository<>));

Возможно удалить <> после GenericRepository.Добавлен ли GodsCreationTaxidermy.Data на сайт MVC в качестве ссылки?

...