在C#中为其他人提供接口定义的最佳方法是什么?

问题描述

| 这使我很可能得到一个公认的最佳实践答案,但是我似乎在任何地方都找不到。 我有一个应用程序,它将加载和使用实现特定接口的类。实现类将由其他人编写,我想向他们发送成功实现接口所需的最少信息。 到目前为止,我想出的最好的方法是: 该应用程序解决方案包含: 一个仅包含接口定义并编译为dll的项目。 使用接口并引用dll的应用程序项目。 用于示例实现的单独解决方案,该解决方案可生成dll并引用接口dll。 这是最好的方法吗?即将接口的编译版本分发给需要实现该接口的任何人。 我尝试在示例实现中仅使用接口源文件的副本,但我的应用程序无法将类识别为实现接口。这是意料之中的,还是我的类正在加载代码错误(当示例引用预编译的dll时,它是否起作用)?     

解决方法

        您应该将接口放入程序集中,然后分发程序集(或整个项目,如果需要),以便其他想要实现该接口的人只需要引用您的程序集,这样他们就可以访问同一接口(不是如果您仅发送接口(.cs)文件的情况,因为您的接口将被嵌入到另一个程序集中,因此肯定会有另一个名称空间或程序集名称,这就是为什么您的实现类未被识别为继承您的接口的原因,基本上不是相同的接口,即使方法和属性相同;)) 我认为如果您不希望人们更改您的代码而只使用界面,则您的方法是最好的 否则,只需共享包含接口的整个项目     ,        这是我在其他项目中使用过的方法,在共享程序集的通用名称如MyApp.Interfaces的情况下,以防最终使用多个共享接口。 一种替代方法是使用托管可扩展性框架:http://msdn.microsoft.com/zh-cn/library/dd460648.aspx-但这对于一个小型项目而言可能是过高的选择。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...