【发布时间】:2012-01-24 21:52:56
【问题描述】:
我正在编写一些服务。
我针对 2 种情况提出 2 个问题:
情况
1) 我在“内部”使用它,意思是作为引用的 dll
2) 我通过网络使用它,作为 webService
问题
一)
如果它向某些客户端类公开接口。 现在我在该界面中添加了一些方法。
我是否必须重新编译它的所有客户端才能识别
即使他们不使用新方法,新接口?
B)
如果我的服务接口中的一个方法期望一些具有属性 a,b 的 PoCo
其中一个客户端使用相同的 Poco 类型调用该方法,但该 Poco 在客户端代码中定义为具有 a、b 和 c、d 的类型。
我必须重新编译服务吗?合同是否违约?
【问题讨论】:
-
接口应该被认为是不可变的,无需重新编译。也就是说,.Net 和 Mono 的当前实现通常允许向后兼容的更改而不会损坏。我强烈建议不要依赖它。