Skip to content

Commit 104c67a

Browse files
committed
♻️Replace obsolete method usages with UnitsNetSetup.Default
Replace obsolete static methods for UnitAbbreviations, QuantityParser, UnitParser and UnitConverter, with the new `UnitsNetSetup.Default` static instance. # Conflicts: # UnitsNet.Tests/GeneratedCode/TestsBase/DoseAreaProductTestsBase.g.cs # UnitsNet.Tests/GeneratedCode/TestsBase/ThermalResistanceTestsBase.g.cs # UnitsNet.Tests/GeneratedCode/TestsBase/TorquePerLengthTestsBase.g.cs # UnitsNet/BaseUnits.cs # UnitsNet/GeneratedCode/Quantities/DoseAreaProduct.g.cs # UnitsNet/GeneratedCode/Quantities/ThermalInsulance.g.cs # UnitsNet/GeneratedCode/Quantities/TorquePerLength.g.cs # UnitsNet/QuantityFormatter.cs
1 parent b232de4 commit 104c67a

File tree

265 files changed

+809
-797
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

265 files changed

+809
-797
lines changed

CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ public static string GetAbbreviation({_unitEnumName} unit)
403403
/// <param name=""provider"">Format to use for localization. Defaults to <see cref=""CultureInfo.CurrentCulture"" /> if null.</param>
404404
public static string GetAbbreviation({_unitEnumName} unit, IFormatProvider? provider)
405405
{{
406-
return UnitAbbreviationsCache.Default.GetDefaultAbbreviation(unit, provider);
406+
return UnitsNetSetup.Default.UnitAbbreviations.GetDefaultAbbreviation(unit, provider);
407407
}}
408408
409409
#endregion
@@ -505,7 +505,7 @@ private void GenerateStaticParseMethods()
505505
/// <param name=""provider"">Format to use when parsing number and unit. Defaults to <see cref=""CultureInfo.CurrentCulture"" /> if null.</param>
506506
public static {_quantity.Name} Parse(string str, IFormatProvider? provider)
507507
{{
508-
return QuantityParser.Default.Parse<{_quantity.Name}, {_unitEnumName}>(
508+
return UnitsNetSetup.Default.QuantityParser.Parse<{_quantity.Name}, {_unitEnumName}>(
509509
str,
510510
provider,
511511
From);
@@ -536,7 +536,7 @@ public static bool TryParse([NotNullWhen(true)]string? str, out {_quantity.Name}
536536
/// <param name=""provider"">Format to use when parsing number and unit. Defaults to <see cref=""CultureInfo.CurrentCulture"" /> if null.</param>
537537
public static bool TryParse([NotNullWhen(true)]string? str, IFormatProvider? provider, out {_quantity.Name} result)
538538
{{
539-
return QuantityParser.Default.TryParse<{_quantity.Name}, {_unitEnumName}>(
539+
return UnitsNetSetup.Default.QuantityParser.TryParse<{_quantity.Name}, {_unitEnumName}>(
540540
str,
541541
provider,
542542
From,
@@ -569,7 +569,7 @@ public static bool TryParse([NotNullWhen(true)]string? str, IFormatProvider? pro
569569
/// <exception cref=""UnitsNetException"">Error parsing string.</exception>
570570
public static {_unitEnumName} ParseUnit(string str, IFormatProvider? provider)
571571
{{
572-
return UnitParser.Default.Parse<{_unitEnumName}>(str, provider);
572+
return UnitsNetSetup.Default.UnitParser.Parse<{_unitEnumName}>(str, provider);
573573
}}
574574
575575
/// <inheritdoc cref=""TryParseUnit(string,IFormatProvider,out UnitsNet.Units.{_unitEnumName})""/>
@@ -590,7 +590,7 @@ public static bool TryParseUnit([NotNullWhen(true)]string? str, out {_unitEnumNa
590590
/// <param name=""provider"">Format to use when parsing number and unit. Defaults to <see cref=""CultureInfo.CurrentCulture"" /> if null.</param>
591591
public static bool TryParseUnit([NotNullWhen(true)]string? str, IFormatProvider? provider, out {_unitEnumName} unit)
592592
{{
593-
return UnitParser.Default.TryParse<{_unitEnumName}>(str, provider, out unit);
593+
return UnitsNetSetup.Default.UnitParser.TryParse<{_unitEnumName}>(str, provider, out unit);
594594
}}
595595
596596
#endregion

CodeGen/Generators/UnitsNetGen/StaticQuantityGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public static bool TryParse(IFormatProvider? formatProvider, Type quantityType,
107107
if (!typeof(IQuantity).IsAssignableFrom(quantityType))
108108
return false;
109109
110-
var parser = QuantityParser.Default;
110+
var parser = UnitsNetSetup.Default.QuantityParser;
111111
112112
return quantityType switch
113113
{");

CodeGen/Generators/UnitsNetGen/UnitTestBaseClassGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,7 +809,7 @@ public void HasAtLeastOneAbbreviationSpecified()
809809
var units = Enum.GetValues(typeof({_unitEnumName})).Cast<{_unitEnumName}>();
810810
foreach (var unit in units)
811811
{{
812-
var defaultAbbreviation = UnitAbbreviationsCache.Default.GetDefaultAbbreviation(unit);
812+
var defaultAbbreviation = UnitsNetSetup.Default.UnitAbbreviations.GetDefaultAbbreviation(unit);
813813
}}
814814
}}
815815

README.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,9 @@ if (Quantity.TryParse(typeof(Length), "3cm", out IQuantity quantity2)
230230
[UnitParser](UnitsNet/CustomCode/UnitParser.cs) parses unit abbreviation strings to unit enum values.
231231

232232
```c#
233-
Enum unit = UnitParser.Default.Parse("cm", typeof(LengthUnit)); // LengthUnit.Centimeter
233+
Enum unit = UnitsNetSetup.Default.UnitParser.Parse("cm", typeof(LengthUnit)); // LengthUnit.Centimeter
234234
235-
if (UnitParser.Default.TryParse("cm", typeof(LengthUnit), out Enum unit2))
235+
if (UnitsNetSetup.Default.UnitParser.TryParse("cm", typeof(LengthUnit), out Enum unit2))
236236
{
237237
// Use unit2 as LengthUnit.Centimeter
238238
}
@@ -277,14 +277,16 @@ Read more at [Extending-with-Custom-Units](https://github.com/angularsen/UnitsNe
277277
#### Map between unit enum values and unit abbreviations
278278
```c#
279279
// Map unit enum values to unit abbreviations
280-
UnitAbbreviationsCache.Default.MapUnitToDefaultAbbreviation(HowMuchUnit.Some, "sm");
281-
UnitAbbreviationsCache.Default.GetDefaultAbbreviation(HowMuchUnit.Some); // "sm"
282-
UnitParser.Default.Parse<HowMuchUnit>("sm"); // HowMuchUnit.Some
280+
var unitAbbreviations = UnitsNetSetup.Default.UnitAbbreviations;
281+
unitAbbreviations.MapUnitToDefaultAbbreviation(HowMuchUnit.Some, "sm");
282+
unitAbbreviations.GetDefaultAbbreviation(HowMuchUnit.Some); // "sm"
283+
284+
UnitsNetSetup.Default.UnitParser.Parse<HowMuchUnit>("sm"); // HowMuchUnit.Some
283285
```
284286

285287
#### Convert between units of custom quantity
286288
```c#
287-
var unitConverter = UnitConverter.Default;
289+
var unitConverter = UnitsNetSetup.Default.UnitConverter;
288290
unitConverter.SetConversionFunction<HowMuch>(HowMuchUnit.Lots, HowMuchUnit.Some, x => new HowMuch(x.Value * 2, HowMuchUnit.Some));
289291
unitConverter.SetConversionFunction<HowMuch>(HowMuchUnit.Tons, HowMuchUnit.Lots, x => new HowMuch(x.Value * 10, HowMuchUnit.Lots));
290292
unitConverter.SetConversionFunction<HowMuch>(HowMuchUnit.Tons, HowMuchUnit.Some, x => new HowMuch(x.Value * 20, HowMuchUnit.Some));
@@ -299,23 +301,32 @@ Console.WriteLine(Convert(HowMuchUnit.Tons)); // 10 tns
299301
```
300302

301303
#### Parse custom quantity
302-
[QuantityParser](UnitsNet/CustomCode/QuantityParser.cs) parses quantity strings to `IQuantity` by providing a `UnitAbbreviationsCache` with custom units and unit abbreviations.
304+
[QuantityParser](UnitsNet/CustomCode/QuantityParser.cs) parses quantity strings to `IQuantity` by mapping custom units to unit abbreviations in `UnitAbbreviationsCache`.
303305

304306
```c#
305-
// Alternatively, manipulate the global UnitAbbreviationsCache.Default.
306-
var unitAbbreviationsCache = new UnitAbbreviationsCache();
307+
// Map custom units to abbreviations
308+
var unitAbbreviationsCache = UnitsNetSetup.Default.UnitAbbreviations;
307309
unitAbbreviationsCache.MapUnitToAbbreviation(HowMuchUnit.Some, "sm");
308310
unitAbbreviationsCache.MapUnitToAbbreviation(HowMuchUnit.ATon, "tn");
309311

310-
var quantityParser = new QuantityParser(unitAbbreviationsCache);
312+
var quantityParser = UnitsNetSetup.Default.QuantityParser;
311313

312-
// 1 Some
314+
// "1 sm" => new HowMuch(1, HowMuchUnit.Some)
313315
HowMuch q = quantityParser.Parse<HowMuch, HowMuchUnit>(
314316
str: "1 sm",
315317
formatProvider: null,
316318
fromDelegate: (value, unit) => new HowMuch((double) value, unit));
317319
```
318320

321+
```c#
322+
// Alternatively, create your own instances to not change the global singleton instances.
323+
var unitAbbreviationsCache = UnitAbbreviationsCache.CreateDefault(); // or .CreateEmpty()
324+
unitAbbreviationsCache.MapUnitToAbbreviation(HowMuchUnit.Some, "sm");
325+
unitAbbreviationsCache.MapUnitToAbbreviation(HowMuchUnit.ATon, "tn");
326+
327+
var quantityParser = new QuantityParser(unitAbbreviationsCache);
328+
```
329+
319330

320331
### Example: Unit converter app
321332
[Source code](https://github.com/angularsen/UnitsNet/tree/master/Samples/UnitConverter.Wpf) for `Samples/UnitConverter.Wpf`<br/>

UnitsNet.Tests/GeneratedCode/TestsBase/AbsorbedDoseOfIonizingRadiationTestsBase.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.Tests/GeneratedCode/TestsBase/AccelerationTestsBase.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.Tests/GeneratedCode/TestsBase/AmountOfSubstanceTestsBase.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.Tests/GeneratedCode/TestsBase/AmplitudeRatioTestsBase.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.Tests/GeneratedCode/TestsBase/AngleTestsBase.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.Tests/GeneratedCode/TestsBase/ApparentEnergyTestsBase.g.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)