Ejemplo n.º 1
0
 /// <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}");
        }