Visual Studio 2010 に XML スキーマ定義 (XSD) ファイルがあります。DataSet Designer は、厳密に型指定されたデータセットを<name>.designer.vb
ファイルに生成する必要があります。
多くの誤った要因に応じて、散発的に列挙可能な操作 (LINQ または for each ループで使用される) に強力な型指定を提供するようです。
たとえば、生成されたコード ベースで型を検出できる場合とできない場合があります。
問題のあるコードは、生成されたファイルに機能があるかどうかのようです:
Public Overridable Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Return Me.Rows.GetEnumerator
End Function
その場合、関数の列挙子を呼び出すと、退屈な が返されobject
ます。
そうでない場合、列挙子は適切な型を返します。
私の質問:
一貫して適切な動作を生成するにはどうすればよいですか?
ソース コードには生成されたコードが含まれていないため、各開発者が自分で生成する必要があります。これにより、一部のマシンでは不適切な入力でコンパイラ エラーが発生しますが、まったく同じソース コードを使用しても発生しないマシンもあります。
それと関係があるように見えるいくつかのこと:
- .NET 4.0 VS .NET 4.0 クライアントを対象とするアセンブリ バージョン
- 生成中に XSD、デザイナー、または使用状況ファイルが開いているかどうか
- その他?
考えられる回避策:
- すべての宣言に厳密な型付け/キャストを含める
- 正しく生成されたファイルをソース管理に含める