static void AddServicePrototypes(IContainerBuilder builder) { builder.AddServicePrototype(new ODataMessageReaderSettings() { EnableMessageStreamDisposal = false, MessageQuotas = new ODataMessageQuotas { MaxReceivedMessageSize = long.MaxValue } }); builder.AddServicePrototype(new ODataMessageWriterSettings() { EnableMessageStreamDisposal = false, MessageQuotas = new ODataMessageQuotas { MaxReceivedMessageSize = long.MaxValue } }); }
protected override void ConfigureContainer(IContainerBuilder builder) { base.ConfigureContainer(builder); builder.AddServicePrototype(new ODataSimplifiedOptions() { EnableWritingODataAnnotationWithoutPrefix = true, EnableReadingODataAnnotationWithoutPrefix = true, }); }
/// <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); }
public static IContainerBuilder AddDefaultWebApiServices(this IContainerBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddService <IETagHandler, DefaultODataETagHandler>(ServiceLifetime.Singleton); //builder.AddService<IODataPathHandler, DefaultODataPathHandler>(ServiceLifetime.Singleton); // ReaderSettings and WriterSettings are registered as prototype services. // There will be a copy (if it is accessed) of each prototype for each request. builder.AddServicePrototype(new ODataMessageReaderSettings { EnableMessageStreamDisposal = false, MessageQuotas = new ODataMessageQuotas { MaxReceivedMessageSize = Int64.MaxValue }, }); builder.AddServicePrototype(new ODataMessageWriterSettings { EnableMessageStreamDisposal = false, MessageQuotas = new ODataMessageQuotas { MaxReceivedMessageSize = Int64.MaxValue }, }); // QueryValidators. builder.AddService <CountQueryValidator>(ServiceLifetime.Singleton); builder.AddService <FilterQueryValidator>(ServiceLifetime.Singleton); builder.AddService <ODataQueryValidator>(ServiceLifetime.Singleton); builder.AddService <OrderByQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SelectExpandQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SkipQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SkipTokenQueryValidator>(ServiceLifetime.Singleton); builder.AddService <TopQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SkipTokenHandler, DefaultSkipTokenHandler>(ServiceLifetime.Singleton); // SerializerProvider and DeserializerProvider. builder.AddService <ODataSerializerProvider, DefaultODataSerializerProvider>(ServiceLifetime.Singleton); builder.AddService <ODataDeserializerProvider, DefaultODataDeserializerProvider>(ServiceLifetime.Singleton); // Deserializers. builder.AddService <ODataResourceDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataEnumDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataPrimitiveDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataResourceSetDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataCollectionDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataEntityReferenceLinkDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataActionPayloadDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataDeltaResourceSetDeserializer>(ServiceLifetime.Singleton); // Serializers. builder.AddService <ODataEnumSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataPrimitiveSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataDeltaResourceSetSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataResourceSetSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataCollectionSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataResourceSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataServiceDocumentSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataEntityReferenceLinkSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataEntityReferenceLinksSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataErrorSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataMetadataSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataRawValueSerializer>(ServiceLifetime.Singleton); // Binders. builder.AddService <ODataQuerySettings>(ServiceLifetime.Scoped); builder.AddService <FilterBinder>(ServiceLifetime.Transient); // HttpRequestScope. //builder.AddService<HttpRequestScope>(ServiceLifetime.Scoped); //builder.AddService(ServiceLifetime.Scoped, sp => sp.GetRequiredService<HttpRequestScope>().HttpRequest); return(builder); }
/// <summary> /// Injects the default Web API OData services. /// </summary> /// <param name="builder">The container builder.</param> /// <returns>The calling itself.</returns> public static IContainerBuilder AddDefaultWebApiServices(this IContainerBuilder builder) { if (builder == null) { throw Error.ArgumentNull(nameof(builder)); } builder.AddService <IETagHandler, DefaultODataETagHandler>(ServiceLifetime.Singleton); //builder.AddService<IODataPathHandler, DefaultODataPathHandler>(ServiceLifetime.Singleton); // ReaderSettings and WriterSettings are registered as prototype services. // There will be a copy (if it is accessed) of each prototype for each request. builder.AddServicePrototype(new ODataMessageReaderSettings { EnableMessageStreamDisposal = false, MessageQuotas = new ODataMessageQuotas { MaxReceivedMessageSize = Int64.MaxValue }, // WebAPI should read untyped values as structural values by setting ReadUntypedAsString=false. // In ODL 8.x, ReadUntypedAsString option will be deleted. ReadUntypedAsString = false, // Enable read property name case-insensitive from payload. EnablePropertyNameCaseInsensitive = true }); builder.AddServicePrototype(new ODataMessageWriterSettings { EnableMessageStreamDisposal = false, MessageQuotas = new ODataMessageQuotas { MaxReceivedMessageSize = Int64.MaxValue }, }); // QueryValidators. builder.AddService <CountQueryValidator>(ServiceLifetime.Singleton); // FilterQueryValidator should be scoped, otherwise some instance field (for example:_currentNodeCount) should be a problem. builder.AddService <FilterQueryValidator>(ServiceLifetime.Scoped); builder.AddService <ODataQueryValidator>(ServiceLifetime.Singleton); builder.AddService <OrderByQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SelectExpandQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SkipQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SkipTokenQueryValidator>(ServiceLifetime.Singleton); builder.AddService <TopQueryValidator>(ServiceLifetime.Singleton); builder.AddService <SkipTokenHandler, DefaultSkipTokenHandler>(ServiceLifetime.Singleton); // SerializerProvider and DeserializerProvider. builder.AddService <IODataSerializerProvider, ODataSerializerProvider>(ServiceLifetime.Singleton); builder.AddService <IODataDeserializerProvider, ODataDeserializerProvider>(ServiceLifetime.Singleton); // Deserializers. builder.AddService <ODataResourceDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataEnumDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataPrimitiveDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataResourceSetDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataCollectionDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataEntityReferenceLinkDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataActionPayloadDeserializer>(ServiceLifetime.Singleton); builder.AddService <ODataDeltaResourceSetDeserializer>(ServiceLifetime.Singleton); // Serializers. builder.AddService <ODataEnumSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataPrimitiveSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataDeltaResourceSetSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataResourceSetSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataCollectionSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataResourceSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataServiceDocumentSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataEntityReferenceLinkSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataEntityReferenceLinksSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataErrorSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataMetadataSerializer>(ServiceLifetime.Singleton); builder.AddService <ODataRawValueSerializer>(ServiceLifetime.Singleton); // Binders. builder.AddService <ODataQuerySettings>(ServiceLifetime.Scoped); builder.AddService <IFilterBinder, FilterBinder>(ServiceLifetime.Singleton); builder.AddService <IOrderByBinder, OrderByBinder>(ServiceLifetime.Singleton); builder.AddService <ISelectExpandBinder, SelectExpandBinder>(ServiceLifetime.Singleton); // HttpRequestScope. builder.AddService <HttpRequestScope>(ServiceLifetime.Scoped); builder.AddService(ServiceLifetime.Scoped, sp => sp.GetRequiredService <HttpRequestScope>().HttpRequest); return(builder); }