/// <summary>
 /// Indicates whether the current object is equal to another object of the same type.
 /// </summary>
 /// <returns>
 /// true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
 /// </returns>
 /// <param name="other">An object to compare with this object.</param>
 public bool Equals(ActorReferenceWrapper other)
 {
     if (other == null)
     {
         return(false);
     }
     return(Equals(other.ActorReference.ActorId, ActorReference.ActorId));
 }
        /// <summary>
        /// Attempts to publish the message to a listener.
        /// </summary>
        /// <param name="wrapper"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static Task PublishAsync(this ActorReferenceWrapper wrapper, MessageWrapper message)
        {
            ISubscriberActor actor = (ISubscriberActor)wrapper.ActorReference.Bind(typeof(ISubscriberActor));

            return(actor.ReceiveMessageAsync(message));
        }