我创建了一个简单的WCF服务,它添加了两个整数。服务主机启动得很好。但是在客户端,我在Reference.cs中得到了以下编译错误
类型'WcfServiceClient.ServiceReference1.WcfServiceClient‘中不存在类型名称'ServiceReference1’
客户端代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WcfServiceClient
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ServiceReference1.WcfServiceClient client = new ServiceReference1.WcfServiceClient("BasicHttpBinding_IWcfService");
int result = client.Add(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));
Label1.Text = result.ToString();
}
}
}发布于 2015-11-09 20:24:53
您的错误中有一个提示:
类型名称
'ServiceReference1'在类型'WcfServiceClient.ServiceReference1.WcfServiceClient'中不存在。
请注意,生成的类名WcfServiceClient与名称空间的第一个组件的名称相同:
WcfServiceClient.ServiceReference1.WcfServiceClient
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
1st component generated
of namespace class name这导致无法解析WcfServiceClient类。(在.NET中,通常建议确保类名与命名空间组件的名称不相同。)
注意,您没有专门为自动生成的代理类提供名称;该名称是由Visual为您创建的。我相信Visual创建的代理类的名称是从它实现的契约接口派生出来的。具体来说,代理类的名称似乎是由以下人员创建的:
I,以及Client。从您发布的代码中可以看出,您的合同接口名为IWcfService。因此,Visual将为它生成的代理类创建名称WcfServiceClient。
解决方案:为了避免Reference.cs中的编译错误,在客户端代码中,将名称空间命名为WcfServiceClient以外的名称空间。
https://stackoverflow.com/questions/31357502
复制相似问题