public virtual void Add(ResponsibilityChain <TRequest, TResponse> handler)
 {
     if (NextInChain == null)
     {
         NextInChain = handler;
     }
     else
     {
         NextInChain.Add(handler);
     }
 }
 public override void Add(ResponsibilityChain <TRequest, TResponse> handler)
 {
     throw new NotSupportedException(
               string.Format(_END_OF_CHAIN, nameof(NullResponsibilityChain <TRequest, TResponse>))
               );
 }