2011-01-12 58 views
3

我有當我嘗試使用XmlSerializer的反序列化的XML文件到一類我自己一個問題,XML文件內容爲:XML序列化問題

<UserInfoView xmlns="http://schemas.datacontract.org/2004/07/iEverydayLog.Models.ViewModel" 
       xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 

    <Address>Ultimo NSW</Address> 

    <Id>685c7109-56c5-4a69-82d6-c9a286225d7e</Id> 

    <Name>Tester Name</Name> 

    <NumberOfCards>1</NumberOfCards> 

</UserInfoView> 

其與此消息失敗:有一個XML文檔錯誤(1,2)。

但是當我刪除這些話:

xmlns="http://schemas.datacontract.org/2004/07/iEverydayLog.Models.ViewModel"  xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 

它工作正常,沒有任何一個知道這裏發生了什麼?

我的類的定義是這樣的:

public class UserInfoView 
    { 
     public string Address; 

     public string Name; 

     public string Id; 

     public int NumberOfCards; 
    } 
+0

UserInfoView的結束標記在哪裏? – leppie 2011-01-12 12:20:42

+0

發佈完整例外詳情。 – decyclone 2011-01-12 12:24:09

回答

4

有一個默認XML命名空間;您可以通過添加[XmlRoot]來解決此問題,以告知它所期望的名稱空間:

[XmlRoot(Namespace="http://schemas.datacontract.org/2004/07/iEverydayLog.Models.ViewModel")] 
public class UserInfoView {...}