我只是在学习如何使用 WCF 服务,我是按照这篇 MSDN 文章中的 6 步教程开始的。第 4 部分讨论了使用 svcutil.exe 生成客户端代码,第 5 部分显示了一个配置 WCF 客户端的大型 XML 文件。相对于我为 WCF 演示采用的非常简单的解决方案,使用 svcutil.exe和这个 XML似乎太重了:
class Program
{
static void Main(string[] args)
{
WSHttpBinding bhb = new WSHttpBinding();
EndpointAddress epa = new EndpointAddress("http://localhost:8000/index/ServiceReference1");
ChannelFactory<ServiceReference1.IDemoChannel> cf = new ChannelFactory<ServiceReference1.IDemoChannel>(bhb, epa);
cf.Open();
ServiceReference1.IDemoChannel channel = cf.CreateChannel();
channel.Open();
String s = channel.getHelloWorld(5);
channel.Close();
cf.Close();
Console.WriteLine("Result: {0}", s);
Console.WriteLine("I'm the client! Press Enter to exit...");
Console.ReadLine();
}
}
看到这两种非常不同的客户端配置方式后,我想知道使用生成的代码和 XML 文件有什么好处,什么时候比编程方式更好?
更新:我在本教程的第 5 部分重新阅读了 XML 文件,似乎 XML 文件被复制了,并且查看了预期的 XML,我收回了我的问题的 XML 方面。我想我真正要问的是“为什么我要使用 svcutil.exe 生成我的代码,而编写客户端代码看起来还不错”?