为什么ArrayLists不在Web服务中初始化?

时间:2014-01-06 15:41:09

标签: asp.net visual-studio-2010 web-services arraylist

客户端有一个非常旧的.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服务。

2 个答案:

答案 0 :(得分:0)

当从Web引用生成客户端代理时,代理将仅对数据建模。无法从WSDL获取实现代码(包括构造函数)。因此,当创建代理类的新实例时,属性将具有默认值。

答案 1 :(得分:0)

您始终必须在客户端创建对象。

您无法通过网络服务发送对象。发送的消息是纯文本,因此任何对象都必须作为其包含的文本表示发送,并通过解析文本并将数据放入新对象在客户端重新创建。