/// <summary> /// Constructor. /// </summary> /// <param name="inputContext">The input context to read the content from.</param> /// <param name="batchBoundary">The boundary string for the batch structure itself.</param> /// <param name="batchEncoding">The encoding to use to read from the batch stream.</param> internal ODataBatchReaderStream( ODataRawInputContext inputContext, string batchBoundary, Encoding batchEncoding) { Debug.Assert(inputContext != null, "inputContext != null"); Debug.Assert(!string.IsNullOrEmpty(batchBoundary), "!string.IsNullOrEmpty(batchBoundary)"); this.inputContext = inputContext; this.batchBoundary = batchBoundary; this.batchEncoding = batchEncoding; this.batchBuffer = new ODataBatchReaderStreamBuffer(); // When we allocate a batch reader stream we will in almost all cases also call ReadLine // (to read the headers of the parts); so allocating it here. this.lineBuffer = new byte[LineBufferLength]; this.mediaTypeResolver = ODataMediaTypeResolver.GetMediaTypeResolver(inputContext.Container); }
/// <summary> /// Adds the default OData services to the <see cref="IContainerBuilder"/>. /// </summary> /// <param name="builder">The <see cref="IContainerBuilder"/> to add the services to.</param> /// <returns>The <see cref="IContainerBuilder"/> instance itself.</returns> public static IContainerBuilder AddDefaultODataServices(this IContainerBuilder builder) { Debug.Assert(builder != null, "builder != null"); builder.AddService <IJsonReaderFactory, DefaultJsonReaderFactory>(ServiceLifetime.Singleton); builder.AddService <IJsonWriterFactory, DefaultJsonWriterFactory>(ServiceLifetime.Singleton); builder.AddService(ServiceLifetime.Singleton, sp => ODataMediaTypeResolver.GetMediaTypeResolver(null)); builder.AddService <ODataMessageInfo>(ServiceLifetime.Scoped); builder.AddServicePrototype(new ODataMessageReaderSettings()); builder.AddService(ServiceLifetime.Scoped, sp => sp.GetServicePrototype <ODataMessageReaderSettings>().Clone()); builder.AddServicePrototype(new ODataMessageWriterSettings()); builder.AddService(ServiceLifetime.Scoped, sp => sp.GetServicePrototype <ODataMessageWriterSettings>().Clone()); builder.AddService(ServiceLifetime.Singleton, sp => ODataPayloadValueConverter.GetPayloadValueConverter(null)); builder.AddService <IEdmModel>(ServiceLifetime.Singleton, sp => EdmCoreModel.Instance); builder.AddService(ServiceLifetime.Singleton, sp => ODataUriResolver.GetUriResolver(null)); builder.AddService <ODataUriParserSettings>(ServiceLifetime.Scoped); builder.AddService <UriPathParser>(ServiceLifetime.Scoped); builder.AddServicePrototype(new ODataSimplifiedOptions()); builder.AddService(ServiceLifetime.Scoped, sp => sp.GetServicePrototype <ODataSimplifiedOptions>().Clone()); return(builder); }