2009-10-14 59 views
2

我有一堆强类型的数据集,每个都有两个表。每个DataSet有一个表是唯一的,但第二个“MetaData”对每个DataSet具有相同的模式。是否可以将接口添加到.NET中的强类型数据集?

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

然后我想填充元数据表。这将以相同的方式完成每个DataSet,所以我想使用相同的代码。这样做的一个显而易见的方法是让每个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

哇。没关系。尽管最初在搜索时没有发现这个问题,但在重试此查询(输入这个长问题后)后,我很快找到了答案。

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

MSDN说:

例如,以下声明:

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

等效于:

class Earth : Planet, IRotate, IRevolve { } 
相关问题