public static string GenerateFile() { // NOTE: This list MUST always match the set of feature interfaces implemented by TransportConnectionBase. // See also: shared/TransportConnectionBase.FeatureCollection.cs var allFeatures = new[] { "IConnectionIdFeature", "IConnectionTransportFeature", "IConnectionItemsFeature", "IMemoryPoolFeature", "IConnectionLifetimeFeature", "IProtocolErrorCodeFeature", "ITlsConnectionFeature" }; var implementedFeatures = new[] { "IConnectionIdFeature", "IConnectionItemsFeature", "IMemoryPoolFeature", "IConnectionLifetimeFeature" }; var usings = $@" using Microsoft.AspNetCore.Connections.Features; using Microsoft.AspNetCore.Http.Features;"; return(FeatureCollectionGenerator.GenerateFile( namespaceName: "Microsoft.AspNetCore.Connections", className: "TransportMultiplexedConnection", allFeatures: allFeatures, implementedFeatures: implementedFeatures, extraUsings: usings, fallbackFeatures: null)); }
public static string GenerateFile() { // NOTE: This list MUST always match the set of feature interfaces implemented by TransportConnection. // See also: src/Kestrel.Transport.Abstractions/Internal/TransportConnection.FeatureCollection.cs var features = new[] { "IConnectionIdFeature", "IConnectionTransportFeature", "IConnectionItemsFeature", "IMemoryPoolFeature", "IConnectionLifetimeFeature" }; var usings = $@" using Microsoft.AspNetCore.Connections.Features; using Microsoft.AspNetCore.Http.Features;"; return(FeatureCollectionGenerator.GenerateFile( namespaceName: "Microsoft.AspNetCore.Connections", className: "TransportConnection", allFeatures: features, implementedFeatures: features, extraUsings: usings, fallbackFeatures: null)); }
public static string GenerateFile() { var alwaysFeatures = new[] { "IHttpRequestFeature", "IHttpResponseFeature", "IHttpResponseBodyFeature", "IRouteValuesFeature", "IEndpointFeature", "IServiceProvidersFeature", "IHttpActivityFeature" }; var commonFeatures = new[] { "IItemsFeature", "IQueryFeature", "IRequestBodyPipeFeature", "IFormFeature", "IHttpAuthenticationFeature", "IHttpRequestIdentifierFeature", }; var sometimesFeatures = new[] { "IHttpConnectionFeature", "ISessionFeature", "IResponseCookiesFeature", "IHttpRequestTrailersFeature", "IHttpResponseTrailersFeature", "ITlsConnectionFeature", "IHttpUpgradeFeature", "IHttpWebSocketFeature", "IBadRequestExceptionFeature" }; var maybeFeatures = new[] { "IHttp2StreamIdFeature", "IHttpRequestLifetimeFeature", "IHttpMaxRequestBodySizeFeature", "IHttpMinRequestBodyDataRateFeature", "IHttpMinResponseDataRateFeature", "IHttpBodyControlFeature", "IHttpRequestBodyDetectionFeature", "IHttpResetFeature", "IPersistentStateFeature" }; var allFeatures = alwaysFeatures .Concat(commonFeatures) .Concat(sometimesFeatures) .Concat(maybeFeatures) .ToArray(); // NOTE: This list MUST always match the set of feature interfaces implemented by HttpProtocol. // See also: src/Kestrel.Core/Internal/Http/HttpProtocol.FeatureCollection.cs var implementedFeatures = new[] { "IHttpRequestFeature", "IHttpResponseFeature", "IHttpResponseBodyFeature", "IRouteValuesFeature", "IEndpointFeature", "IHttpRequestIdentifierFeature", "IHttpRequestTrailersFeature", "IHttpUpgradeFeature", "IRequestBodyPipeFeature", "IHttpConnectionFeature", "IHttpRequestLifetimeFeature", "IHttpBodyControlFeature", "IHttpMaxRequestBodySizeFeature", "IHttpRequestBodyDetectionFeature", "IBadRequestExceptionFeature" }; var usings = $@" using Microsoft.AspNetCore.Connections.Features; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Http.Features.Authentication; using Microsoft.AspNetCore.Server.Kestrel.Core.Features;"; return(FeatureCollectionGenerator.GenerateFile( namespaceName: "Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http", className: "HttpProtocol", allFeatures: allFeatures, implementedFeatures: implementedFeatures, extraUsings: usings, fallbackFeatures: "ConnectionFeatures")); }