static void Main(string[] args) { Stack<String> container = new Stack<string>(); container.Push("Message 1"); container.Push("Message 2"); container.Push("Message 3"); container.Push(ConstantsHelper.ERROR_SIGNAL); container.Push("Message 4"); container.Push("Message 5"); INetworkSender<string> sender = new NetworkSender(new NetworkService()); sender.Sent += Sender_Sent; sender.AddToBuffer(container); sender.AddToBuffer("Message 6"); sender.AddToBuffer("Message 7"); //To find the error code generation find a comment. //"HACK: For generate error." try { sender.Send(); } catch (Exception ex) { Console.WriteLine(); Console.WriteLine(ex.ToString()); Console.WriteLine(); } sender.Send(); sender.Sent -= Sender_Sent; (sender as IDisposable)?.Dispose(); Console.ReadKey(); }