Can';不得更改wcf合同';s方法返回值

Can';不得更改wcf合同';s方法返回值,wcf,Wcf,我正在构建一个WCF服务,我已经在iSeries设备文件中编写了合同,并在服务文件中实现了它,当我试图更改我声明的方法的任何返回值时,就会出现问题,这是因为它们被保存在CustomerService命名空间中的代码中,特别是在CustomerServiceClient类中,该类被锁定,无法访问以进行更改 这是我在ICCustomerService文件中的代码: [ServiceContract] public interface ICustomersService {

我正在构建一个WCF服务,我已经在iSeries设备文件中编写了合同,并在服务文件中实现了它,当我试图更改我声明的方法的任何返回值时,就会出现问题,这是因为它们被保存在CustomerService命名空间中的代码中,特别是在CustomerServiceClient类中,该类被锁定,无法访问以进行更改

这是我在ICCustomerService文件中的代码:

 [ServiceContract]
    public interface ICustomersService
    {
        [OperationContract]
        CustomerDetails GetCustomerDetails(string customerid);
        [OperationContract]
        bool VerifyId(string customerid);
    }
public CustomerDetails GetCustomerDetails(string customerid)
{
....
}
public bool VerifyId(string customerid)
{
...
}
以及CustomerService文件中的代码:

 [ServiceContract]
    public interface ICustomersService
    {
        [OperationContract]
        CustomerDetails GetCustomerDetails(string customerid);
        [OperationContract]
        bool VerifyId(string customerid);
    }
public CustomerDetails GetCustomerDetails(string customerid)
{
....
}
public bool VerifyId(string customerid)
{
...
}
在CustomerService1命名空间中,我已经生成并锁定了这段代码,因此任何修改iSeries设备中方法的尝试都失败了,因为它在这里被锁定,无法更改

public class CustomersServiceClient : ClientBase<ICustomersService>, ICustomersService
    {
        public CustomersServiceClient();
        public CustomersServiceClient(string endpointConfigurationName);
        public CustomersServiceClient(Binding binding, EndpointAddress remoteAddress);
        public CustomersServiceClient(string endpointConfigurationName, EndpointAddress remoteAddress);
        public CustomersServiceClient(string endpointConfigurationName, string remoteAddress);

        public CustomerDetails GetCustomerDetails(string customerid);
        public bool VerifyId(string customerid);
    }
公共类CustomerServiceClient:ClientBase,ICCustomerService
{
公共CustomerServiceClient();
公共CustomerServiceClient(字符串endpointConfigurationName);
公共CustomerServiceClient(绑定绑定,端点地址remoteAddress);
公共CustomerServiceClient(字符串endpointConfigurationName、EndpointAddress remoteAddress);
公共CustomerServiceClient(字符串endpointConfigurationName、字符串remoteAddress);
公共CustomerDetails GetCustomerDetails(字符串customerid);
公共布尔验证ID(字符串customerid);
}

这对我来说是一个严重的问题,我希望您能找到一些答案。

Web服务比引用的程序集稍微复杂一些。如果更改服务接口,代理类代码不会自动更新。每次更改合同时都需要手动更新

试试这个:

  • 客户端项目->服务引用
  • 选择您的参考->鼠标右键单击
  • 更新服务参考
  • 如果引用该程序集,WCF还可以重用合同类型。在这种情况下,数据合同的变更将立即在客户机中看到。您可以在该答案中找到实施步骤:

    请发布一些代码,显示您现在拥有的以及您想要完成的任务-很难理解您想要做什么。当然我会的,谢谢您的提醒。