указание xsi:nil="true" и атрибутов в XmlElementAttribute
От: voladu  
Дата: 06.12.06 09:50
Оценка:
Здравствуйте!

Работаю в 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?

Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.