From 92e690fb28e1aa4521d704a46063bcab17eebc52 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 28 Jun 2023 16:33:59 +0800 Subject: [PATCH] Enable nullable annotations for Volo.Abp.VirtualFileSystem --- .../Extensions/FileProviders/AbpFileInfoExtensions.cs | 2 +- .../Volo.Abp.VirtualFileSystem.csproj | 2 ++ .../VirtualFileSystem/DictionaryBasedFileProvider.cs | 6 +++--- .../Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs | 4 ++-- .../Embedded/AbpEmbeddedFileProvider.cs | 9 ++++----- .../Embedded/EmbeddedResourceFileInfo.cs | 6 +++--- .../Embedded/EmbeddedVirtualFileSetInfo.cs | 4 ++-- .../Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs | 2 +- .../VirtualFileSystem/VirtualFileSetListExtensions.cs | 10 +++++----- 9 files changed, 23 insertions(+), 22 deletions(-) diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs b/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs index 14db7846f3..8ca3c11c42 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Microsoft/Extensions/FileProviders/AbpFileInfoExtensions.cs @@ -84,7 +84,7 @@ public static class AbpFileInfoExtensions } } - public static string GetVirtualOrPhysicalPathOrNull([NotNull] this IFileInfo fileInfo) + public static string? GetVirtualOrPhysicalPathOrNull([NotNull] this IFileInfo fileInfo) { Check.NotNull(fileInfo, nameof(fileInfo)); diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 7e4ade4eca..97698351c7 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.VirtualFileSystem Volo.Abp.VirtualFileSystem $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs index fddf2fec76..cb0786393b 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DictionaryBasedFileProvider.cs @@ -9,11 +9,11 @@ public abstract class DictionaryBasedFileProvider : IFileProvider { protected abstract IDictionary Files { get; } - public virtual IFileInfo GetFileInfo(string subpath) + public virtual IFileInfo GetFileInfo(string? subpath) { if (subpath == null) { - return new NotFoundFileInfo(subpath); + return new NotFoundFileInfo(subpath!); } var file = Files.GetOrDefault(NormalizePath(subpath)); @@ -40,7 +40,7 @@ public abstract class DictionaryBasedFileProvider : IFileProvider foreach (var fileInfo in Files.Values) { var fullPath = fileInfo.GetVirtualOrPhysicalPathOrNull(); - if (!fullPath.StartsWith(directoryPath)) + if (fullPath == null || !fullPath.StartsWith(directoryPath)) { continue; } diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs index c10ca90afe..12e5184a97 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/DynamicFileProvider.cs @@ -32,8 +32,8 @@ public class DynamicFileProvider : DictionaryBasedFileProvider, IDynamicFileProv public void AddOrUpdate(IFileInfo fileInfo) { var filePath = fileInfo.GetVirtualOrPhysicalPathOrNull(); - DynamicFiles.AddOrUpdate(filePath, fileInfo, (key, value) => fileInfo); - ReportChange(filePath); + DynamicFiles.AddOrUpdate(filePath!, fileInfo, (key, value) => fileInfo); + ReportChange(filePath!); } public bool Delete(string filePath) diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs index e147cfc347..9ea816e0eb 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs @@ -13,15 +13,14 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider [NotNull] public Assembly Assembly { get; } - [CanBeNull] - public string BaseNamespace { get; } + public string? BaseNamespace { get; } protected override IDictionary Files => _files.Value; private readonly Lazy> _files; public AbpEmbeddedFileProvider( [NotNull] Assembly assembly, - [CanBeNull] string baseNamespace = null) + string? baseNamespace = null) { Check.NotNull(assembly, nameof(assembly)); @@ -40,7 +39,7 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider foreach (var resourcePath in Assembly.GetManifestResourceNames()) { - if (!BaseNamespace.IsNullOrEmpty() && !resourcePath.StartsWith(BaseNamespace)) + if (!BaseNamespace.IsNullOrEmpty() && !resourcePath.StartsWith(BaseNamespace!)) { continue; } @@ -106,7 +105,7 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider { if (!BaseNamespace.IsNullOrEmpty()) { - resourceName = resourceName.Substring(BaseNamespace.Length + 1); + resourceName = resourceName.Substring(BaseNamespace!.Length + 1); } var pathParts = resourceName.Split('.'); diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs index 8dfc13f66b..33ddb0bec7 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedResourceFileInfo.cs @@ -18,7 +18,7 @@ public class EmbeddedResourceFileInfo : IFileInfo { using (var stream = _assembly.GetManifestResourceStream(_resourcePath)) { - _length = stream.Length; + _length = stream!.Length; } } @@ -27,7 +27,7 @@ public class EmbeddedResourceFileInfo : IFileInfo } private long? _length; - public string PhysicalPath => null; + public string? PhysicalPath => null; public string VirtualPath { get; } @@ -68,7 +68,7 @@ public class EmbeddedResourceFileInfo : IFileInfo _length = stream.Length; } - return stream; + return stream!; } public override string ToString() diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs index 37642fc6fe..3515722b77 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/EmbeddedVirtualFileSetInfo.cs @@ -7,12 +7,12 @@ public class EmbeddedVirtualFileSetInfo : VirtualFileSetInfo { public Assembly Assembly { get; } - public string BaseFolder { get; } + public string? BaseFolder { get; } public EmbeddedVirtualFileSetInfo( IFileProvider fileProvider, Assembly assembly, - string baseFolder = null) + string? baseFolder = null) : base(fileProvider) { Assembly = assembly; diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs index db3932b1ee..f192766aaf 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/InMemoryFileInfo.cs @@ -10,7 +10,7 @@ public class InMemoryFileInfo : IFileInfo public long Length => _fileContent.Length; - public string PhysicalPath => null; + public string? PhysicalPath => null; public string Name { get; } diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs index 3767645861..e25721f00f 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/VirtualFileSetListExtensions.cs @@ -13,8 +13,8 @@ public static class VirtualFileSetListExtensions { public static void AddEmbedded( [NotNull] this VirtualFileSetList list, - [CanBeNull] string baseNamespace = null, - [CanBeNull] string baseFolder = null) + string? baseNamespace = null, + string? baseFolder = null) { Check.NotNull(list, nameof(list)); @@ -42,8 +42,8 @@ public static class VirtualFileSetListExtensions private static IFileProvider CreateFileProvider( [NotNull] Assembly assembly, - [CanBeNull] string baseNamespace = null, - [CanBeNull] string baseFolder = null) + string? baseNamespace = null, + string? baseFolder = null) { Check.NotNull(assembly, nameof(assembly)); @@ -80,7 +80,7 @@ public static class VirtualFileSetListExtensions if (!embeddedVirtualFileSet.BaseFolder.IsNullOrEmpty()) { - thisPath = Path.Combine(thisPath, embeddedVirtualFileSet.BaseFolder); + thisPath = Path.Combine(thisPath, embeddedVirtualFileSet.BaseFolder!); } fileSets[i] = new PhysicalVirtualFileSetInfo(new PhysicalFileProvider(thisPath), thisPath);