Здравствуйте!
Работаю в VS2003 — VB.Net.
Столкнулся с такой проблемой: При сериализации класса не могу присвоить в элементе XML документа
одному атрибуту значение null , а другому некоторое значение.
Сериализуемый класс
' объявление типа
Public Class IndTaxNumColumn
<System.Xml.Serialization.XmlAttributeAttribute()> _
Public ROWNUM As Integer
<System.Xml.Serialization.XmlTextAttribute()> _
Public Value As String
End Class
' кусок класса который сериализуется
Public Class DBody
' .....................
<System.Xml.Serialization.XmlElementAttribute("IndTaxNum", _
Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, _
IsNullable:=True)> _
Public IndTaxNum() As IndTaxNumColumn
'.....................
End Class
То, в документ передается массив объектов IndTaxNumColumn, при этом не все значения
Value заполняются.
Документ хранит таблицу, значит вид должен быть таким:
<IndTaxNum ROWNUM="1" xsi:nil="true" />
<IndTaxNum ROWNUM="2">345453<IndTaxNum/>
<IndTaxNum ROWNUM="2">867567<IndTaxNum/>
<IndTaxNum ROWNUM="4" xsi:nil="true" />
<IndTaxNum ROWNUM="5">767567<IndTaxNum/>
.................
Однако, если задавать
Value = System.DBNull.Value.ToString
создается —
<IndTaxNum ROWNUM="1" />
если не передавать значение IndTaxNumColumn в массив, то
<IndTaxNum xsi:nil="true" />
Ни тот, ни другой вариант не подходят.
Как можно присвоить null переменной
Value?
Заранее спасибо!