2011-03-16 55 views
0

我有一個.NET MVC應用程序通過使用DataContractSerializer和XMLDictionaryWriter序列化視圖模型來返回XML。迴應是下面的XML。如何在.NET中解壓縮此XML?

在此示例中,請注意,有兩個相同「註釋」對象的副本。音符第一次出現時,它是完美的。第二次,所有的字符串都有一個「i:nil」屬性和對出現相同字符串的先前節點的引用。

問題:

  • 我認爲這是某種形式的壓縮。這發生在哪裏?在IIS中?
  • 如何在.NET中解壓縮?

感謝您的幫助!

湯姆

<Note z:Id="2"> 
<DateCreated>2011-03-16T11:22:30.2226663-07:00</DateCreated> 
<DateModified>2011-03-16T11:22:30.2226663-07:00</DateModified> 
<Deleted>false</Deleted> 
<PinnedToList>true</PinnedToList> 
<PinnedToTile>false</PinnedToTile> 
<Revision>1</Revision> 
<TagText z:Id="3">#todo #work</TagText> 
− 
<Tags z:Id="4" z:Size="2"> 
− 
<Tag z:Id="5"> 
<TagName z:Id="6">todo</TagName> 
<UserId>3</UserId> 
</Tag> 
− 
<Tag z:Id="7"> 
<TagName z:Id="8">work</TagName> 
<UserId>3</UserId> 
</Tag> 
</Tags> 
<Text z:Id="9">This is a sample note.</Text> 
<User i:nil="true"/> 
<UserId>0</UserId> 
</Note> 
− 
<Note z:Id="10"> 
<DateCreated>2011-03-16T11:22:30.2226663-07:00</DateCreated> 
<DateModified>2011-03-16T11:22:30.2226663-07:00</DateModified> 
<Deleted>false</Deleted> 
<PinnedToList>true</PinnedToList> 
<PinnedToTile>false</PinnedToTile> 
<Revision>1</Revision> 
<TagText z:Ref="3" i:nil="true"/> 
− 
<Tags z:Id="11" z:Size="2"> 
− 
<Tag z:Id="12"> 
<TagName z:Ref="6" i:nil="true"/> 
<UserId>3</UserId> 
</Tag> 
− 
<Tag z:Id="13"> 
<TagName z:Ref="8" i:nil="true"/> 
<UserId>3</UserId> 
</Tag> 
</Tags> 
<Text z:Ref="9" i:nil="true"/> 
<User i:nil="true"/> 
<UserId>0</UserId> 
</Note> 
+0

你試過反序列化它嗎?什麼是實際的錯誤? – womp 2011-03-16 20:58:25

回答

2

也就是說DataContractSerializer的在全圖形模式下工作。它不是壓縮 - 這是簡單的格式是用來保存對象引用。反序列化時打開全圖模式,它應該可以工作。這是DataContractSerializer的構造函數參數。

相關問題