客户端有一个非常旧的.net 1.1应用程序,他们需要点击服务。我在4.0中构建了一个中间件,它命中了服务,我试图返回数据。我构建的类使用ArrayLists,因为.net 1.1将无法访问通用列表。当客户端使用我的代码时,ArtayLists会以ArrayOfAnyType形式出现,并且每个都必须在CLIENT端初始化,尽管我在Sub New()中初始化它们。我不想让客户初始化每个arraylist。这是不起眼的代码......
<Serializable()> _
Public Class XApplication
Public Sub New()
_People = New ArrayList
_PhysicalHouseholds = New ArrayList
_TaxReturns = New ArrayList
End Sub
Public Property People() As ArrayList
Public Property PhysicalHouseholds() As ArrayList
Public Property TaxReturns() As ArrayList
End Class
尝试使用XmlInclude属性来定义类类型,但它没有任何效果。要清楚,我不能使用WCF。我必须使用Web服务。
答案 0 :(得分:0)
当从Web引用生成客户端代理时,代理将仅对数据建模。无法从WSDL
获取实现代码(包括构造函数)。因此,当创建代理类的新实例时,属性将具有默认值。
答案 1 :(得分:0)
您始终必须在客户端创建对象。
您无法通过网络服务发送对象。发送的消息是纯文本,因此任何对象都必须作为其包含的文本表示发送,并通过解析文本并将数据放入新对象在客户端重新创建。