我创建了一个类,它应该具有静态方法来从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
。我很困惑,因为在互联网上我发现像我一样这样做。
答案 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,它实际上是在创建自己的类的实例,该实例没有Serialize方法。
在声明序列化程序时以及在构造序列化程序时,重命名您的类或使命名空间显式化。