2009-12-13 96 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中。