Browse Source

Enable nullable annotations for Volo.Abp.AspNetCore

pull/17062/head
liangshiwei 3 years ago
parent
commit
741461e6c2
  1. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs
  2. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpAspNetCoreApplicationBuilderExtensions.cs
  3. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/VirtualFileSystemApplicationBuilderExtensions.cs
  4. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Hosting/AbpHostingEnvironmentExtensions.cs
  5. 4
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Internal/ResponseContentTypeHelper.cs
  6. 4
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationOptionsManager.cs
  7. 8
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs
  8. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs
  9. 2
      framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/CookieAuthenticationOptionsExtensions.cs
  10. 12
      framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/EmptyHostingEnvironment.cs
  11. 4
      framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/WebApplicationBuilderExtensions.cs
  12. 2
      framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj
  13. 5
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs
  14. 2
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpAuthorizationExceptionHandlerOptions.cs
  15. 4
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultAbpAuthorizationExceptionHandler.cs
  16. 4
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultHttpExceptionStatusCodeFinder.cs
  17. 6
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/AbpSecurityHeadersMiddleware.cs
  18. 2
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/AbpSecurityHeadersOptions.cs
  19. 4
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AbpCorrelationIdMiddleware.cs
  20. 6
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpFileExtensionContentTypeProvider.cs
  21. 2
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/RazorViewEngineVirtualFileProvider.cs
  22. 8
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/WebClientInfo/HttpContextWebClientInfoProvider.cs
  23. 4
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/WebClientInfo/IWebClientInfoProvider.cs
  24. 3
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/ServiceProviderAccessorExtensions.cs

2
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs

@ -82,7 +82,7 @@ public static class AbpApplicationBuilderExtensions
} }
public static IApplicationBuilder UseAbpRequestLocalization(this IApplicationBuilder app, public static IApplicationBuilder UseAbpRequestLocalization(this IApplicationBuilder app,
Action<RequestLocalizationOptions> optionsAction = null) Action<RequestLocalizationOptions>? optionsAction = null)
{ {
app.ApplicationServices app.ApplicationServices
.GetRequiredService<IAbpRequestLocalizationOptionsProvider>() .GetRequiredService<IAbpRequestLocalizationOptionsProvider>()

2
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpAspNetCoreApplicationBuilderExtensions.cs

@ -17,7 +17,7 @@ public static class AbpAspNetCoreApplicationBuilderExtensions
/// <returns></returns> /// <returns></returns>
public static IApplicationBuilder UseConfiguredEndpoints( public static IApplicationBuilder UseConfiguredEndpoints(
this IApplicationBuilder app, this IApplicationBuilder app,
Action<IEndpointRouteBuilder> additionalConfigurationAction = null) Action<IEndpointRouteBuilder>? additionalConfigurationAction = null)
{ {
var options = app.ApplicationServices var options = app.ApplicationServices
.GetRequiredService<IOptions<AbpEndpointRouterOptions>>() .GetRequiredService<IOptions<AbpEndpointRouterOptions>>()

2
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/VirtualFileSystemApplicationBuilderExtensions.cs

@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Builder;
public static class VirtualFileSystemApplicationBuilderExtensions public static class VirtualFileSystemApplicationBuilderExtensions
{ {
[Obsolete("Use UseStaticFiles() instead. UseVirtualFiles is not needed anymore.")] [Obsolete("Use UseStaticFiles() instead. UseVirtualFiles is not needed anymore.")]
public static IApplicationBuilder UseVirtualFiles(this IApplicationBuilder app, Action<StaticFileOptions> configure = null) public static IApplicationBuilder UseVirtualFiles(this IApplicationBuilder app, Action<StaticFileOptions>? configure = null)
{ {
if (configure != null) if (configure != null)
{ {

2
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Hosting/AbpHostingEnvironmentExtensions.cs

@ -7,7 +7,7 @@ public static class AbpHostingEnvironmentExtensions
{ {
public static IConfigurationRoot BuildConfiguration( public static IConfigurationRoot BuildConfiguration(
this IWebHostEnvironment env, this IWebHostEnvironment env,
AbpConfigurationBuilderOptions options = null) AbpConfigurationBuilderOptions? options = null)
{ {
options ??= new AbpConfigurationBuilderOptions(); options ??= new AbpConfigurationBuilderOptions();

4
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Internal/ResponseContentTypeHelper.cs

@ -28,7 +28,7 @@ public static class ResponseContentTypeHelper
string? actionResultContentType, string? actionResultContentType,
string? httpResponseContentType, string? httpResponseContentType,
(string defaultContentType, Encoding defaultEncoding) @default, (string defaultContentType, Encoding defaultEncoding) @default,
Func<string, Encoding> getEncoding, Func<string, Encoding?> getEncoding,
out string resolvedContentType, out string resolvedContentType,
out Encoding resolvedContentTypeEncoding) out Encoding resolvedContentTypeEncoding)
{ {
@ -66,7 +66,7 @@ public static class ResponseContentTypeHelper
resolvedContentTypeEncoding = defaultContentTypeEncoding; resolvedContentTypeEncoding = defaultContentTypeEncoding;
} }
public static Encoding GetEncoding(string mediaType) public static Encoding? GetEncoding(string mediaType)
{ {
if (MediaTypeHeaderValue.TryParse(mediaType, out var parsed)) if (MediaTypeHeaderValue.TryParse(mediaType, out var parsed))
{ {

4
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/AbpRequestLocalizationOptionsManager.cs

@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.RequestLocalization;
public class AbpRequestLocalizationOptionsManager : AbpDynamicOptionsManager<RequestLocalizationOptions> public class AbpRequestLocalizationOptionsManager : AbpDynamicOptionsManager<RequestLocalizationOptions>
{ {
private RequestLocalizationOptions _options; private RequestLocalizationOptions? _options;
private readonly IAbpRequestLocalizationOptionsProvider _abpRequestLocalizationOptionsProvider; private readonly IAbpRequestLocalizationOptionsProvider _abpRequestLocalizationOptionsProvider;
@ -19,7 +19,7 @@ public class AbpRequestLocalizationOptionsManager : AbpDynamicOptionsManager<Req
_abpRequestLocalizationOptionsProvider = abpRequestLocalizationOptionsProvider; _abpRequestLocalizationOptionsProvider = abpRequestLocalizationOptionsProvider;
} }
public override RequestLocalizationOptions Get(string name) public override RequestLocalizationOptions Get(string? name)
{ {
return _options ?? base.Get(name); return _options ?? base.Get(name);
} }

8
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs

@ -19,8 +19,8 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat
{ {
private readonly IServiceScopeFactory _serviceProviderFactory; private readonly IServiceScopeFactory _serviceProviderFactory;
private readonly SemaphoreSlim _syncSemaphore; private readonly SemaphoreSlim _syncSemaphore;
private Action<RequestLocalizationOptions> _optionsAction; private Action<RequestLocalizationOptions>? _optionsAction;
private RequestLocalizationOptions _requestLocalizationOptions; private RequestLocalizationOptions? _requestLocalizationOptions;
public DefaultAbpRequestLocalizationOptionsProvider(IServiceScopeFactory serviceProviderFactory) public DefaultAbpRequestLocalizationOptionsProvider(IServiceScopeFactory serviceProviderFactory)
{ {
@ -28,7 +28,7 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat
_syncSemaphore = new SemaphoreSlim(1, 1); _syncSemaphore = new SemaphoreSlim(1, 1);
} }
public void InitLocalizationOptions(Action<RequestLocalizationOptions> optionsAction = null) public void InitLocalizationOptions(Action<RequestLocalizationOptions>? optionsAction = null)
{ {
_optionsAction = optionsAction; _optionsAction = optionsAction;
} }
@ -85,7 +85,7 @@ public class DefaultAbpRequestLocalizationOptionsProvider : IAbpRequestLocalizat
return _requestLocalizationOptions; return _requestLocalizationOptions;
} }
private static RequestCulture DefaultGetRequestCulture(string defaultLanguage, IReadOnlyList<LanguageInfo> languages) private static RequestCulture DefaultGetRequestCulture(string? defaultLanguage, IReadOnlyList<LanguageInfo> languages)
{ {
if (defaultLanguage == null) if (defaultLanguage == null)
{ {

2
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/IAbpRequestLocalizationOptionsProvider.cs

@ -6,7 +6,7 @@ namespace Microsoft.AspNetCore.RequestLocalization;
public interface IAbpRequestLocalizationOptionsProvider public interface IAbpRequestLocalizationOptionsProvider
{ {
void InitLocalizationOptions(Action<RequestLocalizationOptions> optionsAction = null); void InitLocalizationOptions(Action<RequestLocalizationOptions>? optionsAction = null);
Task<RequestLocalizationOptions> GetLocalizationOptionsAsync(); Task<RequestLocalizationOptions> GetLocalizationOptionsAsync();
} }

2
framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/CookieAuthenticationOptionsExtensions.cs

@ -47,7 +47,7 @@ public static class CookieAuthenticationOptionsExtensions
var response = await openIdConnectOptions.Backchannel.IntrospectTokenAsync(new TokenIntrospectionRequest var response = await openIdConnectOptions.Backchannel.IntrospectTokenAsync(new TokenIntrospectionRequest
{ {
Address = openIdConnectOptions.Configuration?.IntrospectionEndpoint ?? openIdConnectOptions.Authority.EnsureEndsWith('/') + "connect/introspect", Address = openIdConnectOptions.Configuration?.IntrospectionEndpoint ?? openIdConnectOptions.Authority!.EnsureEndsWith('/') + "connect/introspect",
ClientId = openIdConnectOptions.ClientId, ClientId = openIdConnectOptions.ClientId,
ClientSecret = openIdConnectOptions.ClientSecret, ClientSecret = openIdConnectOptions.ClientSecret,
Token = accessToken Token = accessToken

12
framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/EmptyHostingEnvironment.cs

@ -5,15 +5,15 @@ namespace Microsoft.Extensions.DependencyInjection;
internal class EmptyHostingEnvironment : IWebHostEnvironment internal class EmptyHostingEnvironment : IWebHostEnvironment
{ {
public string EnvironmentName { get; set; } public string EnvironmentName { get; set; } = default!;
public string ApplicationName { get; set; } public string ApplicationName { get; set; } = default!;
public string WebRootPath { get; set; } public string WebRootPath { get; set; } = default!;
public IFileProvider WebRootFileProvider { get; set; } public IFileProvider WebRootFileProvider { get; set; } = default!;
public string ContentRootPath { get; set; } public string ContentRootPath { get; set; } = default!;
public IFileProvider ContentRootFileProvider { get; set; } public IFileProvider ContentRootFileProvider { get; set; } = default!;
} }

4
framework/src/Volo.Abp.AspNetCore/Microsoft/Extensions/DependencyInjection/WebApplicationBuilderExtensions.cs

@ -11,7 +11,7 @@ public static class WebApplicationBuilderExtensions
{ {
public static async Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>( public static async Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync<TStartupModule>(
[NotNull] this WebApplicationBuilder builder, [NotNull] this WebApplicationBuilder builder,
[CanBeNull] Action<AbpApplicationCreationOptions> optionsAction = null) Action<AbpApplicationCreationOptions>? optionsAction = null)
where TStartupModule : IAbpModule where TStartupModule : IAbpModule
{ {
return await builder.Services.AddApplicationAsync<TStartupModule>(options => return await builder.Services.AddApplicationAsync<TStartupModule>(options =>
@ -28,7 +28,7 @@ public static class WebApplicationBuilderExtensions
public static async Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync( public static async Task<IAbpApplicationWithExternalServiceProvider> AddApplicationAsync(
[NotNull] this WebApplicationBuilder builder, [NotNull] this WebApplicationBuilder builder,
[NotNull] Type startupModuleType, [NotNull] Type startupModuleType,
[CanBeNull] Action<AbpApplicationCreationOptions> optionsAction = null) Action<AbpApplicationCreationOptions>? optionsAction = null)
{ {
return await builder.Services.AddApplicationAsync(startupModuleType, options => return await builder.Services.AddApplicationAsync(startupModuleType, options =>
{ {

2
framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<AssemblyName>Volo.Abp.AspNetCore</AssemblyName> <AssemblyName>Volo.Abp.AspNetCore</AssemblyName>
<PackageId>Volo.Abp.AspNetCore</PackageId> <PackageId>Volo.Abp.AspNetCore</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>

5
framework/src/Volo.Abp.AspNetCore/Volo/Abp/ApplicationInitializationContextExtensions.cs

@ -12,7 +12,7 @@ public static class ApplicationInitializationContextExtensions
{ {
public static IApplicationBuilder GetApplicationBuilder(this ApplicationInitializationContext context) public static IApplicationBuilder GetApplicationBuilder(this ApplicationInitializationContext context)
{ {
return context.ServiceProvider.GetRequiredService<IObjectAccessor<IApplicationBuilder>>().Value; return context.ServiceProvider.GetRequiredService<IObjectAccessor<IApplicationBuilder>>().Value!;
} }
public static IWebHostEnvironment GetEnvironment(this ApplicationInitializationContext context) public static IWebHostEnvironment GetEnvironment(this ApplicationInitializationContext context)
@ -20,8 +20,7 @@ public static class ApplicationInitializationContextExtensions
return context.ServiceProvider.GetRequiredService<IWebHostEnvironment>(); return context.ServiceProvider.GetRequiredService<IWebHostEnvironment>();
} }
[CanBeNull] public static IWebHostEnvironment? GetEnvironmentOrNull(this ApplicationInitializationContext context)
public static IWebHostEnvironment GetEnvironmentOrNull(this ApplicationInitializationContext context)
{ {
return context.ServiceProvider.GetService<IWebHostEnvironment>(); return context.ServiceProvider.GetService<IWebHostEnvironment>();
} }

2
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/AbpAuthorizationExceptionHandlerOptions.cs

@ -2,5 +2,5 @@
public class AbpAuthorizationExceptionHandlerOptions public class AbpAuthorizationExceptionHandlerOptions
{ {
public string AuthenticationScheme { get; set; } public string? AuthenticationScheme { get; set; }
} }

4
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultAbpAuthorizationExceptionHandler.cs

@ -17,11 +17,11 @@ public class DefaultAbpAuthorizationExceptionHandler : IAbpAuthorizationExceptio
var isAuthenticated = httpContext.User.Identity?.IsAuthenticated ?? false; var isAuthenticated = httpContext.User.Identity?.IsAuthenticated ?? false;
var authenticationSchemeProvider = httpContext.RequestServices.GetRequiredService<IAuthenticationSchemeProvider>(); var authenticationSchemeProvider = httpContext.RequestServices.GetRequiredService<IAuthenticationSchemeProvider>();
AuthenticationScheme scheme = null; AuthenticationScheme? scheme = null;
if (!handlerOptions.AuthenticationScheme.IsNullOrWhiteSpace()) if (!handlerOptions.AuthenticationScheme.IsNullOrWhiteSpace())
{ {
scheme = await authenticationSchemeProvider.GetSchemeAsync(handlerOptions.AuthenticationScheme); scheme = await authenticationSchemeProvider.GetSchemeAsync(handlerOptions.AuthenticationScheme!);
if (scheme == null) if (scheme == null)
{ {
throw new AbpException($"No authentication scheme named {handlerOptions.AuthenticationScheme} was found."); throw new AbpException($"No authentication scheme named {handlerOptions.AuthenticationScheme} was found.");

4
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultHttpExceptionStatusCodeFinder.cs

@ -32,7 +32,7 @@ public class DefaultHttpExceptionStatusCodeFinder : IHttpExceptionStatusCodeFind
if (exception is IHasErrorCode exceptionWithErrorCode && if (exception is IHasErrorCode exceptionWithErrorCode &&
!exceptionWithErrorCode.Code.IsNullOrWhiteSpace()) !exceptionWithErrorCode.Code.IsNullOrWhiteSpace())
{ {
if (Options.ErrorCodeToHttpStatusCodeMappings.TryGetValue(exceptionWithErrorCode.Code, out var status)) if (Options.ErrorCodeToHttpStatusCodeMappings.TryGetValue(exceptionWithErrorCode.Code!, out var status))
{ {
return status; return status;
} }
@ -40,7 +40,7 @@ public class DefaultHttpExceptionStatusCodeFinder : IHttpExceptionStatusCodeFind
if (exception is AbpAuthorizationException) if (exception is AbpAuthorizationException)
{ {
return httpContext.User.Identity.IsAuthenticated return httpContext.User.Identity!.IsAuthenticated
? HttpStatusCode.Forbidden ? HttpStatusCode.Forbidden
: HttpStatusCode.Unauthorized; : HttpStatusCode.Unauthorized;
} }

6
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/AbpSecurityHeadersMiddleware.cs

@ -32,7 +32,7 @@ public class AbpSecurityHeadersMiddleware : IMiddleware, ITransientDependency
AddHeader(context, "X-Frame-Options", "SAMEORIGIN"); AddHeader(context, "X-Frame-Options", "SAMEORIGIN");
var requestAcceptTypeHtml = context.Request.Headers["Accept"].Any(x => var requestAcceptTypeHtml = context.Request.Headers["Accept"].Any(x =>
x.Contains("text/html") || x.Contains("*/*") || x.Contains("application/xhtml+xml")); x!.Contains("text/html") || x.Contains("*/*") || x.Contains("application/xhtml+xml"));
var endpoint = context.GetEndpoint(); var endpoint = context.GetEndpoint();
@ -109,7 +109,7 @@ public class AbpSecurityHeadersMiddleware : IMiddleware, ITransientDependency
protected virtual string BuildContentSecurityPolicyValue(HttpContext context) protected virtual string BuildContentSecurityPolicyValue(HttpContext context)
{ {
var cspValue = Options.Value.ContentSecurityPolicyValue.IsNullOrWhiteSpace() ? DefaultValue : Options.Value.ContentSecurityPolicyValue; var cspValue = Options.Value.ContentSecurityPolicyValue.IsNullOrWhiteSpace() ? DefaultValue : Options.Value.ContentSecurityPolicyValue!;
if (!(Options.Value.UseContentSecurityPolicyScriptNonce && if (!(Options.Value.UseContentSecurityPolicyScriptNonce &&
context.Items.TryGetValue(AbpAspNetCoreConsts.ScriptNonceKey, out var nonce) && context.Items.TryGetValue(AbpAspNetCoreConsts.ScriptNonceKey, out var nonce) &&
nonce is string nonceValue && !string.IsNullOrEmpty(nonceValue))) nonce is string nonceValue && !string.IsNullOrEmpty(nonceValue)))
@ -128,7 +128,7 @@ public class AbpSecurityHeadersMiddleware : IMiddleware, ITransientDependency
} }
var newScriptSrcValue = scriptSrcValue + nonceStr; var newScriptSrcValue = scriptSrcValue + nonceStr;
return Options.Value.ContentSecurityPolicyValue.Replace(scriptSrcValue, newScriptSrcValue); return Options.Value.ContentSecurityPolicyValue!.Replace(scriptSrcValue!, newScriptSrcValue);
} }

2
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/AbpSecurityHeadersOptions.cs

@ -11,7 +11,7 @@ public class AbpSecurityHeadersOptions
public bool UseContentSecurityPolicyScriptNonce { get; set; } public bool UseContentSecurityPolicyScriptNonce { get; set; }
public string ContentSecurityPolicyValue { get; set; } public string? ContentSecurityPolicyValue { get; set; }
public Dictionary<string, string> Headers { get; } public Dictionary<string, string> Headers { get; }

4
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AbpCorrelationIdMiddleware.cs

@ -38,14 +38,14 @@ public class AbpCorrelationIdMiddleware : IMiddleware, ITransientDependency
protected virtual string GetCorrelationIdFromRequest(HttpContext context) protected virtual string GetCorrelationIdFromRequest(HttpContext context)
{ {
string correlationId = context.Request.Headers[_options.HttpHeaderName]; string? correlationId = context.Request.Headers[_options.HttpHeaderName];
if (correlationId.IsNullOrEmpty()) if (correlationId.IsNullOrEmpty())
{ {
correlationId = Guid.NewGuid().ToString("N"); correlationId = Guid.NewGuid().ToString("N");
context.Request.Headers[_options.HttpHeaderName] = correlationId; context.Request.Headers[_options.HttpHeaderName] = correlationId;
} }
return correlationId; return correlationId!;
} }
protected virtual void CheckAndSetCorrelationIdOnResponse( protected virtual void CheckAndSetCorrelationIdOnResponse(

6
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpFileExtensionContentTypeProvider.cs

@ -18,14 +18,14 @@ public class AbpFileExtensionContentTypeProvider : IContentTypeProvider, ITransi
var extension = GetExtension(subpath); var extension = GetExtension(subpath);
if (extension == null) if (extension == null)
{ {
contentType = null; contentType = null!;
return false; return false;
} }
return Options.ContentTypeMaps.TryGetValue(extension, out contentType); return Options.ContentTypeMaps.TryGetValue(extension, out contentType!);
} }
protected virtual string GetExtension(string path) protected virtual string? GetExtension(string path)
{ {
if (string.IsNullOrWhiteSpace(path)) if (string.IsNullOrWhiteSpace(path))
{ {

2
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/RazorViewEngineVirtualFileProvider.cs

@ -16,7 +16,7 @@ public class RazorViewEngineVirtualFileProvider : IFileProvider
{ {
_serviceProviderAccessor = serviceProviderAccessor; _serviceProviderAccessor = serviceProviderAccessor;
_fileProvider = new Lazy<IFileProvider>( _fileProvider = new Lazy<IFileProvider>(
() => serviceProviderAccessor.Value.GetRequiredService<IVirtualFileProvider>(), () => serviceProviderAccessor.Value!.GetRequiredService<IVirtualFileProvider>(),
true true
); );
} }

8
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/WebClientInfo/HttpContextWebClientInfoProvider.cs

@ -18,16 +18,16 @@ public class HttpContextWebClientInfoProvider : IWebClientInfoProvider, ITransie
HttpContextAccessor = httpContextAccessor; HttpContextAccessor = httpContextAccessor;
} }
public string BrowserInfo => GetBrowserInfo(); public string? BrowserInfo => GetBrowserInfo();
public string ClientIpAddress => GetClientIpAddress(); public string? ClientIpAddress => GetClientIpAddress();
protected virtual string GetBrowserInfo() protected virtual string? GetBrowserInfo()
{ {
return HttpContextAccessor.HttpContext?.Request?.Headers?["User-Agent"]; return HttpContextAccessor.HttpContext?.Request?.Headers?["User-Agent"];
} }
protected virtual string GetClientIpAddress() protected virtual string? GetClientIpAddress()
{ {
try try
{ {

4
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/WebClientInfo/IWebClientInfoProvider.cs

@ -2,7 +2,7 @@
public interface IWebClientInfoProvider public interface IWebClientInfoProvider
{ {
string BrowserInfo { get; } string? BrowserInfo { get; }
string ClientIpAddress { get; } string? ClientIpAddress { get; }
} }

3
framework/src/Volo.Abp.AspNetCore/Volo/Abp/ServiceProviderAccessorExtensions.cs

@ -7,8 +7,7 @@ namespace Volo.Abp;
public static class ServiceProviderAccessorExtensions public static class ServiceProviderAccessorExtensions
{ {
[CanBeNull] public static HttpContext? GetHttpContext(this IServiceProviderAccessor serviceProviderAccessor)
public static HttpContext GetHttpContext(this IServiceProviderAccessor serviceProviderAccessor)
{ {
return serviceProviderAccessor.ServiceProvider.GetRequiredService<IHttpContextAccessor>().HttpContext; return serviceProviderAccessor.ServiceProvider.GetRequiredService<IHttpContextAccessor>().HttpContext;
} }

Loading…
Cancel
Save