Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法添加对我的WCF服务的引用,尽管找到该服务_C#_.net_Wcf - Fatal编程技术网

C# 无法添加对我的WCF服务的引用,尽管找到该服务

C# 无法添加对我的WCF服务的引用,尽管找到该服务,c#,.net,wcf,C#,.net,Wcf,我遵循了这个指南: 在托管我的服务并运行该服务之后,我创建了控制台应用程序项目,将服务引用添加到找到的服务中。 之后,我尝试测试客户端,因此我编写了ServiceReference1(ServiceReference1是我的服务引用)来创建服务实例,在此之后,我只能看到IService1,而看不到我的服务名称,即Service1 我做错了什么?它也应该创建一个ServiceClient1类供您使用。IService1是服务和客户端之间的契约,已发布。Service1是IService1的实现,客

我遵循了这个指南: 在托管我的服务并运行该服务之后,我创建了控制台应用程序项目,将服务引用添加到找到的服务中。 之后,我尝试测试客户端,因此我编写了
ServiceReference1
(ServiceReference1是我的服务引用)来创建服务实例,在此之后,我只能看到
IService1
,而看不到我的服务名称,即
Service1


我做错了什么?

它也应该创建一个ServiceClient1类供您使用。

IService1是服务和客户端之间的契约,已发布。Service1是IService1的实现,客户端不需要也不应该知道它。仅通过命名约定,当VS IDE或SvcUtil.exe为IService1(非Service1)生成代理类时,代理类默认命名为Service1Client

例如,在您的服务端,您有IService1和类MyInternalImp实现接口,生成的客户端代理类将是Serve1Client,而不是MyInternalImpClient,因为WSDL不关心实现细节,只关心接口

您可能已经阅读过一些代码,这些代码使用DataContractAttribute装饰类而不是接口,这是一种弊端,即使.NET将在运行时代表发布接口/WSDL生成接口


因此,您引用的是一个名为IService1的服务,而Service1不是服务,而是服务端的实现,这不应该是客户端所关心的。

您可以粘贴您的服务代码吗?此外,它还应该创建一个ServiceClient1类供您使用。谢谢,ServiceClient1是创建的,这是我的问题。我认为@AdityApail应该给出一个正式的答案,您可以投票将其作为本例中的答案,而不仅仅是一条评论。@VitorCanova-谢谢。@