PolySharp 1.3.0
See the version list below for details.
dotnet add package PolySharp --version 1.3.0
NuGet\Install-Package PolySharp -Version 1.3.0
<PackageReference Include="PolySharp" Version="1.3.0" />
<PackageVersion Include="PolySharp" Version="1.3.0" />
<PackageReference Include="PolySharp" />
paket add PolySharp --version 1.3.0
#r "nuget: PolySharp, 1.3.0"
#addin nuget:?package=PolySharp&version=1.3.0
#tool nuget:?package=PolySharp&version=1.3.0
What is it? 🚀
PolySharp provides generated, source-only polyfills for C# language features, to easily use all runtime-agnostic features downlevel. The package is distributed as a source generator, so that it will automatically detect which polyfills are needed depending on the target framework and project in use: just add a reference to PolySharp, set your C# language version to latest, and have fun!
Documentation 📖
PolySharp includes the following polyfills:
- Nullability attributes (for nullable reference types):
[AllowNull]
[DisallowNull]
[DoesNotReturn]
[DoesNotReturnIf]
[MaybeNull]
[MaybeNullWhen]
[MemberNotNull]
[MemberNotNullWhen]
[NotNull]
[NotNullIfNotNull]
[NotNullWhen]
Index
andRange
(see indices and ranges)[UnscopedRef]
(see low-level struct improvements)- Required members (see required modifier)
[RequiredMember]
[SetsRequiredMembers]
[CompilerFeatureRequired]
(needed to support several features)[IsExternalInit]
(needed for init-only properties)[SkipLocalsInit]
(see docs)- Interpolated string handlers (see docs)
[InterpolatedStringHandler]
[InterpolatedStringHandlerArgument]
[CallerArgumentExpression]
(see docs)[RequiresPreviewFeatures]
(needed for preview features)
To leverage them, make sure to bump your C# language version. You can do this by setting the <LangVersion>
MSBuild property in your project. For instance, by adding <LangVersion>11.0</LangVersion>
(or your desired C# version) to the first <PropertyGroup>
of your .csproj file. For more info on this, see here, but remember that you don't need to manually copy polyfills anymore: simply adding a reference to PolySharp will do this for you automatically.
It also includes the following optional runtime-supported polyfills:
- Reflection annotation attributes (see docs):
[DynamicallyAccessedMembers]
[DynamicDependency]
[RequiresUnreferencedCode]
[UnconditionalSuppressMessage]
[StackTraceHidden]
(see here)[UnmanagedCallersOnly]
(see docs))- Platform support annotation attributes (see docs):
[ObsoletedOSPlatform]
[SupportedOSPlatform]
[SupportedOSPlatformGuard]
[TargetPlatform]
[UnsupportedOSPlatform]
[UnsupportedOSPlatformGuard]
Options ⚙️
PolySharp's generation can be configured through some MSBuild properties to set in consuming projects.
The following properties are available:
- "PolySharpUsePublicAccessibilityForGeneratedTypes": makes all generated types public.
- "PolySharpIncludeRuntimeSupportedAttributes": enables polyfills for (dummy) runtime-supported attributes too.
- "PolySharpExcludeGeneratedTypes": excludes specific types from generation (';' or ',' separated type names).
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages (28)
Showing the top 5 NuGet packages that depend on PolySharp:
Package | Downloads |
---|---|
AdaptiveCards.Templating
This library implements a JSON-to-JSON templating/data-binding engine. While it is designed to be used with Adaptive Cards, it is not dependent on Adaptive Cards and can therefore be used in many contexts and applications. |
|
Bing.Utils
Bing.Utils是Bing应用框架的核心帮助类库。 |
|
TinyIpc
.NET inter process broadcast message bus. |
|
TinyLogger
Tiny extendable logger that plugins into Microsoft.Extensions.Logging |
|
K4os.Xpovoc.Core
Simple job scheduler for .NET/.NET Core |
GitHub repositories (151)
Showing the top 20 popular GitHub repositories that depend on PolySharp:
Repository | Stars |
---|---|
files-community/Files
A modern file manager that helps users organize their files and folders.
|
|
spectreconsole/spectre.console
A .NET library that makes it easier to create beautiful console applications.
|
|
restsharp/RestSharp
Simple REST and HTTP API Client for .NET
|
|
unoplatform/uno
Open-source platform for building cross-platform native Mobile, Web, Desktop and Embedded apps quickly. Create rich, C#/XAML, single-codebase apps from any IDE. Hot Reload included! 90m+ NuGet Downloads!!
|
|
lepoco/wpfui
WPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.
|
|
serilog/serilog
Simple .NET logging with fully-structured events
|
|
elsa-workflows/elsa-core
A .NET workflows library
|
|
stride3d/stride
Stride (formerly Xenko), a free and open-source cross-platform C# game engine.
|
|
PrismLibrary/Prism
Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Xamarin Forms, and Uno / Win UI Applications..
|
|
graphql-dotnet/graphql-dotnet
GraphQL for .NET
|
|
UnigramDev/Unigram
Telegram for Windows
|
|
ExcelDataReader/ExcelDataReader
Lightweight and fast library written in C# for reading Microsoft Excel files
|
|
BililiveRecorder/BililiveRecorder
录播姬 | mikufans 生放送录制
|
|
sshnet/SSH.NET
SSH.NET is a Secure Shell (SSH) library for .NET, optimized for parallelism.
|
|
Cysharp/MagicOnion
Unified Realtime/API framework for .NET platform and Unity.
|
|
fluentassertions/fluentassertions
A very extensive set of extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style unit tests. Targets .NET Framework 4.7, as well as .NET Core 2.1, .NET Core 3.0, .NET 6, .NET Standard 2.0 and 2.1. Supports the unit test frameworks MSTest2, NUnit3, XUnit2, MSpec, and NSpec3.
|
|
morelinq/MoreLINQ
Extensions to LINQ to Objects
|
|
CommunityToolkit/dotnet
.NET Community Toolkit is a collection of helpers and APIs that work for all .NET developers and are agnostic of any specific UI platform. The toolkit is maintained and published by Microsoft, and part of the .NET Foundation.
|
|
linq2db/linq2db
Linq to database provider.
|
|
Sergio0694/ComputeSharp
A .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders, with the goal of making GPU computing easy to use for all .NET developers! 🚀
|
Version | Downloads | Last updated |
---|---|---|
1.15.0 | 723,056 | 11/21/2024 |
1.14.1 | 3,126,392 | 12/18/2023 |
1.14.0 | 49,872 | 11/28/2023 |
1.13.2 | 748,239 | 5/16/2023 |
1.13.1 | 126,378 | 4/6/2023 |
1.12.1 | 381,840 | 1/21/2023 |
1.10.0 | 538,947 | 1/15/2023 |
1.9.0 | 3,027 | 1/14/2023 |
1.8.3 | 14,141 | 1/9/2023 |
1.8.2 | 228 | 1/8/2023 |
1.8.1 | 27,324 | 11/22/2022 |
1.8.0 | 887 | 11/16/2022 |
1.7.1 | 29,802 | 10/29/2022 |
1.7.0 | 205 | 10/28/2022 |
1.6.0 | 423 | 10/26/2022 |
1.5.0 | 203 | 10/26/2022 |
1.4.0 | 208 | 10/25/2022 |
1.3.0 | 373 | 10/23/2022 |
1.2.0 | 198 | 10/22/2022 |
1.1.0 | 194 | 10/22/2022 |
1.0.1 | 192 | 10/22/2022 |
1.0.0 | 5,968 | 10/22/2022 |