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