C# 保存文件-xmlSerializer

C# 保存文件-xmlSerializer,c#,xml,serialization,xml-serialization,streamwriter,C#,Xml,Serialization,Xml Serialization,Streamwriter,我正在使用以下代码创建一个序列化文件的方法: public void Save(Object file, Type type, String path) { // Create a new Serializer XmlSerializer serializer = new XmlSerializer(typeof(type)); // Create a new StreamWriter StreamWriter writer = new StreamWriter

我正在使用以下代码创建一个序列化文件的方法:

public void Save(Object file, Type type, String path)
{
    // Create a new Serializer
    XmlSerializer serializer = new XmlSerializer(typeof(type));

    // Create a new StreamWriter
    StreamWriter writer = new StreamWriter(@path);

    // Serialize the file
    serializer.Serialize(writer, file);

    // Close the writer
    writer.Close();
}
但Visual Studio在我尝试构建时告诉我: “错误1找不到类型或命名空间名称“type”(是否缺少using指令或程序集引用?) "

为什么会这样

**编辑*

有效的新代码:

public void Save(Object file, String path, Type type)
{
    // Create a new Serializer
    XmlSerializer serializer = new XmlSerializer(type);

    // Create a new StreamWriter
    TextWriter writer = new StreamWriter(path);

    // Serialize the file
    serializer.Serialize(writer, file);

    // Close the writer
    writer.Close();
}

public object Read(String path, Type type)
{
    // Create a new serializer
    XmlSerializer serializer = new XmlSerializer(type);

    // Create a StreamReader
    TextReader reader = new StreamReader(path);

    // Deserialize the file
    Object file;
    file = (Object)serializer.Deserialize(reader);

    // Close the reader
    reader.Close();

    // Return the object
    return file;
}
通过调用读取:

myClass newClass = (myClass)Read(file, type);
Save(object, path, type);
通过调用保存:

myClass newClass = (myClass)Read(file, type);
Save(object, path, type);
谢谢! 埃里克

而不是

XmlSerializer serializer = new XmlSerializer(typeof(type));

XmlSerializer
采用
类型
参数<代码>类型已经是类型类型,因此不需要对其调用
typeof()
typeof()
仅当您将类名或泛型参数放在括号内时才需要。

您的错误出现在
新的XmlSerializer(typeof(type))。您不需要
typeof
<代码>新的XmlSerializer(类型)就足够了

由于序列化了
文件
对象(其类型可以在函数中确定),因此不必传递其类型。因此,您的代码可以重新编写为

public void Save<T>(T file, String path)
{
    XmlSerializer serializer = new XmlSerializer(typeof(T));

    using (StreamWriter writer = new StreamWriter(path))
    {
        serializer.Serialize(writer, file);
    }
}
public void保存(T文件,字符串路径)
{
XmlSerializer serializer=新的XmlSerializer(typeof(T));
使用(StreamWriter=新StreamWriter(路径))
{
serializer.Serialize(编写器、文件);
}
}
新的XmlSerializer(类型)+无需在
@path