ThisAssembly.Strings
2.1.2
Prefix Reserved
dotnet add package ThisAssembly.Strings --version 2.1.2
NuGet\Install-Package ThisAssembly.Strings -Version 2.1.2
<PackageReference Include="ThisAssembly.Strings" Version="2.1.2"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="ThisAssembly.Strings" Version="2.1.2" />
<PackageReference Include="ThisAssembly.Strings"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add ThisAssembly.Strings --version 2.1.2
#r "nuget: ThisAssembly.Strings, 2.1.2"
#:package ThisAssembly.Strings@2.1.2
#addin nuget:?package=ThisAssembly.Strings&version=2.1.2
#tool nuget:?package=ThisAssembly.Strings&version=2.1.2
This package generates a static ThisAssembly.Strings
class with public
constants exposing string resources in .resx files or methods with the right number of
parameters for strings that use formatting parameters.
In addition, it groups constants and methods in nested classes according to an optional underscore separator to organize strings. For example, User_InvalidCredentials can be accessed with ThisAssembly.Strings.User.InvalidCredentials if it contains a simple string, or as a method with the right number of parametres if its value has a format string.
Given the following Resx file:
Name | Value | Comment |
---|---|---|
Infrastructure_MissingService | Service {0} is required. | For logging only! |
Shopping_NoShipping | We cannot ship {0} to {1}. | |
Shopping_OutOfStock | Product is out of stock at this time. | |
Shopping_AvailableOn | Product available on {date:yyyy-MM}. |
The following code would be generated:
partial class ThisAssembly
{
public static partial class Strings
{
public static partial class Infrastructure
{
/// <summary>
/// For logging only!
/// => "Service {0} is required."
/// </summary>
public static string MissingService(object arg0)
=> string.Format(CultureInfo.CurrentCulture,
Strings.GetResourceManager("ThisStore.Properties.Resources").GetString("MissingService"),
arg0);
}
public static partial class Shopping
{
/// <summary>
/// => "We cannot ship {0} to {1}."
/// </summary>
public static string NoShipping(object arg0, object arg1)
=> string.Format(CultureInfo.CurrentCulture,
Strings.GetResourceManager("ThisStore.Properties.Resources").GetString("NoShipping"),
arg0, arg1);
/// <summary>
/// => "Product is out of stock at this time."
/// </summary>
public static string OutOfStock
=> Strings.GetResourceManager("ThisStore.Properties.Resources").GetString("OutOfStock");
/// <summary>
/// Product available on {date:yyyy-MM}.
/// </summary>
public static string AvailableOn(object date)
=> string.Format(CultureInfo.CurrentCulture,
Strings.GetResourceManager("ThisAssemblyTests.Resources").GetString("WithNamedFormat").Replace("{date:yyyy-MM}", "{0}"),
((IFormattable)date).ToString("yyyy-MM", CultureInfo.CurrentCulture));
}
}
}
Customizing the generated code
The following MSBuild properties can be used to customize the generated code:
Property | Description |
---|---|
ThisAssemblyNamespace | Sets the namespace of the generated ThisAssembly root class. If not set, it will be in the global namespace. |
ThisAssemblyVisibility | Sets the visibility modifier of the generated ThisAssembly root class. If not set, it will be internal. |
Open Source Maintenance Fee
To ensure the long-term sustainability of this project, users of this package who generate revenue must pay an Open Source Maintenance Fee. While the source code is freely available under the terms of the License, this package and other aspects of the project require adherence to the Maintenance Fee.
To pay the Maintenance Fee, become a Sponsor at the proper OSMF tier. A single fee covers all of Devlooped packages.
Sponsors
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.7.0)
- System.Threading.Tasks.Extensions (>= 4.6.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ThisAssembly.Strings:
Package | Downloads |
---|---|
ThisAssembly
Meta-package that includes all ThisAssembly.* packages. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on ThisAssembly.Strings:
Repository | Stars |
---|---|
devlooped/nugetizer
A simple to understand packing model for authoring NuGet packages
|
Version | Downloads | Last Updated |
---|---|---|
2.1.2 | 241 | 10/17/2025 |
2.1.1 | 160 | 10/16/2025 |
2.1.0 | 190 | 10/16/2025 |
2.1.0-rc.1 | 103 | 10/16/2025 |
2.1.0-rc | 114 | 10/16/2025 |
2.1.0-beta | 117 | 10/16/2025 |
2.0.14 | 10,975 | 4/30/2025 |
2.0.13 | 980 | 4/24/2025 |
2.0.12 | 4,123 | 2/18/2025 |
2.0.11 | 1,640 | 2/8/2025 |
2.0.10 | 8,549 | 11/26/2024 |
2.0.9 | 750 | 11/23/2024 |
2.0.8 | 1,566 | 11/8/2024 |
2.0.7 | 584 | 11/8/2024 |
2.0.6 | 847 | 11/1/2024 |
2.0.5 | 1,068 | 10/9/2024 |
2.0.4 | 563 | 10/8/2024 |
2.0.3 | 2,420 | 9/30/2024 |
2.0.2 | 512 | 9/30/2024 |
1.4.3 | 30,282 | 1/30/2024 |
1.4.2 | 248 | 1/30/2024 |
1.4.1 | 3,872 | 8/30/2023 |
1.4.0 | 998 | 8/11/2023 |
1.1.3 | 1,605 | 1/10/2023 |
1.1.2 | 648 | 1/10/2023 |
1.1.1 | 928 | 1/6/2023 |
1.1.1-beta | 324 | 1/6/2023 |
1.1.0 | 986 | 12/31/2022 |
1.0.10 | 5,240 | 10/18/2022 |
1.0.9 | 21,197 | 10/21/2021 |
1.0.8 | 7,042 | 4/29/2021 |
1.0.7 | 2,876 | 3/16/2021 |
1.0.6 | 1,266 | 3/9/2021 |
1.0.5 | 1,223 | 1/30/2021 |
1.0.4 | 735 | 1/27/2021 |
1.0.3 | 1,743 | 12/15/2020 |
1.0.2 | 895 | 12/10/2020 |
1.0.1 | 859 | 12/10/2020 |
1.0.0 | 3,225 | 11/21/2020 |
1.0.0-rc.1 | 1,605 | 10/28/2020 |
1.0.0-rc | 943 | 10/23/2020 |
1.0.0-beta | 1,253 | 10/15/2020 |
1.0.0-alpha.3 | 510 | 10/8/2020 |
1.0.0-alpha.2 | 358 | 10/8/2020 |
1.0.0-alpha.1 | 391 | 10/8/2020 |
1.0.0-alpha | 1,334 | 10/3/2020 |
0.10.6 | 1,028 | 9/22/2020 |
0.10.5 | 805 | 9/21/2020 |