2014-02-06 37 views
0

我創建了一個類,它應該有靜態方法來對來自typ工具的對象進行序列化。工具是一個額外的類。XML Serializer沒有方法

class XmlSerializer 
{ 
    public static XmlSerializer serializer; 
    public static FileStream stream; 
    public static object obj; 

    public XmlSerializer(object obj) 
    { 

    } 

    public static void SerializeToolToXML() 
    {    
     serializer = new XmlSerializer(typeof(Tool)); 
     stream = new FileStream(Application.StartupPath 
             + "\\tool.xml", 
             FileMode.Create);  
     serializer.Serialize(stream, obj);    
     stream.Close(); 
    } 
} 

我添加了以下命名空間
System.Text.System.Xml.Serialization, System.IO System.Windows.Forms

我的對象串行化還沒有方法Serialize。我很困惑,因爲在互聯網上,我找到了和我一樣的做法。

+0

在互聯網上您發現了哪些內容?你的課程中的'Serialize'方法在哪裏?它不派生任何其他類,所以你應該自己實現它或使用一些現有的序列化器。 –

+0

它有方法SerializeToolToXML嗎? –

+2

你的類與.net的類'XmlSerializer'具有相同的名稱嘗試重命名你的類或爲.net的[XmlSerializer]設置全名(http://msdn.microsoft.com/en-us/library/71s92ee1(v = vs .110).aspx) – DimaS

回答

3

由於類被命名爲XmlSerializer,實例serializer是一流的。如果要使用System.Xml.Serialization.XmlSerializer進行序列化,請特別初始化該類型:

var serializer = new System.Xml.Serialization.XmlSerializer(typeof(Tool)); 
1

我猜你是由具有類XmlSerializer使用該System.Xml.XmlSerializer錯了。

將你的班級重命名爲別的東西,它會起作用。

0

我認爲您期望線serializer = new XmlSerializer(typeof(Tool))在命名空間System.Xml.Serialization中創建類的實例。但是,因爲您也稱爲類XmlSerializer,它實際上是創建您自己的類的實例,它沒有Seri​​alize方法。

要麼重命名您的類,要麼在聲明序列化程序時以及構建它時使命名空間顯式化。