今天上导师的课,在里课堂里提到WCF Web Service创建者在设计此项技术时的一个基本原则:“服务具有自主性:服务及其客户端同意它们之间的接口,但相互独立。它们可以采用不同的语言编写。#t#
可以使用不同的运行时环境(如 CLR 和 Java 虚拟机),可以运行在不同操作系统上,还可以存在其他方面的不同。” 我想这就说明 Indigo 的 Service 可以发布成一个标准的WCF Web Service ,客户端可以是任意语言编写的程序,只要它能通过WCF Web Service 的方式与其他程序交互。
我做了以下尝试:
1. 用 WCF 写一个 Service。
- xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
name="WcfServer.MathService" - behaviorConfiguration="MathServiceBehavior">
baseAddress="http://localhost:8000/MathService"/> - address=""
- binding="basicHttpBinding"
- contract="WcfServer.IMath"/>
name="MathServiceBehavior"> httpGetEnabled="True"/> includeExceptionDetailInFaults="False" /> - 2. 运行这个程序启动 WCF 服务
- 3. 用 WSDL 工具生成一个代理类
- 在控制台中输入:wsdl http://localhost:8000/MathService?wsdl
- 4. 创建一个客户端工程,把生成的代理加入这个工程中:
- namespace UsingWebServiceMode
- {
- class Program
- {
- static void Main(string[] args)
- {
- MathService proxy = new MathService();
- int result;
- bool resultSpecified;
- proxy.Add(4, true, 5, true, out result, out resultSpecified);
- Console.WriteLine(result);
- Console.WriteLine(resultSpecified);
- Console.ReadLine();
- }
- }
- }
我的最终目的是要让 Java 写的程序与WCF 技术实现的Service进行交互,要想让 Java 的程序和.Net的程序交互,我想最好的方法就是WCF Web Service 。我写的那些代码就是想先试一下C# 的代码能否用WCF Web Service 的方式与WCF技术实现的Service 进行交互,但现在的问题是我没法精确控制这个WCF Web Service 的接口。
上一篇:简论预算管理方法之—零基预算