Exemplo n.º 1
0
        private static HttpEndpointDescriptor GetHttpEndpointDescriptor(Type serverType, string url_root, string endpoint)
        {
            HttpEndpointDescriptor desc = new HttpEndpointDescriptor {
                address = String.Format(CultureInfo.InvariantCulture, "{0}/{1}/", url_root, endpoint)
            };

            string handler_name = endpoint + "Handler";
            var    handler      = serverType.GetMethod(handler_name);

            if (handler == null)
            {
                return(desc);
            }

            //  The signature of a HTTP handler should be:
            //  void handler_name(req_type request, out rsp_type response)
            //    -or-
            //  void handler_name(out rsp_type response)
            var parameters = handler.GetParameters();
            var req_param  = parameters.FirstOrDefault(_ => !_.IsOut);
            var rsp_param  = parameters.FirstOrDefault(_ => _.IsOut);

            var req_type = req_param != null ? req_param.ParameterType : null;
            var rsp_type = rsp_param != null ? rsp_param.ParameterType : null;

            GetProtocolDescription(req_type, out desc.requestType, out desc.requestParameters);
            GetProtocolDescription(rsp_type, out desc.responseType, out desc.responseParameters);

            return(desc);
        }
Exemplo n.º 2
0
 private OperationType GetOperationType(HttpEndpointDescriptor httpEndpoint) =>
 httpEndpoint.Method switch
 {
     { } s when s.Equals(HttpMethods.Get, StringComparison.OrdinalIgnoreCase) => OperationType.Get,
Exemplo n.º 3
0
            internal static void ToString(HttpEndpointDescriptor value, StringBuilder str_builder)
            {
                {
                    str_builder.Append('{');

                    {
                        if (value.address != null)
                        {
                            str_builder.Append("\"address\":");

                            ToString(value.address, str_builder);
                        }
                    }

                    {
                        if (value.requestType != null)
                        {
                            str_builder.Append(',');

                            str_builder.Append("\"requestType\":");

                            ToString(value.requestType, str_builder);
                        }
                    }

                    {
                        if (value.requestParameters != null)
                        {
                            str_builder.Append(',');

                            str_builder.Append("\"requestParameters\":");

                            ToString(value.requestParameters, str_builder);
                        }
                    }

                    {
                        if (value.responseType != null)
                        {
                            str_builder.Append(',');

                            str_builder.Append("\"responseType\":");

                            ToString(value.responseType, str_builder);
                        }
                    }

                    {
                        if (value.responseParameters != null)
                        {
                            str_builder.Append(',');

                            str_builder.Append("\"responseParameters\":");

                            ToString(value.responseParameters, str_builder);
                        }
                    }

                    str_builder.Append('}');
                }
            }
Exemplo n.º 4
0
 public static string ToString(HttpEndpointDescriptor value)
 {
     s_ensure_string_builder();
     ToString(value, s_stringBuilder);
     return(s_stringBuilder.ToString());
 }