internal static string ConvertToUriComplexLiteral(ODataComplexValue complexValue, IEdmModel model, ODataVersion version) { ExceptionUtils.CheckArgumentNotNull<ODataComplexValue>(complexValue, "complexValue"); ExceptionUtils.CheckArgumentNotNull<IEdmModel>(model, "model"); StringBuilder sb = new StringBuilder(); using (TextWriter writer = new StringWriter(sb, CultureInfo.InvariantCulture)) { JsonWriter jsonWriter = new JsonWriter(writer, false); bool writingResponse = false; ODataMessageWriterSettings messageWriterSettings = new ODataMessageWriterSettings { Version = new ODataVersion?(version) }; using (ODataJsonOutputContext context = ODataJsonOutputContext.Create(ODataFormat.VerboseJson, jsonWriter, messageWriterSettings, writingResponse, model, null)) { ODataJsonPropertyAndValueSerializer serializer = new ODataJsonPropertyAndValueSerializer(context); serializer.WriteComplexValue(complexValue, null, true, serializer.CreateDuplicatePropertyNamesChecker(), null); } } return sb.ToString(); }