【问题标题】:InvalidCastException on identical types? (yes, Context... identical Contexts?)相同类型的 InvalidCastException? (是的,上下文...相同的上下文?)
【发布时间】:2012-03-04 16:25:51
【问题描述】:

我有一个强类型的DataTable,我正在调用GetChanges

myApples.CropTable.GetChanges(DataRowState.Deleted)

我想使用我的强类型 CropTableCropRow 类访问此结果。所以我尝试投射结果,如下所示:

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

DOINGGGG,InvalidCastException:

[A]CropDataTable 无法转换为 [B]CropDataTable。 A型起源于 'FarmingBO,版本=1.0.0.0,文化=中性,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,版本=1.0.0.0,文化=中性,PublicKeyToken=acbff80904caf0cb' 在上下文中的“默认”位置 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\Farming\3b503e68\8f2b701b\assembly\dl3\8d20c3b3\a16c5196_27eacc01\FarmingBO.DLL'。

只有我一个人,还是这些类型完全一样?

【问题讨论】:

  • 尝试将Assembly.GetExecutingAssembly().GetReferencedAssemblies()的输出写入控制台,看看是否有可疑之处。
  • 尝试干净的解决方案并重建。也尝试清除临时 ASP.NET 文件
  • 我注意到错误似乎不包括类型的命名空间,只包括最终类型名称(或者你是否编辑过这个)。是否有可能,在同一个程序集中,您在两个不同的命名空间中使用相同的类型名称?
  • 实际失败发生在我同事的代码中。他突然说:“哦!我知道是什么问题了。”然后就去自己的工作站修好了。我会试着让他告诉我问题出在哪里,但他可能不会回答,直到我们通过下一个版本。
  • @sq33G 你从你的同事那里得到答案了吗?我面临同样的事情......

标签: c# ado.net strongly-typed-dataset .net


【解决方案1】:

如果您的强类型表没有重载GetChanges 方法,则它不会返回CropDataTable,而是返回基DataTable

获得强类型CropDataTable 的唯一方法是从返回的DataTable 中复制所有行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多