Ejemplo n.º 1
0
        public void InvokeMethod(ServiceReference reference, int methodId, object[] arguments, InvokeMethodOptions options = InvokeMethodOptions.None)
        {
            var request = new MethodInvokeRequest();

            request.MethodId  = methodId;
            request.Arguments = arguments;

            var message = new Message();

            message.Guid       = Guid.NewGuid();
            message.Target     = reference.InterfaceId;
            message.BodyObject = request;
            message.Direction  = options.HasFlag(InvokeMethodOptions.OneWay) ? Message.Directions.OneWay : Message.Directions.Request;
            if (clientOptions.Credentials != null)
            {
                message.Authorization = clientOptions.Credentials.Create();
            }
            if (options.HasFlag(InvokeMethodOptions.OneWay))
            {
                clientRuntime.SendMessage(message);
                return;
            }

            clientRuntime.SendRequest(message, clientOptions.RequestTimeout);
        }