private void WriteParameter(ItemWrapper wrapper, bool withModel, Action <string> validate) { using (MemoryStream stream = new MemoryStream()) { var message = new InMemoryMessage { Stream = stream }; var settings = new ODataMessageWriterSettings { Version = ODataVersion.V4 }; using (ODataMessageWriter messageWriter = new ODataMessageWriter((IODataRequestMessage)message, settings, withModel ? model : null)) { ODataWriter writer; ResourceWrapper resource = wrapper as ResourceWrapper; if (resource != null) { writer = messageWriter.CreateODataUriParameterResourceWriter(null, null); WriteResource(writer, resource); } else { writer = messageWriter.CreateODataUriParameterResourceSetWriter(null, null); WriteResourceSet(writer, wrapper as ResourceSetWrapper); } writer.Flush(); } var actual = Encoding.UTF8.GetString(stream.ToArray()); validate(actual); } }