相关疑难解决方法(0)

FileMode.Open 和 FileMode.OpenOrCreate 文件存在时的区别?错误?

我写了这样的代码:

public void Save()
{
    using (FileStream fs = new FileStream(Properties.Settings.Default.settings_file_path, FileMode.Open))
    {
        XmlSerializer ser = new XmlSerializer(typeof(MySettings));
        ser.Serialize(fs, this);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用FileMode.Open一切都很好,输出是这样的:

<?xml version="1.0"?>
<MySettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <settingsList>
        <Setting>
            <Value>12</Value>
            <Name>A0</Name>
            <Type>MEASUREMENT</Type>
        </Setting>
        <Setting>
            <Value>5000</Value>
            <Name>C0</Name>
            <Type>MEASUREMENT</Type>
        </Setting>
    </settingsList>
</MySettings>
Run Code Online (Sandbox Code Playgroud)

但是当我将其更改为FileMode.OpenOrCreateoutput 时将更改为:

<?xml version="1.0"?>
<MySettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <settingsList>
        <Setting>
            <Value>12</Value>
            <Name>A0</Name>
            <Type>MEASUREMENT</Type>
        </Setting>
        <Setting>
            <Value>5000</Value>
            <Name>C0</Name>
            <Type>MEASUREMENT</Type>
        </Setting>
    </settingsList>
</MySettings>>
Run Code Online (Sandbox Code Playgroud)

是什么使整个 xml 文件由于>末尾的附加标志而损坏。

这是可以解释的还是它的 c# 错误?

c# xml serialization xml-serialization xmlserializer

4
推荐指数
1
解决办法
2612
查看次数