2009-12-13 61 views
0

我正在開發一個的Windows Mobile 5.0或以上應用與.NET Framework精簡版2.0 SP2C#應用程序設計的問題

我必須庫:一個訪問SQL Server CE和另一個與自定義控件。

當我從SQL Server中檢索數據時,我使用結構來返回它們。這些結構在庫一上定義。

我的問題是這些數據與庫2上的一些自定義控件一起使用。我該如何解決?

  1. 在library2上引用library1。 I 可以做到這一點,但library1對此項目是特定的 ,library2可以是 ,並且必須在不使用library1的其他 項目中使用。
  2. 創建另一個庫來存儲這個結構體?
  3. ??

您怎麼看?

回答

1

讓我們簡化:

  • 分享幫助包含數據結構
  • Library2包含了一些控制,在分享幫助使用一些數據結構

有兩種選擇:

一)提取接口。

Library2中的一些控件直接使用Library1。您可以修改這些控件以使用接口,而不是該接口的Library1實現。將界面放入Library3。現在您有:

  • Library3包含接口將數據(沒有引用)
  • Library2包含一些使用符合從Library3接口的數據控制(引用Library3,不知道分享幫助)
  • 分享幫助包含符合Library3接口的數據結構(引用Library3,不知道Library2)
  • 應用程序是唯一保存對所有3個庫的引用的組件,並使用庫1中的數據結構提供來自Library2的控件。

二)提取共同實施

在Library2有些控件直接使用分享幫助。您可以將這些數據結構從Library1中提取到Library3中。現在你有類似於上面的情況。

+0

我會選擇選項b)。 – VansFannel 2009-12-13 12:00:48

0

您是否可以將結構作爲對象或在Library1之外定義的基類或接口傳遞?用戶控制用這些對象做什麼?

我的建議是將這些對象抽象爲一個通用的實現並將該抽象存儲在Library2或Library3中,然後將其引用到Library1中。