尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Humanizer 4 API 参考全览:从命名空间到类型清单的权威导览

发布时间:2026/9/26 7:30:02

资讯中心
01
ARTICLE

Humanizer 4 API 参考全览:从命名空间到类型清单的权威导览

Humanizer 4 API 参考全览:从命名空间到类型清单的权威导览
开发工具【免费下载链接】HumanizerHumanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities项目地址https://gitcode.com/gh_mirrors/hu/Humanizer点击查看免费下载本篇指南围绕 Humanizer 4 官方 API 参考文档website/docs/api/index.md展开系统梳理程序集Humanizer下全部公开类型的组织结构——类、结构体、接口与枚举——并结合仓库源码揭示各类型在实际调用链中的角色。读完本文你将掌握 Humanizer 公开 API 的全貌能根据索引快速定位某个类型或成员的详细说明页并理解Configurator、StringHumanizeExtensions、NumberToWordsExtension等核心类型背后的实现原理。这份 API 参考从何而来Humanizer 的 API 参考页面不是手写的而是由 Humanizer 4 的net10.0引用程序集reference assembly自动生成的。索引页开宗明义地说明Generated from the Humanizer 4net10.0reference assembly.这意味着索引页列出的类型、成员、签名、参数、返回值和 XML 文档注释全部与当前仓库的公开 API 面保持一致你可以按类型名或成员名搜索当前版本或直接浏览下方生成的索引每个类型页面都会列出其签名、成员、参数、返回值和 XML 文档索引页对应一个独立的程序集命名空间清单页 assembly.md其中唯一的命名空间就是Humanizer对应命名空间总览页 Humanizer.md。程序集与命名空间结构整个 API 面集中在单一命名空间Humanizer之下未拆分多个命名空间。全部公开类型分为四大类类型类别数量与代表说明类Classes约 80 个如 StringHumanizeExtensions、Configurator以扩展方法类为主辅以策略实现、注册表与辅助类型结构体Structs1 个ByteSize字节大小的值类型接口Interfaces约 25 个如 IFormatter、ITimeSpanHumanizeStrategy定义本地化、转换与策略扩展点枚举Enums约 17 个如 LetterCasing、TimeUnit描述输出样式、单位与选项的常量集合从源码结构看这些类型与仓库中 src/Humanizer 目录下的源文件一一对应扩展方法类位于根目录策略类位于 DateTimeHumanizeStrategy 与 TimeSpanHumanizeStrategy 子目录注册表类位于 Configuration 子目录。类按功能域拆解字符串处理字符串是人类化Humanize的核心入口索引中的相关类包括StringHumanizeExtensions将 PascalCase、camelCase、下划线字符串、连字符字符串转换为空格分隔、大小写恰当的人类可读文本StringDehumanizeExtensions反人类化将空格分隔文本还原为标识符CasingExtensionsApplyCase方法一键改变句子大小写TruncateExtensions 与 Truncator字符串截断后者是ITruncator的获取入口InflectorExtensions复数化/单数化等词形变换Vocabulary 与 Vocabularies自定义首字母缩略词大小写与复数/单数规则例外目前仅支持单一词汇表Default不支持多词汇表与删除既有规则EnglishArticle移除、追加、前置冠词前缀用于忽略冠词的排序To通过IStringTransformer进行字符串变换的门户TupleizeExtensions整数转命名元组字符串1→single、2→double 等仅 1–10、100、1000 有专属名称其余返回 n-tupleDynamicNumberOfCharactersAndPreserveWordsTruncator按字母/数字计数截断并保留完整单词的特殊截断器。以StringHumanizeExtensions.Humanize为例其源码src/Humanizer/StringHumanizeExtensions.cs揭示了文档中按序应用多条规则的底层实现若整个输入全大写视为首字母缩略词直接返回原值除非命中已注册的缩略词Vocabularies.ApplyAcronyms处理游离的下划线/连字符如some _ string按下划线和连字符拆分FromUnderscoreDashSeparatedWords拆分 PascalCase 与 camelCase 文本FromPascalCaseASCII 路径走TryFromAsciiPascalCase快速通道非 ASCII 走正则PascalCaseWordPartsPattern在 PascalCase/camelCase 输入中把保留为独立词元。文档给出的行为示例可直接验证PascalCaseInputString.Humanize()→Pascal case input stringHTML.Humanize()→HTML注册Vocabularies.Default.AddAcronym(iOS)后IOS.Humanize()→iOS。枚举处理EnumHumanizeExtensions枚举值转人类可读字符串支持DescriptionAttribute、Flags位域枚举的逗号分隔输出EnumDehumanizeExtensions反向映射回枚举值无法匹配时抛出 NoMatchFoundExceptionEnumHumanizeSource指定枚举人类化的数据来源。EnumHumanizeExtensions.HumanizeTsrc/Humanizer/EnumHumanizeExtensions.cs的行为在 API 页中有明确示例UserType.AnonymousUser.Humanize()→Anonymous user带[Flags]的Permission.Read | Permission.Write→Read, Write仅输出非零标志位带[Description(Currently active)]的成员直接返回描述文本。日期与时间DateHumanizeExtensions将DateTime人类化为多久以前/以后的句子[DateTimeOffsetHumanizeExtensions] 对应DateTimeOffset类型索引页中由 DateHumanizeExtensions 与四个策略类共同覆盖TimeSpanHumanizeExtensions 与 TimeSpanDehumanizeExtensions时间段的人类化与解析DateToOrdinalWordsExtensions日期转序数词文本ToOrdinalWordsTimeOnlyToClockNotationExtensionsTimeOnly转钟表记法PrepositionsExtensionsDateTime的空间/时间关系扩展In、On系列四个Default*HumanizeStrategy与四个Precision*HumanizeStrategy类默认时间距离→文字计算器与精度版计算器分别对应DateOnly、DateTime、DateTimeOffset、TimeOnly流畅日期访问器In/InDate/On/OnDate及其按月/按数的子类如 In.Five、On.January全部由 FluentDate 目录下的In.*.cs、On.Days.cs等 T4 模板生成文件实现。数字与数量NumberToWordsExtension数字转本地化单词与序数词输出受文化影响包括en、en-GB、en-IN的英语族差异与地区级大数刻度名NumberToNumberExtensions数字间转换NumberToTimeSpanExtensions数值流畅转TimeSpan如5.Seconds()、3.Hours()、2.Weeks()OrdinalizeExtensions序数化扩展1st、2nd 等ToQuantityExtensions单词按数量格式化RomanNumeralExtensionsToRoman/FromRomanChineseFinancialNumeralExtensions整数转中文财务大写字符MetricNumeralExtensionsToMetric/FromMetric公制表示WordsToNumberExtension 与 WordsToDecimalNumberExtension本地化数字单词解析回数值解析尊重区域继承FractionalizeExtensions小数转常见分数HeadingExtensions表示航向的数字转文字如罗盘方向。NumberToWordsExtension的签名族非常庞大API 页完整列出了每个重载ToWords系列支持int/long、bool addAnd是否在末尾组前加入区域连词、WordForm单词形式如缩写、GrammaticalGender语法性别与可选CultureInfonull表示当前文化。文档中的示例展示了性别与词形的实际效果// 西班牙语序数词 3.ToOrdinalWords(GrammaticalGender.Masculine, WordForm.Normal) // tercero 3.ToOrdinalWords(GrammaticalGender.Masculine, WordForm.Abbreviation) // tercer 3.ToOrdinalWords(GrammaticalGender.Feminine, WordForm.Normal) // tercera // 俄语/希伯来语性别差异 1.ToWords(GrammaticalGender.Masculine) // 俄语 один 1.ToWords(GrammaticalGender.Feminine) // 俄语 одна // 西班牙语以 1 结尾的数字随位置变形 21.ToWords(WordForm.Normal) // veintiuno 21.ToWords(WordForm.Abbreviation) // veintiún另有ToIndianWords(int/long, IndianScaleStyle)NamedScales使用en-IN文化的命名刻度词汇表CroreBased使用常见 crore 表述且不改变其他区域行为。字节与速率ByteSize唯一的结构体字节大小的值类型ByteSizeExtensionsByteSize的扩展方法ByteRate持有ByteSize与测量间隔以计算传输速率ByteSizeUnitSystem显式解析/格式化 API 选择的单位系统。集合CollectionHumanizeExtensions将IEnumerable人类化为可读列表ICollectionFormatter按区域格式化集合的可读列表具体实现位于 Localisation/CollectionFormatters。配置与注册ConfiguratorHumanizer 的全局配置点详见下文专节LocaliserRegistryTLocaliser本地化组件与区域关联的注册表泛型类是Configurator各注册表属性的底层类型PluralizationForms承载一个名词的单复数形式。接口扩展点与契约接口定义了两类扩展能力策略Strategy与转换器/格式化器Converter/Formatter。策略接口全部可挂在Configurator上替换IDateTimeHumanizeStrategy、IDateTimeOffsetHumanizeStrategy、IDateOnlyHumanizeStrategy、ITimeOnlyHumanizeStrategy、ITimeSpanHumanizeStrategy以及支持小数秒的 IFractionalTimeSpanHumanizeStrategy、支持语法格的 IGrammaticalCaseTimeSpanHumanizeStrategy本地化格式化契约IFormatter 本地化数字、日期、时长与单位格式IFractionalTimeSpanFormatter 与 IGrammaticalCaseTimeSpanFormatter 为可选扩展——既有ITimeSpanHumanizeStrategy实现仍可用于既有时长 API但无法服务HumanizeWithCase词形与序数契约IOrdinalizer、ILongOrdinalizer、IDateToOrdinalWordConverter、IDateOnlyToOrdinalWordConverter、ITimeOnlyToClockNotationConverter数字转换契约INumberToWordsConverter数字转区域词、序数、元组名、IWordsToNumberConverter、IWordsToDecimalNumberConverter字符串变换契约IStringTransformer 与带文化参数的 ICulturedStringTransformer截断契约 ITruncator。这些接口的具体区域实现分布于 src/Humanizer/Localisation 下的 NumberToWords40 个文件、WordsToNumber20 个文件、Formatters7 个文件、Ordinalizers7 个文件等子目录并由源码生成器Humanizer.SourceGenerators依据 Locales 下的 YAML 区域数据生成注册表实现 100 区域的无缝本地化。枚举输出样式与选项常量索引中的枚举决定了各类 API 的输出形态枚举用途要点LetterCasing输出字符串的大小写样式AllCaps/LowerCase/Title/Sentence等GrammaticalGender输出词的语法性别俄语、希伯来语、西班牙语等性别语言需要GrammaticalCase期望的语法格WordForm单词形式Normal/AbbreviationPlurality单词单复数提示单数/复数/未知TimeUnit相对时间与时长格式化支持的时间单位配合 TimeUnitToSymbolExtensions 输出符号如Year→ aTense相对时间引用属于过去还是将来TruncateFrom截断位置左侧/右侧ClockNotationRounding钟表记法舍入选项OnNoMatch匹配失败时的处理方式当前用于DehumanizeToShowQuantityAs单词转数量字符串的显示方式DataUnit数据大小格式化支持的数据单位HeadingStyle罗盘方向人类化的样式IndianScaleStyleToIndianWords的大数词汇表选择MetricNumeralFormats公制数字表示的格式化标志位标志EnumHumanizeSource枚举人类化的来源核心类型深读Configurator 全局配置点Configurator 是 Humanizer 的全局配置入口对应源码 src/Humanizer/Configuration/Configurator.cs。其公开成员分为两类注册表属性只读get-only——均为LocaliserRegistryTLocaliser负责按当前区域解析对应实现CollectionFormatters→LocaliserRegistryICollectionFormatterCollectionFormatterRegistryFormatters→LocaliserRegistryIFormatterFormatterRegistryNumberToWordsConverters→LocaliserRegistryINumberToWordsConverterNumberToWordsConverterRegistryOrdinalizers→LocaliserRegistryIOrdinalizerOrdinalizerRegistryDateToOrdinalWordsConverters→LocaliserRegistryIDateToOrdinalWordConverterDateOnlyToOrdinalWordsConverters、TimeOnlyToClockNotationConvertersNET6_0_OR_GREATER条件编译下可用策略属性可读写——每个都带同一组 Remarks该属性应在应用启动期间、任何人类化操作发生之前仅设置一次多线程场景下访问该属性应使用 volatile 读取或适当同步生产应用中应避免在应用开始服务请求后更改DateTimeHumanizeStrategy默认DefaultDateTimeHumanizeStrategyDateTimeOffsetHumanizeStrategy默认DefaultDateTimeOffsetHumanizeStrategyTimeSpanHumanizeStrategy默认DefaultTimeSpanHumanizeStrategyDateOnlyHumanizeStrategy、TimeOnlyHumanizeStrategyNET6_0_OR_GREATER条件编译方法IsCultureSupported(CultureInfo)判断 Humanizer 是否为指定文化包含完整的生成区域支持。注意两点只检查精确文化名清单不沿CultureInfo.Parent向上回溯调用方自建的LocaliserRegistryTLocaliser实例仍保留父文化回退。UseEnumDescriptionPropertyLocator(FuncPropertyInfo, bool)为Enum.Humanize指定描述属性的定位谓词。源码显示默认定位器是p p.Name Description该方法必须在任何Enum.Humanize调用之前调用源码通过enumDescriptionPropertyLocatorHasBeenUsed标志校验否则抛出异常提示移动到应用启动或ModuleInitializer。如何使用本索引定位 API在索引页 website/docs/api/index.md 中按功能域字符串、枚举、日期时间、数字、字节、集合、配置定位类名点击进入对应类型页如 Humanizer.DateHumanizeExtensions.md页面会给出类签名含继承关系、成员清单、每个方法的 C# 签名、参数说明、返回值、示例代码Example节与注意事项Remarks节需要确认底层行为时回到源码扩展方法类在 src/Humanizer 根目录策略与注册表分别在 src/Humanizer/DateTimeHumanizeStrategy、src/Humanizer/TimeSpanHumanizeStrategy、src/Humanizer/Configuration区域实现与 YAML 数据在 src/Humanizer/Localisation 与 src/Humanizer/Locales验证行为可参考测试项目 tests/Humanizer.Tests其中StringHumanizeTests.cs、EnumHumanizeTests.cs、NumberToWordsTests.cs等与索引中的扩展类一一对应。结语Humanizer 4 的 API 参考索引是整个库的地图它用一张类型表完整呈现了字符串、枚举、日期时间、数字、字节、集合与配置七大功能域的全部公开契约。结合仓库源码阅读时索引页的类型摘要、示例与Remarks是理解实现意图的第一手材料——例如Humanize的多规则处理顺序、Configurator的策略替换时机限制、ToWords的性别与词形重载设计。当你需要为 .NET 应用引入 Humanizer 时先浏览这份索引再进入具体类型页即可快速找到并正确使用所需的扩展方法或可扩展接口。赞分享开发工具【免费下载链接】HumanizerHumanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities项目地址https://gitcode.com/gh_mirrors/hu/Humanizer点击查看免费下载相关推荐Humanizer 程序集命名空间全景指南从 2.11.10 API 索引到 v3 命名空间整合Humanizer 程序集命名空间全景指南从 2.11.10 API 索引到 v3 命名空间整合 导读 本文以 Humanizer 仓库中 2.11.10 版开发工具Feast Python SDK API 全景从 FeatureStore 到各类 Provider 的官方 API 参考导览Feast Python SDK API 全景从 FeatureStore 到各类 Provider 的官方 API 参考导览 本文以 sdk/python/MLOps后端数据工程Aspire 组件遥测名称全览日志类别、Activity Source 与指标名权威清单Aspire 组件遥测名称全览日志类别、Activity Source 与指标名权威清单 本指南是 Aspire 开源仓库中 src/Components/T云原生后端微服务可观测性开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。