TFeature IFeatureCollection.Get <TFeature>() { TFeature feature = default; if (typeof(TFeature) == typeof(IConnectionIdFeature)) { feature = (TFeature)_currentIConnectionIdFeature; } else if (typeof(TFeature) == typeof(IConnectionTransportFeature)) { feature = (TFeature)_currentIConnectionTransportFeature; } else if (typeof(TFeature) == typeof(IConnectionItemsFeature)) { feature = (TFeature)_currentIConnectionItemsFeature; } else if (typeof(TFeature) == typeof(IMemoryPoolFeature)) { feature = (TFeature)_currentIMemoryPoolFeature; } else if (typeof(TFeature) == typeof(IConnectionLifetimeFeature)) { feature = (TFeature)_currentIConnectionLifetimeFeature; } else if (MaybeExtra != null) { feature = (TFeature)(ExtraFeatureGet(typeof(TFeature))); } return(feature); }
TFeature IFeatureCollection.Get <TFeature>() { TFeature feature = default; if (typeof(TFeature) == typeof(IHttpConnectionFeature)) { feature = (TFeature)_currentIHttpConnectionFeature; } else if (typeof(TFeature) == typeof(IConnectionIdFeature)) { feature = (TFeature)_currentIConnectionIdFeature; } else if (typeof(TFeature) == typeof(IConnectionTransportFeature)) { feature = (TFeature)_currentIConnectionTransportFeature; } else if (typeof(TFeature) == typeof(IConnectionItemsFeature)) { feature = (TFeature)_currentIConnectionItemsFeature; } else if (typeof(TFeature) == typeof(IMemoryPoolFeature)) { feature = (TFeature)_currentIMemoryPoolFeature; } else if (typeof(TFeature) == typeof(IApplicationTransportFeature)) { feature = (TFeature)_currentIApplicationTransportFeature; } else if (typeof(TFeature) == typeof(ITransportSchedulerFeature)) { feature = (TFeature)_currentITransportSchedulerFeature; } else if (typeof(TFeature) == typeof(IConnectionLifetimeFeature)) { feature = (TFeature)_currentIConnectionLifetimeFeature; } else if (typeof(TFeature) == typeof(IConnectionHeartbeatFeature)) { feature = (TFeature)_currentIConnectionHeartbeatFeature; } else if (typeof(TFeature) == typeof(IConnectionLifetimeNotificationFeature)) { feature = (TFeature)_currentIConnectionLifetimeNotificationFeature; } else if (typeof(TFeature) == typeof(IBytesWrittenFeature)) { feature = (TFeature)_currentIBytesWrittenFeature; } else if (MaybeExtra != null) { feature = (TFeature)(ExtraFeatureGet(typeof(TFeature))); } return(feature); }
public TFeature Get <TFeature>() where TFeature : class { TFeature result = default; if (_features.TryGetValue(typeof(TFeature), out var entry)) { result = entry as TFeature; } return(result); }
public TFeature Using <TFeature>() where TFeature : class, IEntityFieldFeature, new() { var feature = Features.OfType <TFeature>().SingleOrDefault(); if (feature == null) { feature = new TFeature(); Features.Add(feature); } return(feature); }
private TFeature GetOrAdd <TFeature>() where TFeature : IFeature, new() { IFeature feature; if (_features.TryGetValue(typeof(TFeature), out feature) == false) { feature = new TFeature(); _featureActors.AddRange(feature.GetFeatureActors()); } return((TFeature)feature); }
TFeature IFeatureCollection.Get <TFeature>() { TFeature feature = default; if (typeof(TFeature) == typeof(IHttpRequestFeature)) { feature = (TFeature)_currentIHttpRequestFeature; } else if (typeof(TFeature) == typeof(IHttpResponseFeature)) { feature = (TFeature)_currentIHttpResponseFeature; } else if (typeof(TFeature) == typeof(IHttpRequestIdentifierFeature)) { feature = (TFeature)_currentIHttpRequestIdentifierFeature; } else if (typeof(TFeature) == typeof(IServiceProvidersFeature)) { feature = (TFeature)_currentIServiceProvidersFeature; } else if (typeof(TFeature) == typeof(IHttpRequestLifetimeFeature)) { feature = (TFeature)_currentIHttpRequestLifetimeFeature; } else if (typeof(TFeature) == typeof(IHttpConnectionFeature)) { feature = (TFeature)_currentIHttpConnectionFeature; } else if (typeof(TFeature) == typeof(IHttpAuthenticationFeature)) { feature = (TFeature)_currentIHttpAuthenticationFeature; } else if (typeof(TFeature) == typeof(IQueryFeature)) { feature = (TFeature)_currentIQueryFeature; } else if (typeof(TFeature) == typeof(IFormFeature)) { feature = (TFeature)_currentIFormFeature; } else if (typeof(TFeature) == typeof(IHttpUpgradeFeature)) { feature = (TFeature)_currentIHttpUpgradeFeature; } else if (typeof(TFeature) == typeof(IHttp2StreamIdFeature)) { feature = (TFeature)_currentIHttp2StreamIdFeature; } else if (typeof(TFeature) == typeof(IResponseCookiesFeature)) { feature = (TFeature)_currentIResponseCookiesFeature; } else if (typeof(TFeature) == typeof(IItemsFeature)) { feature = (TFeature)_currentIItemsFeature; } else if (typeof(TFeature) == typeof(ITlsConnectionFeature)) { feature = (TFeature)_currentITlsConnectionFeature; } else if (typeof(TFeature) == typeof(IHttpWebSocketFeature)) { feature = (TFeature)_currentIHttpWebSocketFeature; } else if (typeof(TFeature) == typeof(ISessionFeature)) { feature = (TFeature)_currentISessionFeature; } else if (typeof(TFeature) == typeof(IHttpMaxRequestBodySizeFeature)) { feature = (TFeature)_currentIHttpMaxRequestBodySizeFeature; } else if (typeof(TFeature) == typeof(IHttpMinRequestBodyDataRateFeature)) { feature = (TFeature)_currentIHttpMinRequestBodyDataRateFeature; } else if (typeof(TFeature) == typeof(IHttpMinResponseDataRateFeature)) { feature = (TFeature)_currentIHttpMinResponseDataRateFeature; } else if (typeof(TFeature) == typeof(IHttpBodyControlFeature)) { feature = (TFeature)_currentIHttpBodyControlFeature; } else if (typeof(TFeature) == typeof(IHttpSendFileFeature)) { feature = (TFeature)_currentIHttpSendFileFeature; } else if (MaybeExtra != null) { feature = (TFeature)(ExtraFeatureGet(typeof(TFeature))); } if (feature == null) { feature = ConnectionFeatures.Get <TFeature>(); } return(feature); }