/// <inheritdoc/> public void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("tv", GrainType.UnsafeGetArray(Type)); info.AddValue("th", Type.GetHashCode()); info.AddValue("kv", IdSpan.UnsafeGetArray(Key)); info.AddValue("kh", Key.GetHashCode()); }
/// <summary> /// Converts the provided <see cref="GrainReference"/> to a string which can be parsed by <see cref="GrainReferenceKeyStringConverter"/>. /// </summary> /// <param name="grainReference"> /// The grain reference. /// </param> /// <returns>The key string.</returns> public static string ToKeyString(this GrainReference grainReference) { var id = grainReference.GrainId; var typeString = Convert.ToBase64String(GrainType.UnsafeGetArray(id.Type)); var keyString = Convert.ToBase64String(IdSpan.UnsafeGetArray(id.Key)); return($"{typeString}_{keyString}"); }