XML Serializer没有方法

时间:2014-02-06 13:25:44

标签: c# xml

我创建了一个类,它应该具有静态方法来从typ Tool序列化对象。工具是一个额外的类。

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。我很困惑,因为在互联网上我发现像我一样这样做。

3 个答案:

答案 0 :(得分:3)

由于您的类名为XmlSerializer,因此实例serializer属于该类。如果要使用System.Xml.Serialization.XmlSerializer进行序列化,请专门初始化该类型:

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

答案 1 :(得分:1)

我想你使用XmlSerializer的课程System.Xml.XmlSerializer会弄错。

将您的课程重命名为其他内容,它会起作用。

答案 2 :(得分:0)

我认为您期望行serializer = new XmlSerializer(typeof(Tool))在名称空间System.Xml.Serialization中创建类的实例。但是,由于您还调用了类XmlSerializer,它实际上是在创建自己的类的实例,该实例没有Seri​​alize方法。

在声明序列化程序时以及在构造序列化程序时,重命名您的类或使命名空间显式化。