Ejemplo n.º 1
0
        public override void ConvertToSurrogate(T value, ref GrainReferenceSurrogate surrogate)
        {
            // Check that the typical case is false before performing the more expensive interface check
            if (value is not GrainReference refValue)
            {
                if (value is IGrainObserver observer)
                {
                    GrainReferenceCodecProvider.ThrowGrainObserverInvalidException(observer);
                }

                refValue = (GrainReference)(object)value.AsReference <T>();
            }

            surrogate = new GrainReferenceSurrogate
            {
                GrainId            = refValue.GrainId,
                GrainInterfaceType = refValue.InterfaceType
            };
        }
Ejemplo n.º 2
0
 public override T ConvertFromSurrogate(ref GrainReferenceSurrogate surrogate)
 {
     return((T)_grainFactory.GetGrain(surrogate.GrainId, surrogate.GrainInterfaceType));
 }