ThisAssembly.Strings 2.1.0-rc.1

Prefix Reserved
This is a prerelease version of ThisAssembly.Strings.
There is a newer version of this package available.
See the version list below for details.
dotnet add package ThisAssembly.Strings --version 2.1.0-rc.1
                    
NuGet\Install-Package ThisAssembly.Strings -Version 2.1.0-rc.1
                    
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.0-rc.1">
  <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.0-rc.1" />
                    
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.0-rc.1
                    
#r "nuget: ThisAssembly.Strings, 2.1.0-rc.1"
                    
#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.0-rc.1
                    
#: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.0-rc.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ThisAssembly.Strings&version=2.1.0-rc.1&prerelease
                    
Install as a Cake Tool

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 corresponding OSMF tier (starting at just $10!). 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 447 10/17/2025
2.1.1 250 10/16/2025
2.1.0 270 10/16/2025
2.1.0-rc.1 105 10/16/2025
2.1.0-rc 185 10/16/2025
2.1.0-beta 189 10/16/2025
2.0.14 11,193 4/30/2025
2.0.13 984 4/24/2025
2.0.12 4,130 2/18/2025
2.0.11 1,654 2/8/2025
2.0.10 8,577 11/26/2024
2.0.9 754 11/23/2024
2.0.8 1,570 11/8/2024
2.0.7 587 11/8/2024
2.0.6 853 11/1/2024
2.0.5 1,071 10/9/2024
2.0.4 567 10/8/2024
2.0.3 2,423 9/30/2024
2.0.2 514 9/30/2024
1.4.3 30,349 1/30/2024
1.4.2 251 1/30/2024
1.4.1 3,874 8/30/2023
1.4.0 1,001 8/11/2023
1.1.3 1,609 1/10/2023
1.1.2 651 1/10/2023
1.1.1 932 1/6/2023
1.1.1-beta 329 1/6/2023
1.1.0 991 12/31/2022
1.0.10 5,285 10/18/2022
1.0.9 21,205 10/21/2021
1.0.8 7,068 4/29/2021
1.0.7 2,881 3/16/2021
1.0.6 1,270 3/9/2021
1.0.5 1,228 1/30/2021
1.0.4 740 1/27/2021
1.0.3 1,750 12/15/2020
1.0.2 902 12/10/2020
1.0.1 862 12/10/2020
1.0.0 3,239 11/21/2020
1.0.0-rc.1 1,612 10/28/2020
1.0.0-rc 949 10/23/2020
1.0.0-beta 1,256 10/15/2020
1.0.0-alpha.3 515 10/8/2020
1.0.0-alpha.2 361 10/8/2020
1.0.0-alpha.1 398 10/8/2020
1.0.0-alpha 1,343 10/3/2020
0.10.6 1,032 9/22/2020
0.10.5 812 9/21/2020