public void Dispose()
 {
     if (parent != null)
     {
         parent.observerList.Remove(unsubscribeTarget);
         unsubscribeTarget = null;
         parent            = null;
     }
 }
 public Subscription(ActionSubject <T> parent, IObserver <T> unsubscribeTarget)
 {
     this.parent            = parent;
     this.unsubscribeTarget = unsubscribeTarget;
 }