我在 Visual Studio 2010 中有一个 XML 架构定义 (XSD) 文件。数据集设计器应该在文件中生成一个强类型数据集<name>.designer.vb
根据许多错误因素,它似乎偶尔为可枚举操作提供强类型(用于 LINQ 或每个循环)
例如,有时生成的代码库能够检测到类型,有时则不能:
有问题的代码似乎是生成的文件是否具有以下功能:
Public Overridable Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Return Me.Rows.GetEnumerator
End Function
如果是这样,那么调用该函数的枚举器将返回一个无聊的object
.
如果不是,则枚举器将返回适当的类型。
我的问题:
我怎样才能让它始终如一地产生适当的行为?
我们的源代码不包含生成的代码,因此每个开发人员都需要自己生成它。这会导致某些机器因输入不当而出现编译器错误,而另一些机器则不会……使用相同的源代码。
一些似乎与它有关的事情:
- 针对 .NET 4.0 VS .NET 4.0 客户端的程序集版本
- XSD、设计器或使用文件在生成期间是否打开
- 其他的?
可能的解决方法:
- 在所有声明中包含强类型/强制转换
- 在源代码管理中包含正确生成的文件