From 5a78c1bde86d879b1fbf92a062af972d1e0f8c79 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 5 Sep 2023 17:27:35 +0800 Subject: [PATCH] Enable nullable annotations for Volo.Abp.TextTemplateing.* projects --- .../Volo.Abp.TextTemplating.Razor.csproj | 2 ++ .../Razor/AbpRazorTemplateCSharpCompiler.cs | 2 +- .../DefaultAbpRazorProjectEngineFactory.cs | 2 +- .../Razor/EmptyProjectFileSystem.cs | 2 +- .../Razor/IAbpRazorProjectEngineFactory.cs | 2 +- .../Razor/IRazorTemplatePage.cs | 12 ++++----- .../Razor/NotFoundProjectItem.cs | 2 +- .../Razor/RazorTemplatePageBase.cs | 20 +++++++------- .../Razor/RazorTemplateRenderingEngine.cs | 26 +++++++++---------- .../Volo.Abp.TextTemplating.Scriban.csproj | 2 ++ .../Scriban/ScribanTemplateLocalizer.cs | 2 +- .../Scriban/ScribanTemplateRenderingEngine.cs | 16 ++++++------ .../Volo.Abp.TextTemplating.csproj | 2 ++ 13 files changed, 49 insertions(+), 43 deletions(-) diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj b/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj index 962746bd0a..4242ca9f29 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs index c1dc5005b1..bdc8897ddf 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs @@ -40,7 +40,7 @@ public class AbpRazorTemplateCSharpCompiler : ISingletonDependency .Select(x => MetadataReference.CreateFromFile(x.Location)) .ToImmutableList(); - public virtual Stream CreateAssembly(string code, string assemblyName, List references = null, CSharpCompilationOptions options = null) + public virtual Stream CreateAssembly(string code, string assemblyName, List? references = null, CSharpCompilationOptions? options = null) { var defaultReferences = DefaultReferences.Concat(Options.References); try diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs index d15d70ded6..d17bfaea4f 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs @@ -7,7 +7,7 @@ namespace Volo.Abp.TextTemplating.Razor; public class DefaultAbpRazorProjectEngineFactory : IAbpRazorProjectEngineFactory, ITransientDependency { - public virtual async Task CreateAsync(Action configure = null) + public virtual async Task CreateAsync(Action? configure = null) { return RazorProjectEngine.Create(await CreateRazorConfigurationAsync(), EmptyProjectFileSystem.Empty, configure); } diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs index fd2b90a6b1..8c8d8703dd 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs @@ -21,7 +21,7 @@ internal class EmptyProjectFileSystem : RazorProjectFileSystem return GetItem(path, fileKind: null); } - public override RazorProjectItem GetItem(string path, string fileKind) + public override RazorProjectItem GetItem(string path, string? fileKind) { NormalizeAndEnsureValidPath(path); return new NotFoundProjectItem(string.Empty, path, fileKind); diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs index 969ce762d1..197133ef72 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs @@ -6,5 +6,5 @@ namespace Volo.Abp.TextTemplating.Razor; public interface IAbpRazorProjectEngineFactory { - Task CreateAsync(Action configure = null); + Task CreateAsync(Action? configure = null); } diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs index 78b80941e9..f4b2a17006 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs @@ -8,24 +8,24 @@ namespace Volo.Abp.TextTemplating.Razor; public interface IRazorTemplatePage : IRazorTemplatePage { - TModel Model { get; set; } + TModel? Model { get; set; } } public interface IRazorTemplatePage { IServiceProvider ServiceProvider { get; set; } - IStringLocalizer Localizer { get; set; } + IStringLocalizer? Localizer { get; set; } - HtmlEncoder HtmlEncoder { get; set; } + HtmlEncoder? HtmlEncoder { get; set; } - JavaScriptEncoder JavaScriptEncoder { get; set; } + JavaScriptEncoder? JavaScriptEncoder { get; set; } - UrlEncoder UrlEncoder { get; set; } + UrlEncoder? UrlEncoder { get; set; } Dictionary GlobalContext { get; set; } - string Body { get; set; } + string? Body { get; set; } Task ExecuteAsync(); diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs index 5db2c8f582..2651237d2d 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.TextTemplating.Razor; internal class NotFoundProjectItem : RazorProjectItem { - public NotFoundProjectItem(string basePath, string path, string fileKind) + public NotFoundProjectItem(string basePath, string path, string? fileKind) { BasePath = basePath; FilePath = path; diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs index fd2d2c13e7..a85d9d1480 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs @@ -9,30 +9,30 @@ namespace Volo.Abp.TextTemplating.Razor; public abstract class RazorTemplatePageBase : RazorTemplatePageBase, IRazorTemplatePage { - public TModel Model { get; set; } + public TModel? Model { get; set; } } public abstract class RazorTemplatePageBase : IRazorTemplatePage { - public Dictionary GlobalContext { get; set; } + public Dictionary GlobalContext { get; set; } = default!; - public IServiceProvider ServiceProvider { get; set; } + public IServiceProvider ServiceProvider { get; set; } = default!; - public IStringLocalizer Localizer { get; set; } + public IStringLocalizer? Localizer { get; set; } - public HtmlEncoder HtmlEncoder { get; set; } + public HtmlEncoder? HtmlEncoder { get; set; } - public JavaScriptEncoder JavaScriptEncoder { get; set; } + public JavaScriptEncoder? JavaScriptEncoder { get; set; } - public UrlEncoder UrlEncoder { get; set; } + public UrlEncoder? UrlEncoder { get; set; } - public string Body { get; set; } + public string? Body { get; set; } private readonly StringBuilder _stringBuilder = new StringBuilder(); private AttributeInfo _attributeInfo; - public virtual void WriteLiteral(string literal = null) + public virtual void WriteLiteral(string? literal = null) { if (!literal.IsNullOrEmpty()) { @@ -40,7 +40,7 @@ public abstract class RazorTemplatePageBase : IRazorTemplatePage } } - public virtual void Write(object value = null) + public virtual void Write(object? value = null) { if (value is null) { diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs index 86298f2daf..2384bd8740 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs @@ -34,9 +34,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi public override async Task RenderAsync( [NotNull] string templateName, - [CanBeNull] object model = null, - [CanBeNull] string cultureName = null, - [CanBeNull] Dictionary globalContext = null) + object? model = null, + string? cultureName = null, + Dictionary? globalContext = null) { Check.NotNullOrWhiteSpace(templateName, nameof(templateName)); @@ -70,9 +70,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi protected virtual async Task RenderInternalAsync( string templateName, - string body, + string? body, Dictionary globalContext, - object model = null) + object? model = null) { var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName); @@ -97,9 +97,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi protected virtual async Task RenderSingleTemplateAsync( TemplateDefinition templateDefinition, - string body, + string? body, Dictionary globalContext, - object model = null) + object? model = null) { return await RenderTemplateContentWithRazorAsync( templateDefinition, @@ -111,13 +111,13 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi protected virtual async Task RenderTemplateContentWithRazorAsync( TemplateDefinition templateDefinition, - string body, + string? body, Dictionary globalContext, - object model = null) + object? model = null) { var assembly = await AbpCompiledViewProvider.GetAssemblyAsync(templateDefinition); - var templateType = assembly.GetType(AbpRazorTemplateConsts.TypeName); - var template = (IRazorTemplatePage)Activator.CreateInstance(templateType); + var templateType = assembly.GetType(AbpRazorTemplateConsts.TypeName)!; + var template = (IRazorTemplatePage)Activator.CreateInstance(templateType)!; using (var scope = ServiceScopeFactory.CreateScope()) { @@ -147,11 +147,11 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi } } - private void SetModel(IRazorTemplatePage razorTemplatePage, object model = null) + private void SetModel(IRazorTemplatePage razorTemplatePage, object? model = null) { if (razorTemplatePage is IRazorTemplatePage razorTemplatePageWithModel) { - razorTemplatePageWithModel.Model = (TModel)model; + razorTemplatePageWithModel.Model = (TModel?)model; } } } diff --git a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj index d18d90c8f9..ea1d0f0f8d 100644 --- a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj +++ b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable diff --git a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs index 91af004cf9..6bf32d1a58 100644 --- a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs +++ b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs @@ -44,7 +44,7 @@ public class ScribanTemplateLocalizer : IScriptCustomFunction } var args = arguments.Skip(1).Where(x => x != null && !x.ToString().IsNullOrWhiteSpace()).ToArray(); - return args.Any() ? _localizer[name.ToString(), args] : _localizer[name.ToString()]; + return args.Any() ? _localizer[name.ToString()!, args] : _localizer[name.ToString()!]; } public int RequiredParameterCount => 1; diff --git a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs index a4da669893..7a5ac79592 100644 --- a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs +++ b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs @@ -24,9 +24,9 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran public override async Task RenderAsync( [NotNull] string templateName, - [CanBeNull] object model = null, - [CanBeNull] string cultureName = null, - [CanBeNull] Dictionary globalContext = null) + object? model = null, + string? cultureName = null, + Dictionary? globalContext = null) { Check.NotNullOrWhiteSpace(templateName, nameof(templateName)); @@ -59,7 +59,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran protected virtual async Task RenderInternalAsync( string templateName, Dictionary globalContext, - object model = null) + object? model = null) { var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName); @@ -84,13 +84,13 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran protected virtual async Task RenderSingleTemplateAsync( TemplateDefinition templateDefinition, Dictionary globalContext, - object model = null) + object? model = null) { var rawTemplateContent = await GetContentOrNullAsync(templateDefinition); return await RenderTemplateContentWithScribanAsync( templateDefinition, - rawTemplateContent, + rawTemplateContent!, globalContext, model ); @@ -100,7 +100,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran TemplateDefinition templateDefinition, string templateContent, Dictionary globalContext, - object model = null) + object? model = null) { var context = CreateScribanTemplateContext( templateDefinition, @@ -116,7 +116,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran protected virtual TemplateContext CreateScribanTemplateContext( TemplateDefinition templateDefinition, Dictionary globalContext, - object model = null) + object? model = null) { var context = new TemplateContext(); diff --git a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj index 27907183c0..f8d1d85192 100644 --- a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj +++ b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable