public virtual void HandleRequest(HttpListenerRequest request, HttpListenerResponse response) { if (request.Url.Segments.Length > 1) { if (string.Compare(request.Url.Segments[1], 0, "artefacts", 0, 9, true) == 0) { Artefact artefact = BsonSerializer.Deserialize <Artefact>(new JsonReader(new StreamReader(new BsonStreamAdapter(request.InputStream)))); //(BsonDeserializationContext.Builder builder) => //{ // builder.DynamicDocumentSerializer = ArtefactSerializer.Instance; //}); Console.WriteLine(nameof(Service) + ": " + UriBase /*.TrimEnd('/') + '/' + string.Join("/", request.Url.Segments) + '/'*/ + Console.Out.NewLine + artefact.ToJson()); //.ToString()); using (var writer = new StreamWriter(response.OutputStream)) { using (var bsonwriter = new JsonWriter(writer)) { BsonSerializer.Serialize(bsonwriter, typeof(Artefact), artefact); } } //response.StatusCode = 200; //response.OutputStream.Flush(); //response.OutputStream.Close(); } } }