我已经在 VB .NET 中实现了一个 Web 服务。
为了检索数据,我创建了一个像这样的对象:
Public Class Product
Public idProduct As Integer
Public state As Integer
Public description As String
Public longDescription As String
Public idCategory As Integer
Public price As Decimal
End Class
然后我创建一个产品对象列表:
Dim ProductList As List(Of Product)
这就是我的 WebMethod 返回的内容。
Web 服务运行良好,并返回一个包含这样的产品列表的 xml
<Product>
<idProduct>169</idProduct >
<state>0</state>
<idCategory>32001</idCategory>
<description>description of the article</description>
<longDescription>extended description of the article</longDescription>
<price>2.44</price>
</Product>
但是,在某些情况下,我不想检索所有这些信息。我只想返回 idProduct 和状态:
<Product>
<idProduct>170</idProduct >
<state>-1</state>
</Product>
相反,我得到的是以下内容:
<Product>
<idProduct>170</idProduct >
<state>-1</state>
<idCategory>0</idCategory>
<price>0</price>
</Product>
仅从 xml 中删除字符串字段(描述和 longDescription),而对象中的所有字段都定义为整数或小数,如果我没有设置任何值,则自动设置为零。
编辑:
我用于创建对象的代码如下:
For Each row In table.Rows
p = New Product()
p.idProduct= Utilities.DBNullToInvalidInt(row.Item("ID"))
p.state= Utilities.DBNullToInvalidInt(row.Item("State"))
If p.FileStateID = 0 Then
p.idCategory= Utilities.DBNullToInvalidInt(row.Item("idCategory"))
p.description= Utilities.DBNullToVoidString(row.Item("Description"))
p.longDescription = Utilities.DBNullToVoidString(row.Item("ExtendedDescription"))
p.price= row.Item("Price")
End If
ProductList .Add(p)
Next
其中表包含我的 SQL 查询的结果