【发布时间】:2010-08-12 15:05:45
【问题描述】:
我搜索了很多,如果我遗漏了一些明显的东西,我深表歉意。感谢您阅读下面的冗长文字。
我在这里有一个第 3 方(阅读:无法访问/更改源)应用程序。它由一个服务器(Windows 服务)和一个 API 组成,该 API 通过远程处理与服务器通信。 出于几个原因,我想通过 WCF 公开这个 API(参见主题:一个原因是 WCF 客户端)。
问题是,API 是
- 不可更改(遵循第 3 方规则)
- 不使用 WCF 本身(它是可序列化的/MarshalByRef 在远程处理需要时)
- 使用大量接口和内部实现类
在 1 之后,我自己不能使用(相当侵入性的)WCF 属性。
在 2 之后,API 本身可以“通过网络”使用(它们支持通过 TCP 和 HTTP 进行远程处理),但远程处理对我来说还不够好。
在 3 之后,我主要有接口(WCF 不能很好地处理,不能(反)序列化)。可以发送实现类,但是 - 我无法访问它们。
此 API 的一般用法是基于单个接口(及其成员/属性),因此典型用法如下
var entryPoint = new ApiClientEntryPoint();
entryPoint.SomeMethodCall();
entryPoint.PropertyExposingAnInterface.SomeOtherMethodCall();
等等。
我真正想做的是生成(尽可能少的努力/代码)我通过 WCF 公开的代理(不是典型的 WCF 意义上的),并序列化此层次结构,映射每个调用/属性客户端到服务器上的真实事物。
到目前为止,我最接近的是偶然发现this project,但我想知道是否有更多/其他可用的工具可以让我完成这项工作的中大部分。
如果有任何一般性的其他建议,更好的方法将预先存在且不可更改的东西包装到 WCF 中,请分享。
【问题讨论】:
标签: c# silverlight wcf remoting