如何在.NET Standard 2.0类库中添加PluralizationServices引用
解决.NET Standard 2.0 中使用PluralizationServices的问题
System.Data.Entity.Design.PluralizationServices原本是.NET Framework专属API,没有内置在.NET Standard 2.0的基础类库中,你可以通过以下两种方式兼容使用:
方案1:使用官方兼容NuGet包(代码改动最小)
- 右键你的.NET Standard 2.0类库项目,打开「管理NuGet程序包」界面,搜索安装
System.Data.Entity.Design.PluralizationServices兼容包,选择支持.NET Standard 2.0的版本即可。 - 安装完成后你原本的代码几乎不需要修改,只需要在文件头部引入对应命名空间:
using System.Data.Entity.Design.PluralizationServices; using System.Globalization;
- 注意:该服务默认仅支持英文区域的单复数转换,你代码中使用的
en-us区域参数是符合要求的,无需调整。
方案2:使用轻量第三方包Pluralize.NET
如果觉得官方包依赖较重,可以选择第三方单复数处理包,用法更简洁:
- 安装NuGet包
Pluralize.NET - 调整代码如下即可实现相同效果:
public static string ValueWithUnit(double value, string unit) { Pluralize.NET.Pluralizer pluralizer = new Pluralize.NET.Pluralizer(); string valuePart = value.ToString("0.##"); string unitPart = value > 1 ? pluralizer.Pluralize(unit) : unit; return $"{valuePart} {unitPart}"; }
两个方案都仅支持英文的单复数转换,如需处理其他语言,需要自行扩展逻辑或选择对应多语言的处理包。
内容的提问来源于stack exchange,提问作者Patee Gutee
相关产品推荐
相关产品推荐

