gpt4 book ai didi

c# - 二进制序列化,IFormatter : use a new one each time or store one in a field?

转载 作者:太空狗 更新时间:2023-10-29 23:00:14 25 4
gpt4 key购买 nike

第一次在 .net C# 中使用二进制格式

来自MSDN的代码是这样的:

 IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.lvl", FileMode.Create, FileAccess.Write,FileShare.None);
formatter.Serialize(stream, Globals.CurrentLevel);
stream.Close();

只是想知道我应该在我的类中的一个字段中存储一个 IFormatter 并一遍又一遍地使用它,还是应该像上面那样做并在每次保存/加载某些东西时实例化一个新的?

我注意到它不是IDisposable

最佳答案

重新创建 BinaryFormatter 的开销很小,它在构造函数中设置的大部分属性都是 enum,请参见此处(感谢 Reflector):

public BinaryFormatter()
{
this.m_typeFormat = FormatterTypeStyle.TypesAlways;
this.m_securityLevel = TypeFilterLevel.Full;
this.m_surrogates = null;
this.m_context = new StreamingContext(StreamingContextStates.All);
}

如果您要重新使用它,则需要同步对 SerializeDeserialize 方法的访问以确保它们线程安全。

关于c# - 二进制序列化,IFormatter : use a new one each time or store one in a field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com