我正在尝试调用返回公司ID的Web服务方法
GetCompanyCommand companyRef = new GetCompany();
但我在Web服务中有一个已存在的方法,构造函数有一个参数
public GetCompanyCommand(Guid actCompanyId)
{
this.actCompanyId = actCompanyId;
}
问题是当我去更新Web服务引用时,我遇到一个错误,指出该方法无法序列化,因为它不包含无参数构造函数。
现在我有办法在不改变现有构造函数的情况下解决这个问题吗?因为许多其他方法已经称之为。
答案 0 :(得分:2)
如果您的Web服务类具有带参数的构造函数,那么它应具有无参数构造函数。像
public GetCompany()
{
}
这是XmlSerializer
的限制。请注意BinaryFormatter
和DataContractSerializer
不要求这样做 - 他们可以在以太网中创建一个未初始化的对象,并在反序列化期间对其进行初始化。
在对象的de-serialization
期间,负责对对象进行反序列化的类会创建序列化类的instance
,然后只有在获取要填充的实例后才会填充序列化的字段和属性。