2009-10-14 56 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 { } 
相關問題