0

我有以下问题:

在包 A(一个单独的 dll)中,我有 ClassA。

在 Facade(另一个单独的 dll)中,我有一个方法 public IEnumerable GetAll(){}。

在 Web 应用程序中,我调用 Facade.GetAll(),但为了获得 IEnumerable,我需要同时引用 Facade 和包 A。

我想知道是否可以仅引用 Facade 并同时获得 IEnumerable (例如在外观中为 ClassA 构建接口或类似的东西)?

否则,如果我引用两个 dll,我可以从 ClassA 调用 GetAll() (理论上或错误地)。但是最初的想法是通过外观与业务类进行通信,这样最终应用程序(如网站)就不会知道业务类的存在?

4

1 回答 1

0

解决此问题的一般方法是使用包含接口的包,由 1. 您的实现 (ClassA) 2. 您的外观(或代理或您拥有的任何替代品) 3. 使用它的应用程序或类共享。

这样你就永远不会使用错误的实现。而且你更独立于具体的类。

于 2011-07-06T07:00:21.670 回答