public static bool TryGetBinaryConverter(Type typeToSerialize, out BinaryConverterBase result) { if (typeToSerialize == null) { throw new NullReferenceException($"The parameter '{nameof(typeToSerialize)}' can't be null."); } return(SerializationPlansCachedByEveryTypeHachcode.TryGetValue(typeToSerialize.GetHashCode(), out result)); }
public static void SetSerializePlan(Type typeToSerialize, BinaryConverterBase value) { BinaryConverterBase result; if (!SerializationPlansCachedByEveryTypeHachcode.TryGetValue(typeToSerialize.GetHashCode(), out result)) { if (typeToSerialize == null) { throw new NullReferenceException($"The parameter '{nameof(typeToSerialize)}' can't be null."); } lock (SerializationPlansCachedByEveryTypeHachcode_Copy) { if (!SerializationPlansCachedByEveryTypeHachcode_Copy.ContainsKey(typeToSerialize.GetHashCode())) { SerializationPlansCachedByEveryTypeHachcode_Copy[typeToSerialize.GetHashCode()] = value; SerializationPlansCachedByEveryTypeHachcode = SerializationPlansCachedByEveryTypeHachcode_Copy.ToDictionary(item => item.Key, item => item.Value); } } } }