我创建了一个简单的 WCF 服务,它将两个整数相加。服务主机完美启动。但在客户端,我收到以下编译错误Reference.cs
:
类型名称“ServiceReference1”在类型中不存在
'WcfServiceClient.ServiceReference1.WcfServiceClient'
客户端代码:
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();
}
}
}
你的错误中有一个提示:
类型名称'ServiceReference1'
类型中不存在'WcfServiceClient.ServiceReference1.WcfServiceClient'
注意生成的类名WcfServiceClient
与命名空间的第一个组件的名称相同:
WcfServiceClient.ServiceReference1.WcfServiceClient
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
1st component generated
of namespace class name
这导致无法解决问题WcfServiceClient
班级。 (在 .NET 中,通常建议确保类名与命名空间组件的名称不同。)
请注意,您没有专门为自动生成的代理类提供名称;该名称是由 Visual Studio 为您创建的。我相信 Visual Studio 创建的代理类的名称是从它实现的契约接口派生的。具体来说,代理类的名称似乎是通过以下方式创建的:
- 放弃领先
I
来自合约接口的名称,以及
- 追加
Client
.
从您发布的代码来看,您的合约接口似乎被命名为IWcfService
。因此,Visual Studio 创建了名称WcfServiceClient
对于它生成的代理类。
解决:为了避免编译错误Reference.cs
,在您的客户端代码中,将您的命名空间命名为除WcfServiceClient
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)