views:

311

answers:

2

Hi,

Just a question of curiosity. When i preserve object refernces while serializing an object graph with DataContractSerializer the xml emitted where there are refrences looks like this:

<test z:Ref="1" and i:nil="true" />

Can anybody tell me why it says i:nil="true" here? Why not just the reference?

A: 

This is a reference to your element. You must have a definition of your element previously in the document like this :

<test z:Id="1">
    ...
</test>
tinmaru
Yes. But as the questions states: Why the and i:nil="true" - the references element exists.
asgerhallas
+1  A: 

This is because the content of the test element is empty. i:nil="true" is necessary so that the content will validate.

John Saunders
Thank you very much for picking this up again! I was still wondering :)
asgerhallas