c# - 在 C# 中向其他人提供接口(interface)定义的最佳方式是什么?

标签 c# interface

这让我觉得很可能有一个公认的最佳实践答案,但我似乎无法在任何地方找到一个。

我有一个应用程序将加载和使用实现特定接口(interface)的类。实现类将由其他人编写,我想向他们发送成功实现接口(interface)所需的最低限度。

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

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

构建到 dll 并引用接口(interface) dll 的示例实现的单独解决方案。

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

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

最佳答案

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

如果您不希望人们更改您的代码而只使用界面,我认为您的方法是最好的

否则只需共享包含界面的整个项目

关于c# - 在 C# 中向其他人提供接口(interface)定义的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6166913/

相关文章:

c# - ActionResult 到字符串

c# - 用于存储左、上、宽和高的 PostgreSql 矩形数据类型

c# - 递归检查接口(interface)的实现,c#

ios - NSCache、镜像发布、异步队列

C# 错误性能

c# - 我可以自动将代码和新类放入我的解决方案的很多部分吗?

c# - 如何选择非不同元素及其索引

delphi - 获取 IDispatch 接口(interface)成员的访问权限

go - 将配置结构加载到go后,访问嵌套属性的问题

c# - 使用特定的模式来实现接口(interface)