gpt4 book ai didi

c# - 我应该如何处理反序列化的字符串实习?

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

在下面的示例中,我将字符串驻留在构造函数中,这很好。但是,当我从二进制格式化程序反序列化对象时,我认为字符串不会被保留,因为应该调用构造函数。我应该如何确保 _name 字符串被保留? ...还是会被拘留?

编辑: 因此它似乎可以在不处理 OnDeserializedAttribute 的情况下工作(正确地实习字符串)。它是如何做到的?

我正在使用内存分析器,无论是否使用下面的方法,它仍然会保留字符串?魔法? :-/

   [OnDeserializedAttribute]
private void OnDeserialized(StreamingContext context)
{
_name = string.Intern(_name);
}

谢谢

[Serializable]
class City
{
private readonly string _name;

public City(string t)
{
_name = string.Intern(t);
}

public string Name
{
get { return _name; }
}

public override string ToString()
{
return _name;
}
}

最佳答案

如果您实现ISerializable 接口(interface)(而不是属性),这是可能的。它会让你进行反序列化。

但是好像很没必要。你确定你正在用这个完成任何事情吗?

关于c# - 我应该如何处理反序列化的字符串实习?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2965657/

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