public static ResourceSerializationSettings GetResourceSerializationSettings(bool allowPermissions)
        {
            ResourceSerializationSettings settings = new ResourceSerializationSettings();

            if (WebResponseHelper.IsParameterSet(ParameterNames.ResourceFormat, "fixed"))
            {
                settings.ResourceFormat = ResourceSerializationHandling.FixedStructure;
            }

            if (WebResponseHelper.IsParameterSet(ParameterNames.ValueFormat, "string"))
            {
                settings.ValueFormat = AttributeValueSerializationHandling.ConvertToString;
            }

            if (WebResponseHelper.IsParameterSet(ParameterNames.ArrayHandling, "all"))
            {
                settings.ArrayHandling = ArraySerializationHandling.AllAttributes;
            }

            if (WebResponseHelper.IsParameterSet(ParameterNames.ArrayHandling, "whenRequired"))
            {
                settings.ArrayHandling = ArraySerializationHandling.WhenRequired;
            }

            settings.IncludePermissionHints = allowPermissions && WebResponseHelper.IsParameterSet(ParameterNames.IncludePermissionHints);
            settings.IncludeNullValues      = WebResponseHelper.IsParameterSet(ParameterNames.IncludeNullValues);

            return(settings);
        }
        public static Stream GetResponse(object r, bool allowPermissions)
        {
            ResourceSerializationSettings settings = WebResponseHelper.GetResourceSerializationSettings(allowPermissions);

            JsonSerializerSettings d = new JsonSerializerSettings
            {
                Context = new StreamingContext(StreamingContextStates.Other, settings),
                ReferenceLoopHandling = ReferenceLoopHandling.Serialize
            };

            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";

            return(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(r, d))));
        }
Ejemplo n.º 3
0
        private static Stream GetResponse(object r)
        {
            ResourceSerializationSettings settings = new ResourceSerializationSettings
            {
                ArrayHandling          = ArraySerializationHandling.WhenRequired,
                IncludeNullValues      = false,
                IncludePermissionHints = false,
                ResourceFormat         = ResourceSerializationHandling.AttributeValuePairs,
                ValueFormat            = AttributeValueSerializationHandling.ConvertToString
            };

            JsonSerializerSettings d = new JsonSerializerSettings
            {
                Context = new StreamingContext(StreamingContextStates.Other, settings),
                ReferenceLoopHandling = ReferenceLoopHandling.Serialize
            };

            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";

            return(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(r, d))));
        }