ThisAssembly.Strings 1.5.0-rc.4

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.
The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package ThisAssembly.Strings --version 1.5.0-rc.4                
NuGet\Install-Package ThisAssembly.Strings -Version 1.5.0-rc.4                
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="1.5.0-rc.4">
  <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.
paket add ThisAssembly.Strings --version 1.5.0-rc.4                
#r "nuget: ThisAssembly.Strings, 1.5.0-rc.4"                
#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.
// Install ThisAssembly.Strings as a Cake Addin
#addin nuget:?package=ThisAssembly.Strings&version=1.5.0-rc.4&prerelease

// Install ThisAssembly.Strings as a Cake Tool
#tool nuget:?package=ThisAssembly.Strings&version=1.5.0-rc.4&prerelease                

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));
        }
    }
}

Set the $(ThisAssemblyNamespace) MSBuild property to set the root namespace of the generated ThisAssembly class. Otherwise, it will be generated in the global namespace.

Sponsors

Clarius Org Kirill Osenkov MFB Technologies, Inc. Stephen Shaw Torutek DRIVE.NET, Inc. Ashley Medway Keith Pickford Thomas Bolon Kori Francis Toni Wenzel Giorgi Dalakishvili Uno Platform Dan Siegel Reuben Swartz Jacob Foshee alternate text is missing from this package README image Eric Johnson Ix Technologies B.V. David JENNI Jonathan Oleg Kyrylchuk Charley Wu Jakob Tikjøb Andersen Seann Alexander Tino Hager Mark Seemann Ken Bonny Simon Cropp agileworks-eu sorahex Zheyu Shen Vezel ChilliCream 4OTC

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. 
.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. > This project uses SponsorLink to attribute sponsor status (direct, indirect or implicit). For IDE usage, sponsor status is required. > IDE-only warnings will be emitted after a grace period otherwise. Learn more at https://github.com/devlooped#sponsorlink.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on ThisAssembly.Strings:

Repository Stars
devlooped/ThisAssembly
Exposes project and assembly level information as constants in the ThisAssembly class using source generators powered by Roslyn.
devlooped/nugetizer
A simple to understand packing model for authoring NuGet packages
Version Downloads Last updated
2.0.8 0 11/8/2024
2.0.7 0 11/8/2024
2.0.6 275 11/1/2024
2.0.5 632 10/9/2024
2.0.4 116 10/8/2024
2.0.3 917 9/30/2024
2.0.2 106 9/30/2024
1.4.3 15,104 1/30/2024
1.4.2 142 1/30/2024
1.4.1 3,580 8/30/2023
1.4.0 894 8/11/2023
1.1.3 1,470 1/10/2023
1.1.2 515 1/10/2023
1.1.1 750 1/6/2023
1.1.1-beta 190 1/6/2023
1.1.0 857 12/31/2022
1.0.10 4,115 10/18/2022
1.0.9 20,249 10/21/2021
1.0.8 6,118 4/29/2021
1.0.7 2,688 3/16/2021
1.0.6 1,106 3/9/2021
1.0.5 1,051 1/30/2021
1.0.4 582 1/27/2021
1.0.3 1,572 12/15/2020
1.0.2 718 12/10/2020
1.0.1 686 12/10/2020
1.0.0 2,650 11/21/2020
1.0.0-rc.1 1,448 10/28/2020
1.0.0-rc 770 10/23/2020
1.0.0-beta 1,090 10/15/2020
1.0.0-alpha.3 374 10/8/2020
1.0.0-alpha.2 255 10/8/2020
1.0.0-alpha.1 267 10/8/2020
1.0.0-alpha 1,060 10/3/2020
0.10.6 862 9/22/2020
0.10.5 623 9/21/2020