1

2つのタイプを互いに等しく設定するためにInvalidCastExceptionを受け取ります。これを引き起こす可能性のある特定の動作についての考えは?

  • this.governanceTemplateListをフィールド定義で定義しても、例外は変更されません。
  • this.governanceTemplateListをコンストラクターで新しいObservableCollectionとして定義すると、まったく同じ例外がスローされます。
  • 次のコードは、.NET4.0を使用するWCFサービスライブラリにあります。

Editor、Exception、Watch、およびReferencesのスクリーンショット。

解決:

Daniel Hilgarthは正しいです。例外をスローしたのは、上記のコード行でした。null値をnull許容値(DateTime?)としてキャストしていましたが、暗黙的なキャストではnull値を変換できません。正しくキャストするには、ASキーワードを使用する必要があります。

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

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

1 に答える 1

2

例外は、上記の行で発生している可能性があります。問題のある行としてマークされている行は、キャストを実行していません。それはあなたのDataRow
にあると思います。にキャストすることはできません。GovernanceTemplateTimestampDBNullDBNullDateTime?

于 2012-12-10T15:21:46.983 に答える