【问题标题】:Extend DataSet Class Not Working扩展数据集类不起作用
【发布时间】:2011-05-10 19:47:03
【问题描述】:

我使用数据集设计器创建了一个数据集。我的一张表名为Users,因此有一个名为UsersDataTable 的类。在这个类中有一些属性,即Connection。所以我创建了一个Partial Class UsersDataTable,但是我看不到设计器代码隐藏文件中UsersDataTable 类中的任何例程、属性或变量。

我只是尝试扩展类以添加我自己的例程,但利用设计器生成的类的连接和强类型。我已经尝试创建自己的部分类并测试它们以查看其他类是否存在问题而我没有。只有使用这些数据集设计器生成的类,我才能访问部分类的另一半中的项目。

我在 .Net 4 中工作。我可能做错了什么?

【问题讨论】:

    标签: .net partial-classes dataset-designer


    【解决方案1】:

    所有的“部分”类都必须这样声明才能使这项技术发挥作用,我猜 Visual Studio DataSet 设计器不会生成部分类:

    http://msdn.microsoft.com/en-us/library/wa80x488(v=VS.100).aspx

    您可能需要改为从设计器生成的类继承。


    编辑:刚刚查看了一些 VS2010 生成的 DataSet 类,它们确实是部分的,所以假设您使用的是 .NET 4,那么您的也应该是部分的。我会进一步调查。


    进一步编辑:

    好的,由于设计器将 *DataTable 类创建为继承自 DataSet 的类中的嵌套类,您可能需要在分部类中执行相同操作:

    public partial class UsersData
    {
        public partial class UsersDataTable
        {
            public string Foo { get; set; }
        }
    }
    

    这似乎对我有用。

    【讨论】:

    • 我的确实是部分的。我很感激你调查。如果示例代码对我有帮助,我可以提供一些。
    • 注意Partial Public Class UsersTableAdapter中有一个私有变量_connection。你能从你的部分类中访问那个变量吗?
    【解决方案2】:

    好像我刚刚使用错误的标识符扩展了我的课程:

    有一个Namespace,命名空间内部是Partial Public Class。因此我的代码:

    Partial Public Class myData
        Partial Public Class UsersTableAdapter
            Public Function DoSomething() As String
                Return "Testing..."
            End Function
        End Class
    End Class
    

    错了……我需要的是:

    Namespace myDataTableAdapters
        Partial Public Class UsersTableAdapter
            Public Function DoSomething() As String
                Return "Testing..."
            End Function
        End Class
    End Namespace
    

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      相关资源
      最近更新 更多