在我的c#应用程序我有几个库。例句:
- 主应用程序EXE
- Helper DLL, A 帮助DLL, B
帮助DLL, C数据访问DLL, D
我的数据访问DLL, D,有一个它公开的接口。Helper DLL B公开了另一个具有基本相同属性的接口,但它不是相同的接口(名称空间方面,并且在如何访问这些属性方面略有不同)。此外,Helper DLL A使用B和D公开的内容。这导致了我的困惑,因为我需要连接B &D in A,但我发现自己试图在这些接口之间转换,有些东西似乎不太对。
我不知道该怎么办:
- 在整个应用程序中使用D的数据访问接口或…
- 让每个DLL都有单独的接口,并在它们从一个DLL到另一个DLL之间进行转换。
是否有更好的解决方案?如果是,为什么?
如果你需要所有这些接口,仅仅通过阅读你的帖子很难对我说,我个人建议把它们都放在DataAccess和转换实用程序中。这样你就把所有的东西都放在了一个地方,以后你写的任何Helper都只需要引用它。
有什么问题吗?你不能在main中创建一个类来实现那些必要的接口吗?
类可以从多个接口继承,或者您可以定义各种代理,这些代理从它们各自的类继承,而不是在一些公共对象上操作。
我会添加另一个DLL,其中包含您希望跨其他三个DLL使用的接口。然后,无论在哪个DLL中声明,实现这些接口之一的任何对象都可以以相同的方式处理。您还可以在一个dll中扩展这些接口中的任何一个,以在需要的地方包含额外的属性或方法。