From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/ProtoBuf/SerializationContext.cs | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/ProtoBuf/SerializationContext.cs (limited to 'Client/Assets/Scripts/XMainClient/ProtoBuf/SerializationContext.cs') diff --git a/Client/Assets/Scripts/XMainClient/ProtoBuf/SerializationContext.cs b/Client/Assets/Scripts/XMainClient/ProtoBuf/SerializationContext.cs new file mode 100644 index 00000000..1259b708 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/ProtoBuf/SerializationContext.cs @@ -0,0 +1,57 @@ +using System; + +namespace ProtoBuf +{ + public sealed class SerializationContext + { + public object Context + { + get + { + return this.context; + } + set + { + bool flag = this.context != value; + if (flag) + { + this.ThrowIfFrozen(); + this.context = value; + } + } + } + + internal static SerializationContext Default + { + get + { + return SerializationContext.@default; + } + } + + private bool frozen; + + private object context; + + private static readonly SerializationContext @default = new SerializationContext(); + + internal void Freeze() + { + this.frozen = true; + } + + private void ThrowIfFrozen() + { + bool flag = this.frozen; + if (flag) + { + throw new InvalidOperationException("The serialization-context cannot be changed once it is in use"); + } + } + + static SerializationContext() + { + SerializationContext.@default.Freeze(); + } + } +} -- cgit v1.1-26-g67d0