1

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

GetCompanyCommand companyRef = new GetCompany();

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

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

    }

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

现在有没有办法让我在不更改现有构造函数的情况下解决这个问题?因为许多其他方法已经调用它。

4

1 回答 1

2

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

public GetCompany()
{

}

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

在对象的过程de-serialization中,负责反序列化对象的类创建一个instance序列化类,然后仅在获取要填充的实例后才继续填充序列化的字段和属性。

于 2012-11-06T09:57:45.150 回答