public NProgDistributed.TheIce.MessageDto Send(NProgDistributed.TheIce.MessageDto message, _System.Collections.Generic.Dictionary <string, string> context__, Ice.Instrumentation.InvocationObserver observer__)
 {
     IceInternal.Outgoing og__ = handler__.getOutgoing("Send", Ice.OperationMode.Normal, context__, observer__);
     try
     {
         try
         {
             IceInternal.BasicStream os__ = og__.startWriteParams(Ice.FormatType.DefaultFormat);
             os__.writeObject(message);
             os__.writePendingObjects();
             og__.endWriteParams();
         }
         catch (Ice.LocalException ex__)
         {
             og__.abort(ex__);
         }
         bool ok__ = og__.invoke();
         try
         {
             if (!ok__)
             {
                 try
                 {
                     og__.throwUserException();
                 }
                 catch (Ice.UserException ex__)
                 {
                     throw new Ice.UnknownUserException(ex__.ice_name(), ex__);
                 }
             }
             IceInternal.BasicStream            is__ = og__.startReadParams();
             NProgDistributed.TheIce.MessageDto ret__;
             IceInternal.ParamPatcher <NProgDistributed.TheIce.MessageDto> ret__PP = new IceInternal.ParamPatcher <NProgDistributed.TheIce.MessageDto>(NProgDistributed.TheIce.MessageDto.ice_staticId());
             is__.readObject(ret__PP);
             is__.readPendingObjects();
             og__.endReadParams();
             ret__ = ret__PP.value;
             return(ret__);
         }
         catch (Ice.LocalException ex__)
         {
             throw new IceInternal.LocalExceptionWrapper(ex__, false);
         }
     }
     finally
     {
         handler__.reclaimOutgoing(og__);
     }
 }
 public static Ice.DispatchStatus Send___(IMessageService obj__, IceInternal.Incoming inS__, Ice.Current current__)
 {
     checkMode__(Ice.OperationMode.Normal, current__.mode);
     IceInternal.BasicStream is__ = inS__.startReadParams();
     IceInternal.ParamPatcher <NProgDistributed.TheIce.MessageDto> message__PP = new IceInternal.ParamPatcher <NProgDistributed.TheIce.MessageDto>(NProgDistributed.TheIce.MessageDto.ice_staticId());
     is__.readObject(message__PP);
     is__.readPendingObjects();
     inS__.endReadParams();
     NProgDistributed.TheIce.MessageDto ret__ = obj__.Send(message__PP.value, current__);
     IceInternal.BasicStream            os__  = inS__.startWriteParams__(Ice.FormatType.DefaultFormat);
     os__.writeObject(ret__);
     os__.writePendingObjects();
     inS__.endWriteParams__(true);
     return(Ice.DispatchStatus.DispatchOK);
 }
            public NProgDistributed.TheIce.MessageDto end_Send(Ice.AsyncResult r__)
            {
                IceInternal.OutgoingAsync outAsync__ = (IceInternal.OutgoingAsync)r__;
                IceInternal.OutgoingAsync.check__(outAsync__, this, __Send_name);
                bool ok__ = outAsync__.wait__();

                try
                {
                    if (!ok__)
                    {
                        try
                        {
                            outAsync__.throwUserException__();
                        }
                        catch (Ice.UserException ex__)
                        {
                            throw new Ice.UnknownUserException(ex__.ice_name(), ex__);
                        }
                    }
                    NProgDistributed.TheIce.MessageDto ret__;
                    IceInternal.BasicStream            is__ = outAsync__.startReadParams__();
                    IceInternal.ParamPatcher <NProgDistributed.TheIce.MessageDto> ret__PP = new IceInternal.ParamPatcher <NProgDistributed.TheIce.MessageDto>(NProgDistributed.TheIce.MessageDto.ice_staticId());
                    is__.readObject(ret__PP);
                    is__.readPendingObjects();
                    outAsync__.endReadParams__();
                    ret__ = ret__PP.value;
                    return(ret__);
                }
                catch (Ice.LocalException ex)
                {
                    Ice.Instrumentation.InvocationObserver obsv__ = outAsync__.getObserver__();
                    if (obsv__ != null)
                    {
                        obsv__.failed(ex.ice_name());
                    }
                    throw ex;
                }
            }