Save file - xmlSerializer

谁都会走 提交于 2019-12-05 04:46:21

Your error is in new XmlSerializer(typeof(type));. You don't need typeof. new XmlSerializer(type); is enough.

Since you serialize file object (and its type can be determined in the function) you don't have to pass its type. So your code can be re-written as

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

    using (StreamWriter writer = new StreamWriter(path))
    {
        serializer.Serialize(writer, file);
    }
}
var serializer = new System.Xml.Serialization.XmlSerializer(type);

instead of

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

XmlSerializer takes a Type parameter. type is already of type Type, so you don't need to call typeof() on it. typeof() is only needed when you're putting a class name or generic parameter inside the brackets.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!