我使用术语网络服务来指代诸如 NNTP、IMAP、POP3 之类的事物……它们在 TCP/IP 之上具有定义的协议。
我很难弄清楚如何使用 WCF 客户端连接到现有的网络服务。除了基本上使用 C#-ified 套接字代码的示例之外,我还没有找到任何示例。
任何人都可以向我推荐使用 WCF 与传统服务对话的任何示例,而不是美化的套接字吗?
WCF 甚至适合这种类型的要求吗?
谢谢。
WCF 带有一组标准绑定,这里是 3.5 中提供的绑定列表:
http://msdn.microsoft.com/en-us/library/ms730879.aspx
如果您需要使用其他任何东西,WCF 可能不是要走的路。即使您可以构建自己的绑定,成本也会超过收益。
如果您的项目中要求所有内容都应使用 WCF,则可以在套接字代码上构建 WCF 外观。
好吧,“WCF”一词实际上意味着两件事:
您提到的协议没有内置绑定,这就是为什么您将看到的示例看起来像“美化套接字”的原因——它们就是这样。这就是绑定:建立在基本协议(通常是 UDP/IP 或 TCP/IP)上的抽象级别。
现在,说了这么多,您需要构建/借用/窃取/任何可用于您选择的协议的绑定。这看起来就像您只是将套接字注入到 WCF 框架中,老实说,这就是它的本质 :)... 那么它有什么了不起的呢?
如果您设法实现与规范的绑定,您将获得一个非常容易替换的组件,该组件将适合所有 WCF 应用程序。无论您是否想要这种行为,都取决于您和您的要求:)
祝你好运。
嗯,WCF 的核心是微软提供的基于 SOAP 的统一通信引擎——它取代了 ASMX Web 服务、WSE、.NET Remoting 等等。
因此,它是基于 SOAP 的,因此可以与任何谈论 SOAP 的东西对话——我怀疑 POP3 或其他服务就是这种情况。所以我不认为你可以为这些服务编写 WCF客户端,真的。
至于从头开始编写这些服务并将它们公开为 WCF 服务——这可能可行,因为基本上 WCF 服务实现可以做任何事情,然后将自己作为 SOAP 服务呈现给外部世界——可以工作,问题是:有什么好处?
马克