【问题标题】:Data Row Type detection when using XSD generated DataSets使用 XSD 生成的数据集时的数据行类型检测
【发布时间】:2014-05-14 17:55:16
【问题描述】:

我在 Visual Studio 2010 中有一个 XML 架构定义 (XSD) 文件。数据集设计器应该在 <i>&lt;name&gt;</i>.designer.vb 文件中 generate a strongly typed dataset

根据许多错误因素,它似乎偶尔为可枚举操作(用于 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、设计器或使用文件在生成期间是否打开
  • 其他?

可能的解决方法:

  • 在所有声明中包含强类型/强制转换
  • 在源代码管理中包含正确生成的文件

【问题讨论】:

    标签: .net vb.net visual-studio-2010 xsd generated-code


    【解决方案1】:

    问题:

    简而言之,当MSDataSetGenerator工具运行,但System.Data.DataSetExtensions程序集还没有加载到当前的Visual Studio进程中时,就会出现问题。

    解决方案:

    加载程序集的一种方法是打开任何 XSD 文件并然后重新生成设计器代码。

    以下步骤应生成适当的设计器文件:

    1. 在设计器视图中打开任何 XSD 文件(这会加载 DataSetExtensions.dll)
    2. 右键单击 XSD 并选择 Run Custom Tool

    这是完整的step by step walkthrough with pictures of the issue and solution

    其他实例:

    此问题已在以下错误单中报告给 Microsoft:

    SO 问题中也提到了这一点:

    【讨论】:

      猜你喜欢
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 2014-09-12
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多