从Web服务错误调用无参数方法

时间:2012-11-06 09:45:16

标签: c# web-services

我正在尝试调用返回公司ID的Web服务方法

GetCompanyCommand companyRef = new GetCompany();

但我在Web服务中有一个已存在的方法,构造函数有一个参数

public GetCompanyCommand(Guid actCompanyId)
    {
        this.actCompanyId = actCompanyId;

    }

问题是当我去更新Web服务引用时,我遇到一个错误,指出该方法无法序列化,因为它不包含无参数构造函数。

现在我有办法在不改变现有构造函数的情况下解决这个问题吗?因为许多其他方法已经称之为。

1 个答案:

答案 0 :(得分:2)

如果您的Web服务类具有带参数的构造函数,那么它应具有无参数构造函数。像

public GetCompany()
{

}

这是XmlSerializer的限制。请注意BinaryFormatterDataContractSerializer不要求这样做 - 他们可以在以太网中创建一个未初始化的对象,并在反序列化期间对其进行初始化。

在对象的de-serialization期间,负责对对象进行反序列化的类会创建序列化类的instance,然后只有在获取要填充的实例后才会填充序列化的字段和属性。