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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ThisAssembly.Strings" Version="2.1.2">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ThisAssembly.Strings" Version="2.1.2" />
                    
Directory.Packages.props
<PackageReference Include="ThisAssembly.Strings">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ThisAssembly.Strings --version 2.1.2
                    
#r "nuget: ThisAssembly.Strings, 2.1.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ThisAssembly.Strings@2.1.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ThisAssembly.Strings&version=2.1.2
                    
Install as a Cake Addin
#tool nuget:?package=ThisAssembly.Strings&version=2.1.2
                    
Install as a Cake Tool

EULA OSS

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.

alternate text is missing from this package README image

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

Clarius Org MFB Technologies, Inc. DRIVE.NET, Inc. Keith Pickford Thomas Bolon Kori Francis Uno Platform Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson David JENNI Jonathan Charley Wu Ken Bonny Simon Cropp agileworks-eu Zheyu Shen Vezel ChilliCream 4OTC Vincent Limo Jordan S. Jones domischell Justin Wendlandt Adrian Alonso Michael Hagedorn alternate text is missing from this package README image torutek mccaffers

Sponsor this project  

Learn more about GitHub Sponsors

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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 1,192 10/17/2025
2.1.1 282 10/16/2025
2.1.0 302 10/16/2025
2.1.0-rc.1 113 10/16/2025
2.1.0-rc 192 10/16/2025
2.1.0-beta 196 10/16/2025
2.0.14 12,601 4/30/2025
2.0.13 993 4/24/2025
2.0.12 4,160 2/18/2025
2.0.11 1,719 2/8/2025
2.0.10 8,858 11/26/2024
2.0.9 759 11/23/2024
2.0.8 1,581 11/8/2024
2.0.7 597 11/8/2024
2.0.6 864 11/1/2024
2.0.5 1,083 10/9/2024
2.0.4 572 10/8/2024
2.0.3 2,428 9/30/2024
2.0.2 519 9/30/2024
1.4.3 30,573 1/30/2024
1.4.2 257 1/30/2024
1.4.1 3,882 8/30/2023
1.4.0 1,006 8/11/2023
1.1.3 1,618 1/10/2023
1.1.2 662 1/10/2023
1.1.1 938 1/6/2023
1.1.1-beta 337 1/6/2023
1.1.0 999 12/31/2022
1.0.10 5,361 10/18/2022
1.0.9 21,235 10/21/2021
1.0.8 7,158 4/29/2021
1.0.7 2,896 3/16/2021
1.0.6 1,281 3/9/2021
1.0.5 1,239 1/30/2021
1.0.4 749 1/27/2021
1.0.3 1,767 12/15/2020
1.0.2 911 12/10/2020
1.0.1 878 12/10/2020
1.0.0 3,317 11/21/2020
1.0.0-rc.1 1,624 10/28/2020
1.0.0-rc 959 10/23/2020
1.0.0-beta 1,267 10/15/2020
1.0.0-alpha.3 525 10/8/2020
1.0.0-alpha.2 371 10/8/2020
1.0.0-alpha.1 409 10/8/2020
1.0.0-alpha 1,365 10/3/2020
0.10.6 1,045 9/22/2020
0.10.5 824 9/21/2020