XML выглядит следующим образом:
<Publisher sequence="1" primaryIndicator="Yes">
<PublisherID idType="Shortname">ysc</PublisherID>
<PublisherID idType="xy" encrypted="VlsC1V9K23Leo1BAOk6nxxROZAPKSAny" library="http://xys.abc.com">21503</PublisherID>
<PublisherName nameType="Legal">xys legal name</PublisherName>
</Publisher>
И мой класс отображается как:
type PublisherId() =
[<DefaultValue>] val mutable _idType: string ;
[<DefaultValue>] val mutable _encrypted: string ;
[<DefaultValue>] val mutable _library: string ;
[<DefaultValue>] val mutable _value: string ;
[<XmlAttribute>] member this.idType with get() = this._idType and set(v) = this._idType <- v
[<XmlAttribute>] member this.encrypted with get() = this._encrypted and set(v) = this._encrypted <- v
[<XmlAttribute>] member this.library with get() = this._library and set(v) = this._library <- v
[<XmlTextAttribute>] member this.value with get() = this._value and set(v) = this._value <- v
type Publisher() as this =
[<DefaultValue>] val mutable _sequence : int
[<DefaultValue>] val mutable _primaryIndicator: string ;
[<DefaultValue>] val mutable _publisherIds : List<PublisherId>
do
this._publisherIds <- new List<PublisherId>();
[<XmlAttribute>] member this.sequence with get() = this._sequence and set(v) = this._sequence <- v
[<XmlAttribute>] member this.primaryIndicator with get() = this._primaryIndicator and set(v) = this._primaryIndicator <- v
[<XmlArrayAttribute>]
[<XmlArrayItem(typeof<PublisherId>, ElementName = "PublisherID")>]
member this.PublisherID with get() = this._publisherIds and set(v) = this._publisherIds <- v
и я также изменил атрибуты члена в рассматриваемом элементе:
[<XmlArrayItem(typeof<PublisherId>, ElementName = "PublisherID")>]
member this.PublisherID with get() = this._publisherIds and set(v) = this._publisherIds <- v
Проблема в том, что он не заполняет поля _publisherIds. Я попытался переключиться на массив, и это тоже не помогло. Точка останова в установщике никогда не срабатывает, поэтому я думаю, что с комментариями что-то не так.
Я имел успех с такими структурами, как:
<Publisher sequence="1" primaryIndicator="Yes">
<PublisherIDs>
<PublisherID idType="Shortname">ysc</PublisherID>
<PublisherID idType="xy" encrypted="VlsC1V9K23Leo1BAOk6nxxROZAPKSAny" library="http://xys.abc.com">21503</PublisherID>
</PublisherIDs>
<PublisherName nameType="Legal">xys legal name</PublisherName>
</Publisher>
с использованием аналогичных атрибутов (хотя и в c #), однако изменение структуры XML не является опцией ann, поскольку это поступает от поставщика.
Примечание. Я отмечаю как C #, так что эта группа может помочь с аннотациями. Пожалуйста, удалите мои извинения, если это неуместный тег.
Спасибо