A source code only package which allows you to use C# 9's init and record features in older target frameworks like .NET Standard 2.0 or the "old" .NET Framework by providing a polyfill for the IsExternalInit class.
This package does not contain any compiled binaries, but instead adds the IsExternalInit class as C# source code to your project. Because this code is compiled together with the rest of your code, the built binaries will not have a dependency on this package, meaning that you can perfectly use it for both libraries and applications.
The C# code is only included if you are targeting a framework version which does not support the IsExternalInit class. For example, if you create a library which multi-targets .NET Standard 2.0 and .NET 5.0, the IsExternalInit class is not provided in the .NET 5.0 compilation, because .NET 5.0 already provides support for the class by default.
Please see https://github.com/manuelroemer/IsExternalInit for additional information on how to use this package.
Install-Package IsExternalInit -Version 1.0.0
dotnet add package IsExternalInit --version 1.0.0
<PackageReference Include="IsExternalInit" Version="1.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add IsExternalInit --version 1.0.0
#r "nuget: IsExternalInit, 1.0.0"
// Install IsExternalInit as a Cake Addin #addin nuget:?package=IsExternalInit&version=1.0.0 // Install IsExternalInit as a Cake Tool #tool nuget:?package=IsExternalInit&version=1.0.0
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on IsExternalInit:
The .NET runtime for Bebop, a schema-based binary serialization format.
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on IsExternalInit:
Extensions to LINQ to Objects
An extremely simple, fast, efficient, cross-platform serialization format
Declarative framework for interactive CLI applications