我有一堆强类型的DataSet,每个都有两个表。一个表对于每个DataSet是唯一的,但第二个“MetaData”对于每个DataSet具有相同的模式。
在运行时,我确定要使用哪个DataSet,并以适当的方式从数据库填充数据表。
然后我想填充MetaData表。对于每个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不会重新生成它?将超类和接口声明添加到另一个文件中?还有其他什么呢?
答案 0 :(得分:1)
哇。没关系。尽管在搜索时没有找到这个,但在重试此查询时(在输入这个长问题后),我很快就找到了答案。
显然它足够智能,可以正确地混合和匹配它们,具体取决于它是继承的类,还是要实现的接口。
MSDN说:
例如,以下声明:
partial class Earth : Planet, IRotate { }
partial class Earth : IRevolve { }
相当于:
class Earth : Planet, IRotate, IRevolve { }