InvalidCastException для одинаковых типов? (да, контекстно-идентичные контексты?)

У меня есть строго типизированный DataTable, по которому я звоню GetChanges:

myApples.CropTable.GetChanges(DataRowState.Deleted)

Я хочу получить доступ к результатам этого, используя мои строго типизированные классы CropTable и CropRow. Итак, я попытался применить результаты, например:

(AppleDataSet.CropDataTable)myApples.CropDataTable.GetChanges(DataRowState.Deleted)

DOINGGGG, InvalidCastException:

[A] CropDataTable нельзя преобразовать в [B] CropDataTable. Тип A происходит от «FarmingBO, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = acbff80904caf0cb» в контексте «По умолчанию» в расположении «C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files». \ Farming \ 3b503e68 \ 8f2b701b \ assembly \ dl3 \ 8d20c3b3 \ a16c5196_27eacc01 \ FarmingBO.DLL '. Тип B происходит от 'FarmingBO, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = acbff80904caf0cb' в контексте 'Default' в расположении 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ Farming \ 3b503e68 \ 8f2b701b \ assembly \ dl3 \ 8d20c3b3 \ a16c5196_27eacc01 \ FarmingBO.DLL '.

Это только у меня, или эти типы совершенно идентичны?


person sq33G    schedule 13.02.2012    source источник
comment
Попробуйте записать вывод Assembly.GetExecutingAssembly (). GetReferencedAssemblies () в консоль, чтобы проверить, нет ли чего-нибудь подозрительного.   -  person Henrik Gering    schedule 13.02.2012
comment
Попробуйте чистое решение и выполните восстановление. Также попробуйте очистить временные файлы ASP.NET   -  person AakashM    schedule 13.02.2012
comment
Я хотел бы отметить, что ошибка, похоже, не включает пространство имен для типа, а только последнее имя типа (или вы это редактировали). Возможно ли, что в одной сборке вы используете одно и то же имя типа в двух разных пространствах имен?   -  person Damien_The_Unbeliever    schedule 13.02.2012
comment
Фактический сбой происходил в коде моего коллеги. Он вдруг сказал: ах! Я знаю, в чем проблема, а потом пошел на свою рабочую станцию ​​и исправил ее. Я попытаюсь заставить его рассказать мне, в чем проблема, но он, вероятно, не ответит, пока мы не пройдем следующую сборку.   -  person sq33G    schedule 13.02.2012
comment
@ sq33G вы получили ответ от своего коллеги? Я сталкиваюсь с тем же ...   -  person Robert Ivanc    schedule 20.01.2014
comment
@RobertIvanc Нет, он мне никогда не говорил. :( Удачи.   -  person sq33G    schedule 20.01.2014


Ответы (1)


Если ваша строго типизированная таблица не перегружает метод GetChanges, она вернет не CropDataTable, а вместо этого базовый DataTable.

Единственный способ получить строго типизированный CropDataTable - скопировать все строки из возвращенного DataTable

person d_schnell    schedule 13.02.2012