Browse Source

Enable nullable annotations for Volo.Abp.TextTemplateing.* projects

pull/17561/head
liangshiwei 3 years ago
parent
commit
5a78c1bde8
  1. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj
  2. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/AbpRazorTemplateCSharpCompiler.cs
  3. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/DefaultAbpRazorProjectEngineFactory.cs
  4. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/EmptyProjectFileSystem.cs
  5. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs
  6. 12
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs
  7. 2
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/NotFoundProjectItem.cs
  8. 20
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplatePageBase.cs
  9. 26
      framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/RazorTemplateRenderingEngine.cs
  10. 2
      framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj
  11. 2
      framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateLocalizer.cs
  12. 16
      framework/src/Volo.Abp.TextTemplating.Scriban/Volo/Abp/TextTemplating/Scriban/ScribanTemplateRenderingEngine.cs
  13. 2
      framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
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)) .Select(x => MetadataReference.CreateFromFile(x.Location))
.ToImmutableList(); .ToImmutableList();
public virtual Stream CreateAssembly(string code, string assemblyName, List<MetadataReference> references = null, CSharpCompilationOptions options = null) public virtual Stream CreateAssembly(string code, string assemblyName, List<MetadataReference>? references = null, CSharpCompilationOptions? options = null)
{ {
var defaultReferences = DefaultReferences.Concat(Options.References); var defaultReferences = DefaultReferences.Concat(Options.References);
try try

2
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 class DefaultAbpRazorProjectEngineFactory : IAbpRazorProjectEngineFactory, ITransientDependency
{ {
public virtual async Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder> configure = null) public virtual async Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder>? configure = null)
{ {
return RazorProjectEngine.Create(await CreateRazorConfigurationAsync(), EmptyProjectFileSystem.Empty, configure); return RazorProjectEngine.Create(await CreateRazorConfigurationAsync(), EmptyProjectFileSystem.Empty, configure);
} }

2
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); return GetItem(path, fileKind: null);
} }
public override RazorProjectItem GetItem(string path, string fileKind) public override RazorProjectItem GetItem(string path, string? fileKind)
{ {
NormalizeAndEnsureValidPath(path); NormalizeAndEnsureValidPath(path);
return new NotFoundProjectItem(string.Empty, path, fileKind); return new NotFoundProjectItem(string.Empty, path, fileKind);

2
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IAbpRazorProjectEngineFactory.cs

@ -6,5 +6,5 @@ namespace Volo.Abp.TextTemplating.Razor;
public interface IAbpRazorProjectEngineFactory public interface IAbpRazorProjectEngineFactory
{ {
Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder> configure = null); Task<RazorProjectEngine> CreateAsync(Action<RazorProjectEngineBuilder>? configure = null);
} }

12
framework/src/Volo.Abp.TextTemplating.Razor/Volo/Abp/TextTemplating/Razor/IRazorTemplatePage.cs

@ -8,24 +8,24 @@ namespace Volo.Abp.TextTemplating.Razor;
public interface IRazorTemplatePage<TModel> : IRazorTemplatePage public interface IRazorTemplatePage<TModel> : IRazorTemplatePage
{ {
TModel Model { get; set; } TModel? Model { get; set; }
} }
public interface IRazorTemplatePage public interface IRazorTemplatePage
{ {
IServiceProvider ServiceProvider { get; set; } 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<string, object> GlobalContext { get; set; } Dictionary<string, object> GlobalContext { get; set; }
string Body { get; set; } string? Body { get; set; }
Task ExecuteAsync(); Task ExecuteAsync();

2
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 internal class NotFoundProjectItem : RazorProjectItem
{ {
public NotFoundProjectItem(string basePath, string path, string fileKind) public NotFoundProjectItem(string basePath, string path, string? fileKind)
{ {
BasePath = basePath; BasePath = basePath;
FilePath = path; FilePath = path;

20
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<TModel> : RazorTemplatePageBase, IRazorTemplatePage<TModel> public abstract class RazorTemplatePageBase<TModel> : RazorTemplatePageBase, IRazorTemplatePage<TModel>
{ {
public TModel Model { get; set; } public TModel? Model { get; set; }
} }
public abstract class RazorTemplatePageBase : IRazorTemplatePage public abstract class RazorTemplatePageBase : IRazorTemplatePage
{ {
public Dictionary<string, object> GlobalContext { get; set; } public Dictionary<string, object> 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 readonly StringBuilder _stringBuilder = new StringBuilder();
private AttributeInfo _attributeInfo; private AttributeInfo _attributeInfo;
public virtual void WriteLiteral(string literal = null) public virtual void WriteLiteral(string? literal = null)
{ {
if (!literal.IsNullOrEmpty()) 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) if (value is null)
{ {

26
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<string> RenderAsync( public override async Task<string> RenderAsync(
[NotNull] string templateName, [NotNull] string templateName,
[CanBeNull] object model = null, object? model = null,
[CanBeNull] string cultureName = null, string? cultureName = null,
[CanBeNull] Dictionary<string, object> globalContext = null) Dictionary<string, object>? globalContext = null)
{ {
Check.NotNullOrWhiteSpace(templateName, nameof(templateName)); Check.NotNullOrWhiteSpace(templateName, nameof(templateName));
@ -70,9 +70,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
protected virtual async Task<string> RenderInternalAsync( protected virtual async Task<string> RenderInternalAsync(
string templateName, string templateName,
string body, string? body,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName); var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName);
@ -97,9 +97,9 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
protected virtual async Task<string> RenderSingleTemplateAsync( protected virtual async Task<string> RenderSingleTemplateAsync(
TemplateDefinition templateDefinition, TemplateDefinition templateDefinition,
string body, string? body,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
return await RenderTemplateContentWithRazorAsync( return await RenderTemplateContentWithRazorAsync(
templateDefinition, templateDefinition,
@ -111,13 +111,13 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
protected virtual async Task<string> RenderTemplateContentWithRazorAsync( protected virtual async Task<string> RenderTemplateContentWithRazorAsync(
TemplateDefinition templateDefinition, TemplateDefinition templateDefinition,
string body, string? body,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
var assembly = await AbpCompiledViewProvider.GetAssemblyAsync(templateDefinition); var assembly = await AbpCompiledViewProvider.GetAssemblyAsync(templateDefinition);
var templateType = assembly.GetType(AbpRazorTemplateConsts.TypeName); var templateType = assembly.GetType(AbpRazorTemplateConsts.TypeName)!;
var template = (IRazorTemplatePage)Activator.CreateInstance(templateType); var template = (IRazorTemplatePage)Activator.CreateInstance(templateType)!;
using (var scope = ServiceScopeFactory.CreateScope()) using (var scope = ServiceScopeFactory.CreateScope())
{ {
@ -147,11 +147,11 @@ public class RazorTemplateRenderingEngine : TemplateRenderingEngineBase, ITransi
} }
} }
private void SetModel<TModel>(IRazorTemplatePage razorTemplatePage, object model = null) private void SetModel<TModel>(IRazorTemplatePage razorTemplatePage, object? model = null)
{ {
if (razorTemplatePage is IRazorTemplatePage<TModel> razorTemplatePageWithModel) if (razorTemplatePage is IRazorTemplatePage<TModel> razorTemplatePageWithModel)
{ {
razorTemplatePageWithModel.Model = (TModel)model; razorTemplatePageWithModel.Model = (TModel?)model;
} }
} }
} }

2
framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

2
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(); 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; public int RequiredParameterCount => 1;

16
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<string> RenderAsync( public override async Task<string> RenderAsync(
[NotNull] string templateName, [NotNull] string templateName,
[CanBeNull] object model = null, object? model = null,
[CanBeNull] string cultureName = null, string? cultureName = null,
[CanBeNull] Dictionary<string, object> globalContext = null) Dictionary<string, object>? globalContext = null)
{ {
Check.NotNullOrWhiteSpace(templateName, nameof(templateName)); Check.NotNullOrWhiteSpace(templateName, nameof(templateName));
@ -59,7 +59,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
protected virtual async Task<string> RenderInternalAsync( protected virtual async Task<string> RenderInternalAsync(
string templateName, string templateName,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName); var templateDefinition = await TemplateDefinitionManager.GetAsync(templateName);
@ -84,13 +84,13 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
protected virtual async Task<string> RenderSingleTemplateAsync( protected virtual async Task<string> RenderSingleTemplateAsync(
TemplateDefinition templateDefinition, TemplateDefinition templateDefinition,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
var rawTemplateContent = await GetContentOrNullAsync(templateDefinition); var rawTemplateContent = await GetContentOrNullAsync(templateDefinition);
return await RenderTemplateContentWithScribanAsync( return await RenderTemplateContentWithScribanAsync(
templateDefinition, templateDefinition,
rawTemplateContent, rawTemplateContent!,
globalContext, globalContext,
model model
); );
@ -100,7 +100,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
TemplateDefinition templateDefinition, TemplateDefinition templateDefinition,
string templateContent, string templateContent,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
var context = CreateScribanTemplateContext( var context = CreateScribanTemplateContext(
templateDefinition, templateDefinition,
@ -116,7 +116,7 @@ public class ScribanTemplateRenderingEngine : TemplateRenderingEngineBase, ITran
protected virtual TemplateContext CreateScribanTemplateContext( protected virtual TemplateContext CreateScribanTemplateContext(
TemplateDefinition templateDefinition, TemplateDefinition templateDefinition,
Dictionary<string, object> globalContext, Dictionary<string, object> globalContext,
object model = null) object? model = null)
{ {
var context = new TemplateContext(); var context = new TemplateContext();

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

@ -5,6 +5,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> <TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks>
<Nullable>enable</Nullable>
<WarningsAsErrors>Nullable</WarningsAsErrors>
<RootNamespace /> <RootNamespace />
</PropertyGroup> </PropertyGroup>

Loading…
Cancel
Save