SoapFormatter和FileStream如何协同工作/

时间:2013-05-30 16:30:12

标签: c# .net serialization

FileStream 仅写入原始字节。当我使用 SoapFormatter 进行序列化时,如果我打开文件,我可以看到XML就像文本一样。我认为你必须在将每个字符传递给 FileStream 之前对其进行编码,并且写入FileStream的数据不会作为文本传递。

1 个答案:

答案 0 :(得分:1)

我不知道我是否可以解释。但是,让我试试。

采用文件流并输出文本文件的类可以以各种方式实现......

例如

;

public class SomeClass
{
    FileStream _file = null;

    public SomeClass(FileStream f)
    {
        _file = f;
    }

    void WriteString(string s)
    {
        byte[] buf = Encoding.UTF8.GetBytes(s);
        _file.Write(buf, 0, buf.Length);
    }
}

public class SomeClass
{
    TextWriter _Writer = null;
    public SomeClass(FileStream f) : this(new StreamWriter(f,Encoding.UTF8))
    {
    }

    public SomeClass(TextWriter tw)
    {
        _Writer = tw;
    }

    void WriteString(string s)
    {
        _Writer.Write(s);
    }
}