public Envelope <TOther> To <TOther>() where TOther : class { return(new Envelope <TOther>(payload as TOther, headers.Clone())); }
public Envelope <TOther> To <TOther>() where TOther : class, IEvent { return(new Envelope <TOther>((payload as TOther) !, headers.Clone())); }