什么';这是在C#中向其他人提供接口定义的最佳方式

本文关键字:其他人 接口 定义 方式 最佳 什么 | 更新日期: 2023-09-27 17:58:05

这让我觉得很可能有一个商定的最佳实践答案,但我似乎在任何地方都找不到。

我有一个应用程序,它将加载并使用实现特定接口的类。实现类将由其他人编写,我想向他们发送成功实现接口所需的最低数量。

到目前为止,我想出的最好的办法是:

应用程序解决方案包含:一个只包含接口定义并编译为dll的项目。使用接口并引用dll的应用程序的项目。

一个单独的解决方案,用于生成dll并引用接口dll的示例实现。

这是最好的方法吗?即,将接口的编译版本分发给需要实现该接口的任何人。

我尝试在示例实现中仅使用接口源文件的副本,但我的应用程序未能将该类识别为实现接口。这是意料之中的事,还是我的类加载代码出现错误(当示例引用预编译的dll时,它确实有效)?

什么';这是在C#中向其他人提供接口定义的最佳方式

您应该将接口放在程序集中,然后分发程序集(或整个项目,如果需要),这样其他想要实现接口的人只需要引用您的程序集,就可以访问同一个接口(如果您只是发送接口(.cs)文件,则情况并非如此,因为您的接口将嵌入另一个程序集中因此,肯定会有另一个命名空间或程序集名称,这就是为什么您的实现类没有被识别为继承接口的原因,因为基本上它不是同一个接口,即使方法和属性相同;)

我认为,如果你不想让人们更改你的代码,只使用接口,那么你的方法首先是最好的

否则只共享包含接口的整个项目

这是我在其他项目中使用过的方法-为共享程序集提供一个通用名称,如MyApp.Interfaces,以防最终出现多个共享接口。

另一种方法是使用托管扩展性框架:http://msdn.microsoft.com/en-us/library/dd460648.aspx-但对于一个小项目来说,这可能有些过头了。