我遵循了这个指南:http://msdn.microsoft.com/en-us/library/ff649818.aspx
在主机我的服务和服务运行后我创建了控制台应用程序项目,添加服务引用找到的服务。
之后,我尝试测试客户端,所以我写了ServiceReference1
(ServiceReference1是我的服务引用)来创建服务实例,在此之后我只能看到IService1
而不是我的服务名称{{1} }。
我做错了什么?
答案 0 :(得分:0)
它应该已经创建了一个可以使用的ServiceClient1类。
答案 1 :(得分:0)
IService1是服务和客户之间的合同,已发布。 Service1是IService1的实现,客户端不需要也不应该了解它。仅通过命名约定,当VS IDE或SvcUtil.exe为IService1(NOT Service1)生成代理类时,代理类默认名为Service1Client。
例如,在您的服务端,您有IService1和类MyInternalImp实现接口,生成的客户端代理类将是Servce1Client,而不是MyInternalImpClient,因为WSDL不关心实现细节,但接口仅
您可能已经阅读了一些具有DataContractAttribute装饰类而不是接口的代码,即使.NET在运行时代表发布接口/ WSDL而在运行时生成接口,这也是一种弊端。
所以你引用了一个名为IService1的服务,而Service1不是服务,而是服务端的实现,这不应该是客户关注的问题。