Store position in of array item in property during XML deserialization
Is there any way to store an XmlArrayItem
's position in an XmlArray
in a class property during XML deserialization?
class PO
[XmlArray("POLines")]
[XmlArrayItem("POLine")]
List<PO_Line> LineItems get;set;
class PO_Line
[XmlElement("ItemCode")]
string ItemCode get;set;
[XmlElement("UnitCost")]
string UnitCost get;set;
[XmlElement("Quantity")]
string Quantity get;set;
int LineNo get;set; // store index number of array item here
For instance in the below PO file, a new List<PO_Line>
would be created that comprises three PO_Line
s. The first would have the LineNo
property set to 1, the second would have their LineNo
set to 2 and the third (predictably) would have their LineNo
set to 3.
<POFile>
<POHead>
<PONumber>POR12345</PONumber>
<Customer>ACME001</Customer>
</POHead>
<POLines>
<POLine>
<ItemCode>12345</ItemCode>
<UnitCost>2.99</UnitCost>
<Quantity>100</Quantity>
</POLine>
<POLine>
<ItemCode>23456</ItemCode>
<UnitCost>1.99</UnitCost>
<Quantity>200</Quantity>
</POLine>
<POLine>
<ItemCode>34567</ItemCode>
<UnitCost>5.99</UnitCost>
<Quantity>500</Quantity>
</POLine>
</POLines>
</POLine>
I could obviously iterate through the PO
after XML deserialization, but I wanted to know if there was a cleaner way.
c# xml-deserialization
add a comment |
Is there any way to store an XmlArrayItem
's position in an XmlArray
in a class property during XML deserialization?
class PO
[XmlArray("POLines")]
[XmlArrayItem("POLine")]
List<PO_Line> LineItems get;set;
class PO_Line
[XmlElement("ItemCode")]
string ItemCode get;set;
[XmlElement("UnitCost")]
string UnitCost get;set;
[XmlElement("Quantity")]
string Quantity get;set;
int LineNo get;set; // store index number of array item here
For instance in the below PO file, a new List<PO_Line>
would be created that comprises three PO_Line
s. The first would have the LineNo
property set to 1, the second would have their LineNo
set to 2 and the third (predictably) would have their LineNo
set to 3.
<POFile>
<POHead>
<PONumber>POR12345</PONumber>
<Customer>ACME001</Customer>
</POHead>
<POLines>
<POLine>
<ItemCode>12345</ItemCode>
<UnitCost>2.99</UnitCost>
<Quantity>100</Quantity>
</POLine>
<POLine>
<ItemCode>23456</ItemCode>
<UnitCost>1.99</UnitCost>
<Quantity>200</Quantity>
</POLine>
<POLine>
<ItemCode>34567</ItemCode>
<UnitCost>5.99</UnitCost>
<Quantity>500</Quantity>
</POLine>
</POLines>
</POLine>
I could obviously iterate through the PO
after XML deserialization, but I wanted to know if there was a cleaner way.
c# xml-deserialization
add a comment |
Is there any way to store an XmlArrayItem
's position in an XmlArray
in a class property during XML deserialization?
class PO
[XmlArray("POLines")]
[XmlArrayItem("POLine")]
List<PO_Line> LineItems get;set;
class PO_Line
[XmlElement("ItemCode")]
string ItemCode get;set;
[XmlElement("UnitCost")]
string UnitCost get;set;
[XmlElement("Quantity")]
string Quantity get;set;
int LineNo get;set; // store index number of array item here
For instance in the below PO file, a new List<PO_Line>
would be created that comprises three PO_Line
s. The first would have the LineNo
property set to 1, the second would have their LineNo
set to 2 and the third (predictably) would have their LineNo
set to 3.
<POFile>
<POHead>
<PONumber>POR12345</PONumber>
<Customer>ACME001</Customer>
</POHead>
<POLines>
<POLine>
<ItemCode>12345</ItemCode>
<UnitCost>2.99</UnitCost>
<Quantity>100</Quantity>
</POLine>
<POLine>
<ItemCode>23456</ItemCode>
<UnitCost>1.99</UnitCost>
<Quantity>200</Quantity>
</POLine>
<POLine>
<ItemCode>34567</ItemCode>
<UnitCost>5.99</UnitCost>
<Quantity>500</Quantity>
</POLine>
</POLines>
</POLine>
I could obviously iterate through the PO
after XML deserialization, but I wanted to know if there was a cleaner way.
c# xml-deserialization
Is there any way to store an XmlArrayItem
's position in an XmlArray
in a class property during XML deserialization?
class PO
[XmlArray("POLines")]
[XmlArrayItem("POLine")]
List<PO_Line> LineItems get;set;
class PO_Line
[XmlElement("ItemCode")]
string ItemCode get;set;
[XmlElement("UnitCost")]
string UnitCost get;set;
[XmlElement("Quantity")]
string Quantity get;set;
int LineNo get;set; // store index number of array item here
For instance in the below PO file, a new List<PO_Line>
would be created that comprises three PO_Line
s. The first would have the LineNo
property set to 1, the second would have their LineNo
set to 2 and the third (predictably) would have their LineNo
set to 3.
<POFile>
<POHead>
<PONumber>POR12345</PONumber>
<Customer>ACME001</Customer>
</POHead>
<POLines>
<POLine>
<ItemCode>12345</ItemCode>
<UnitCost>2.99</UnitCost>
<Quantity>100</Quantity>
</POLine>
<POLine>
<ItemCode>23456</ItemCode>
<UnitCost>1.99</UnitCost>
<Quantity>200</Quantity>
</POLine>
<POLine>
<ItemCode>34567</ItemCode>
<UnitCost>5.99</UnitCost>
<Quantity>500</Quantity>
</POLine>
</POLines>
</POLine>
I could obviously iterate through the PO
after XML deserialization, but I wanted to know if there was a cleaner way.
c# xml-deserialization
c# xml-deserialization
asked Nov 13 '18 at 10:06
ryansinryansin
724725
724725
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53278496%2fstore-position-in-of-array-item-in-property-during-xml-deserialization%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53278496%2fstore-position-in-of-array-item-in-property-during-xml-deserialization%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown