【发布时间】:2012-11-13 08:57:34
【问题描述】:
在我的解决方案中,我创建了一个以消息合同类作为参数的 WCF 服务。
[ServiceContract]
public interface IServiceClass
{
[OperationContract]
Employee AddEmployee(Employee employee);
}
public class ServiceClass : IServiceClass
{
public Employee AddEmployee(Employee employee)
{
//do something
}
}
[MessageContract]
public class Employee
{
[MessageHeader]
public string EmployeeNumber { get; set; }
[MessageBodyMember]
public string FirstName { get; set; }
[MessageBodyMember]
public string LastName { get; set; }
[MessageBodyMember]
public DateTime DOB { get; set; }
}
然后我使用添加服务引用选项将此服务添加到我的客户端应用程序。服务添加成功。 然后在我的客户端程序中,我使用了这种方法。但是方法签名已更改。变化如下。
public void AddEmployee(ref string EmployeeNumber,
ref System.DateTime DOB, ref string FirstName, ref string LastName)
我在客户端使用服务如下。
TcpServiceReference.ServiceClassClient service =
new TcpServiceReference.ServiceClassClient();
注意:TcpServiceReference 是服务名称
我无法理解原因。
【问题讨论】:
-
您确定签名不存在于 IDE 正在获取的客户端代码中的其他位置吗?尝试搜索它,看看是否找到另一个实例。
-
Belogix:我在 Reference.cs 类中查看了接受 Employee 类的方法在 ServiceReference.TcpServiceReference.IServiceClass 但它不在 ServiceReference.TcpServiceReference.ServiceClassClient 中
标签: c# wcf service-reference