For the complete documentation index, see llms.txt. This page is also available as Markdown.

类型别名

TypeAlias 类型别名、泛型类型、可空类型和数组类型解析。

TypeAlias 用于在类型和可读字符串之间转换。它支持内置类型别名、可空类型、数组、泛型类型、程序集简写和嵌套类型。

常见别名

TypeAlias 为常见 CLR 类型提供简短名称,例如:

类型
别名示例

System.Object

object

System.String

string

System.Int32

int32、int

System.Guid

guid

System.DateOnly

date、dateOnly

System.TimeOnly

time、timeOnly

System.TimeSpan

timeSpan

解析类型

来源:framework/Zongsoft.Core/test/Common/TypeAliasTest.cs(节选;上下文见源文件)。

TypeAliasTest.cs
Assert.Same(typeof(void), TypeAlias.Parse("void"));
Assert.Same(typeof(object), TypeAlias.Parse(" object"));
Assert.Same(typeof(object[]), TypeAlias.Parse("object []"));
Assert.Same(typeof(object), TypeAlias.Parse("System.object"));
Assert.Same(typeof(object[]), TypeAlias.Parse("System.object []"));

Assert.Same(typeof(string), TypeAlias.Parse(" string "));
Assert.Same(typeof(string[]), TypeAlias.Parse("string[ ]"));
Assert.Same(typeof(string), TypeAlias.Parse("System.string"));
Assert.Same(typeof(string[]), TypeAlias.Parse("System.string [ ]"));

Assert.Same(typeof(int), TypeAlias.Parse(" int "));
Assert.Same(typeof(int), TypeAlias.Parse("int32"));
Assert.Same(typeof(int), TypeAlias.Parse("System.Int32"));
Assert.Same(typeof(int?), TypeAlias.Parse("int? "));
Assert.Same(typeof(int[]), TypeAlias.Parse("int [ ] "));
Assert.Same(typeof(int?[]), TypeAlias.Parse(" int?[]"));

复杂类型支持泛型和程序集简写。

来源:framework/Zongsoft.Core/test/Common/TypeAliasTest.cs(节选;上下文见源文件)。

@AssemblyName 是程序集名简写,等价于常见的逗号程序集限定形式。

生成别名

来源:framework/Zongsoft.Core/test/Common/TypeAliasTest.cs(节选;上下文见源文件)。

GetAlias(assemblyless: true) 可以省略程序集信息,适合只在当前上下文内展示类型名。

自定义别名

可以通过 TypeAlias.Aliases.Map 注册自定义别名。

自定义映射应通过 TypeAlias.Aliases 的注册契约维护。当前业务案例没有注册自定义类型别名;请结合 TypeAlias 源码 核对映射名称与类型解析范围。

自定义别名适合配置文件、脚本、参数包和数据模型映射中的短类型名。

这里采用框架 TypeAliasTest 中的实际断言,Zongsoft.Tests 类型来自测试项目。不要把测试程序集名复制到论坛的业务类型配置中。

相关资源

最后更新于