我们需要动态地在度量单位之间进行转换,而单位.NET似乎是理想的解决方案,但是,它缺少我们需要的一些单位(每分钟加仑)。我知道添加到规范文件并重新创建类是微不足道的,但最好能够简单地使用nuget包。有没有人知道如何在不重新编译Units.NET解决方案的情况下向Units.NET添加单元?
应该注意的是,我们并没有与Units.NET结合,我们只需要能够在任意流量和长度单位之间进行转换。
谢谢!
答案 0 :(得分:0)
您可能会在Units.NET的github issues page上得到更好的回复。在主lib之外添加自定义单元有一个wiki page,但我承认这部分不是很精致,可以使用改进。
Units.NET大致由以下部分组成:
由于单位是自己的类,并且您完全控制自定义单位代码,因此扩展是一个模糊的术语,可归结为3个选项:
对于选项2和3,将自定义单位缩写添加到UnitSystem是在运行时完成的,如下所示:
CultureInfo cultureInfo = CultureInfo.GetCultureInfo("en-US");
UnitSystem unitSystem = UnitSystem.GetCached(cultureInfo);
unitSystem.MapUnitToAbbreviation(FooUnit.Bar, "bar");
Assert.AreEqual("bar", unitSystem.GetDefaultAbbreviation(FooUnit.Bar));
Assert.AreEqual(FooUnit.Bar, unitSystem.Parse<FooUnit>("bar");
请参阅Length.cs中的ToString()和Parse()或任何其他单元类,了解我们如何实现这些。