Serialize() 공개 정적인 메소드

public static Serialize ( this e ) : string
e this
리턴 string
예제 #1
0
        private void HandleRequest(WoopsaVerb verb, HTTPRequest request, HTTPResponse response)
        {
            try
            {
                // This is the first thing we do, that way even 404 errors have the right headers
                if (AllowCrossOrigin)
                {
                    // TODO: constantes symboliques
                    response.SetHeader("Access-Control-Allow-Origin", "*");
                }
                string result = null;
                ExecuteBeforeWoopsaModelAccess();
                try
                {
                    switch (verb)
                    {
                    case WoopsaVerb.Meta:
                        result = GetMetadata(request.Subroute);
                        break;

                    case WoopsaVerb.Read:
                        result = ReadValue(request.Subroute);
                        break;

                    case WoopsaVerb.Write:
                        result = WriteValue(request.Subroute, request.Body["value"]);
                        break;

                    case WoopsaVerb.Invoke:
                        result = InvokeMethod(request.Subroute, request.Body);
                        break;
                    }
                }
                finally
                {
                    ExecuteAfterWoopsaModelAccess();
                }
                response.SetHeader(HTTPHeader.ContentType, MIMETypes.Application.JSON);
                if (result != null)
                {
                    response.WriteString(result);
                }
            }
            catch (WoopsaNotFoundException e)
            {
                response.WriteError(HTTPStatusCode.NotFound, e.Message, WoopsaFormat.Serialize(e), MIMETypes.Application.JSON);
            }
            catch (WoopsaInvalidOperationException e)
            {
                response.WriteError(HTTPStatusCode.BadRequest, e.Message, WoopsaFormat.Serialize(e), MIMETypes.Application.JSON);
            }
            catch (WoopsaException e)
            {
                response.WriteError(HTTPStatusCode.InternalServerError, e.Message, WoopsaFormat.Serialize(e), MIMETypes.Application.JSON);
            }
            catch (Exception e)
            {
                response.WriteError(HTTPStatusCode.InternalServerError, e.Message, WoopsaFormat.Serialize(e), MIMETypes.Application.JSON);
            }
        }
예제 #2
0
 private WoopsaValue HandleCall(IWoopsaValue requestsArgument)
 {
     using (new WoopsaServerModelAccessFreeSection(_server))
     {
         ServerRequest[] requestsList             = JsonSerializer.Deserialize <ServerRequest[]>(requestsArgument.AsText, WoopsaUtils.ObjectToInferredTypesConverterOptions);
         List <MultipleRequestResponse> responses = new List <MultipleRequestResponse>();
         foreach (var request in requestsList)
         {
             string result = null;
             try
             {
                 using (new WoopsaServerModelAccessLockedSection(_server))
                 {
                     if (request.Verb.Equals(WoopsaFormat.VerbRead))
                     {
                         result = _server.ReadValue(request.Path);
                     }
                     else if (request.Verb.Equals(WoopsaFormat.VerbMeta))
                     {
                         result = _server.GetMetadata(request.Path);
                     }
                     else if (request.Verb.Equals(WoopsaFormat.VerbWrite))
                     {
                         result = _server.WriteValueDeserializedJson(request.Path, request.Value);
                     }
                     else if (request.Verb.Equals(WoopsaFormat.VerbInvoke))
                     {
                         result = _server.InvokeMethodDeserializedJson(request.Path,
                                                                       request.Arguments);
                     }
                 }
             }
             catch (Exception e)
             {
                 result = WoopsaFormat.Serialize(e);
             }
             MultipleRequestResponse response = new MultipleRequestResponse();
             response.Id     = request.Id;
             response.Result = result;
             responses.Add(response);
         }
         return(WoopsaValue.CreateUnchecked(responses.Serialize(), WoopsaValueType.JsonData));
     }
 }
예제 #3
0
        private WoopsaValue HandleCall(IWoopsaValue requestsArgument)
        {
            var serializer = new JavaScriptSerializer();

            ServerRequest[] requestsList             = serializer.Deserialize <ServerRequest[]>(requestsArgument.AsText);
            List <MultipleRequestResponse> responses = new List <MultipleRequestResponse>();

            foreach (var request in requestsList)
            {
                string result = null;
                try
                {
                    if (request.Verb.Equals(WoopsaFormat.VerbRead))
                    {
                        result = _server.ReadValue(request.Path);
                    }
                    else if (request.Verb.Equals(WoopsaFormat.VerbMeta))
                    {
                        result = _server.GetMetadata(request.Path);
                    }
                    else if (request.Verb.Equals(WoopsaFormat.VerbWrite))
                    {
                        result = _server.WriteValueDeserializedJson(request.Path, request.Value);
                    }
                    else if (request.Verb.Equals(WoopsaFormat.VerbInvoke))
                    {
                        result = _server.InvokeMethodDeserializedJson(request.Path,
                                                                      request.Arguments);
                    }
                }
                catch (Exception e)
                {
                    result = WoopsaFormat.Serialize(e);
                }
                MultipleRequestResponse response = new MultipleRequestResponse();
                response.Id     = request.Id;
                response.Result = result;
                responses.Add(response);
            }
            return(WoopsaValue.CreateUnchecked(responses.Serialize(), WoopsaValueType.JsonData));
        }