代码之家  ›  专栏  ›  技术社区  ›  Beska

是否可以在中向强类型DataSet添加接口。网?

  •  2
  • Beska  · 技术社区  · 16 年前

    我有一堆强类型DataSet,每个DataSet都有两个表。每个DataSet都有一个表是唯一的,但第二个表“元数据”对每个DataSet都具有相同的架构。

    在运行时,我确定要使用哪个DataSet,并从DB中以适当的方式填充数据表。

    然后,我想填充元数据表。对于每个DataSet,这将以相同的方式完成,因此我想使用相同的代码。一个明显的方法是让每个数据集实现一个完成这项工作的接口。

    当我想为这些数据集声明这个接口(IMyInterface)时,问题就出现了。

    每个强类型DataSet都包含在大量文件中。第一个也是关键的文件是MyDataSet。Designer.cs文件。..这是一个自动生成的文件。开头附近有一行字:

    public partial class MyDataSet : global::System.Data.DataSet
    

    如果我告诉VS我想编辑DataSet的代码,它会为我创建一个名为MyDataSet.cs的新文件。但里面的声明看起来像这样:

    partial class MyDataSet
    

    partial class MyDataSet : IMyInterface
    

    看起来我好像在添加一个子类。

    处理这个问题的正确方法是什么?更改设计器文件,并确保VS永远不会重新生成它?是否将超类和接口声明都添加到另一个文件中?完全是别的东西?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Beska    16 年前

    显然,它足够聪明,可以正确地混合和匹配它们,这取决于它是要继承的类,还是要实现的接口。

    MSDN 说:

    例如,以下声明:

    partial class Earth : Planet, IRotate { }
    partial class Earth : IRevolve { }
    

    相当于:

    class Earth : Planet, IRotate, IRevolve { }
    
    推荐文章