有效的ObservableCollection转换抛出InvalidCastException

时间:2012-12-10 15:12:29

标签: c# .net wcf

我收到一个InvalidCastException,用于设置两个彼此相等的类型。关于可能导致这种情况的特定行为的想法?

  • 使用字段定义定义this.governanceTemplateList不会更改异常。
  • 在构造函数中将this.governanceTemplateList定义为新的ObservableCollection会抛出完全相同的异常。
  • 以下代码位于使用.NET 4.0的WCF服务库中。

Screenshots of Editor, Exception, Watch, and References.

SOLUTION:

Daniel Hilgarth是正确的,正是上面的代码行引发了异常。我将null值转换为可空值(DateTime?),但隐式转换不能转换空值。要正确转换,必须使用AS关键字。

governanceTemplateTimestamp = (DateTime?)dr["GovernanceTemplateTimestamp"]; //Invalid

governanceTemplateTimestamp = dr["GovernanceTemplateTimestamp"] as DateTime?; //Valid

1 个答案:

答案 0 :(得分:2)

异常很可能发生在上面一行。标记为违规行的行未执行任何演员 我猜你的DataRow中GovernanceTemplateTimestampDBNullDBNull无法投放到DateTime?