Система.Исключение InvalidCastException

#asp.net-mvc-2

#asp.net-mvc-2

Вопрос:

Работая с MVC 2 ad с помощью нескольких друзей, я думал, что все ошибки исправлены, пока не столкнулся с этой чудовищной ошибкой (лично самое большое объяснение исключения, которое я когда-либо вызывал.

Сообщение об ошибке

[A]GodsCreationTaxidermy.Data.EFUnitOfWork не может быть преобразован в [B]GodsCreationTaxidermy.Data.EFUnitOfWork. Тип A происходит из ‘GodsCreationTaxidermy.Ядро, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken =null’ в контексте ‘По умолчанию’ в местоположении ‘C:UsersRichard L. McCutchenAppDataLocalTemp Temporary ASP.NET Filesroot3d450750bcfb1c91assemblydl3200754f06a7f303e_1418cc01GodsCreationTaxidermy.Core.DLL’. Тип B происходит от ‘GodsCreationTaxidermy.Данные, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=null’ в контексте ‘По умолчанию’ в местоположении ‘C:UsersRichard L. McCutchenAppDataLocalTemp Temporary ASP.NET Filesroot3d450750bcfb1c91assemblydl35d86cf1a5d1f256f_0118cc01GodsCreationTaxidermy.Data.DLL’.

И оно появляется в этой строке (в GenericRepository):

 public UoW GetCurrentUnitOfWork<UoW>() where UoW : IUnitOfWork
{
    return (UoW)UnitOfWork.Current; //<< error happens here
}
  

Как и было предложено, я удалил все ASP.NET файлы из временного каталога, и это изменило примечание.

Я почти уверен, что этот метод является единственным, который вызывает это, что, в свою очередь, вызывает ошибку

 private ObjectContext Context
{
    get
    {
        if (_context == null)
        {
            return _context = GetCurrentUnitOfWork<GodsCreationTaxidermy.Data.EFUnitOfWork>().Context;
        }
        return _context;
    }
}
  

Итак, кто-нибудь сталкивался с чем-то подобным, с чем они могут помочь?

Комментарии:

1. Проверьте, что ссылка относится к проекту, а не к dll? Кроме того, не возвращайте значение внутри if в свойстве Context.

2. Извините, но я’, не понимая первой части вашего ответа, я удалил возврат внутри if и, конечно, ничего не изменилось

3. Кто-нибудь знает, как избавиться от этой ошибки? Это начинает сводить меня с ума 😉

4. Вы недавно переименовали библиотеку классов? Похоже, у вас есть две версии EFUnitOfWork в двух разных классах; GodsCreationTaxidermy. Таксидермия ядра и Godscreation. Данные, это может быть проблемой.

5. Именно так я заставляю свой Unif работать, я получил EFUnitOfWork, EFUnitOfWorkFactory в GodsCreationTadisermy. Данные и в ..Хранилище у меня есть UnitOfWork, IUnitOfWork и IUnitOfWorkFactory ad, которые всегда работали (использовал его в моей последней программе MVC 2 (и никогда не приводил к ошибкам здесь, в этом проекте).

Ответ №1:

Вы недавно переименовали библиотеку классов? Похоже, у вас есть две версии EFUnitOfWork в двух разных классах; GodsCreationTaxidermy.Таксидермия ядра и Godscreation.Данные, это может быть проблемой.

Ответ №2:

Каким-то образом у меня была копия моей рабочей единицы и репозитория, так что это было 2 от всего, и MVC не знал, что делать.