应用程序设计问题

时间:2009-12-13 08:55:07

标签: c# compact-framework

我正在使用 .Net Compact Framework 2.0 SP2 C#开发 Windows Mobile 5.0或更高版本应用程序。

我必须使用库:一个用于访问SQL Server CE,另一个用于自定义控件。

当我从SQL Server检索数据时,我使用结构来返回它们。这些结构在库1中定义。

我的问题是这些数据与库2上的一些自定义控件一起使用。我该如何修复?

  1. 在library2上引用library1。一世 可以做到这一点,但library1是具体的 到这个项目和library2都可以 使用过,必须在另一个中使用 不使用library1的项目。
  2. 创建另一个库以存储此结构?
  3. ...
  4. 您怎么看?

2 个答案:

答案 0 :(得分:1)

让我们简化:

  • Library1包含数据结构
  • Library2包含一些使用Library1
  • 中的某些数据结构的控件

有两种选择:

a)提取界面。

Library2中的某些控件直接使用Library1。您可以修改这些控件以使用接口,而不是该接口的Library1实现。将界面放在Library3中。现在你有:

  • Library3包含数据接口(无引用)
  • Library2包含一些使用符合Library3接口的数据的控件(引用Library3,不知道Library1)
  • Library1包含符合Library3接口的数据结构(引用Library3,不知道Library2)
  • 应用程序是唯一保存对所有3个库的引用的组件,并从Library2提供来自Library1的数据结构的控件。

b)提取常见实施

Library2中的某些控件直接使用Library1。您可以将这些数据结构从Library1提取到Library3中。现在你的情况与上面类似。

答案 1 :(得分:0)

您可以将结构作为对象或基类或在Library1外部定义的接口传递吗?用户控件如何处理对象?

我的建议是将这些对象抽象为一个通用实现,并将该抽象存储在Library2或Library3中,然后在Library1中引用它。