Скомпилированный класс в двух местах - PullRequest
5 голосов
/ 22 августа 2011

Я немного застрял, пытаясь получить список для загрузки из ViewState, используя ASP.NET 4 и VB.NET. Когда я пытаюсь получить коллекцию, используя:

Public Property ItemsForImport As List(Of ImportItem)
    Get
        Return IIf(ViewState("ItemsForImport") Is Nothing, New List(Of ImportItem), CType(ViewState("ItemsForImport"), List(Of ImportItem)))
    End Get
    Set(value As List(Of ImportItem))
        ViewState("ItemsForImport") = value
    End Set
End Property

Я получаю исключение:

[A]System.Collections.Generic.List`1[ImportItem] cannot be cast to [B]System.Collections.Generic.List`1[ImportItem]. 
Type A originates from 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the context 'LoadNeither' at location 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. 
Type B originates from 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the context 'LoadNeither' at location     'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'.

Отладка показывает, что коллекция не равна нулю и содержит 2 элемента. Класс определяется только один раз, и я очистил свои временные файлы от C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

Обычно я иногда вижу это (я полагаю, что все это делают) при внесении быстрых изменений во время отладки, но это происходит после нескольких обновлений. Я что-то упускаю?

1 Ответ

6 голосов
/ 22 августа 2011

Проверьте папки вашего проекта.Возможно, у вас есть дубликат сборки, на который есть ссылка в решении, что вызывает конфликт.У вас есть родительский проект, который ссылается на одну и ту же сборку?

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

InvalidCastException для двух объектов одного типа

Разгрузка ASP.NET сборок в корзине

Ошибка управления рендерингом - [A] нельзя привести к [B] в контексте LoadNeither

...