AgileObjects.ReadableExpressions
4.0.0
See the version list below for details.
dotnet add package AgileObjects.ReadableExpressions --version 4.0.0
NuGet\Install-Package AgileObjects.ReadableExpressions -Version 4.0.0
<PackageReference Include="AgileObjects.ReadableExpressions" Version="4.0.0" />
paket add AgileObjects.ReadableExpressions --version 4.0.0
#r "nuget: AgileObjects.ReadableExpressions, 4.0.0"
// Install AgileObjects.ReadableExpressions as a Cake Addin #addin nuget:?package=AgileObjects.ReadableExpressions&version=4.0.0 // Install AgileObjects.ReadableExpressions as a Cake Tool #tool nuget:?package=AgileObjects.ReadableExpressions&version=4.0.0
ReadableExpressions
ReadableExpressions provides extension methods and a
Debugger Visualizer
for readable, source-code versions of
Expression Trees,
as well as reflection objects like Type
, FieldInfo
, PropertyInfo
, etc.
Debugger Visualizer
The Debugger Visualizer installer can be downloaded from Visual Studio Marketplace.
The visualizer has both Light and Dark themes:
...and output can be customised using various options:
ASP.NET Core 5 Known Issue
.NET 5 had a breaking change, which disables BinaryFormatter
serialization by default.
This has caused issues with the ReadableExpressions visualizers (and elsewhere)
when debugging ASP.NET Core apps as the VS debugger uses BinaryFormatter
to serialize objects before sending them to the visualizer.
The solution is to enable the
BinaryFormatter
in Debug only by adding the following to your ASP.NET Core csproj:
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<EnableUnsafeBinaryFormatterSerialization Condition=" '$(Configuration)' == 'Debug' ">
true
</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
Extension Methods
The extension methods are available on NuGet, and target .NET 3.5+ and .NETStandard 1.0+:
PM> Install-Package AgileObjects.ReadableExpressions
To translate an Expression, use:
using AgileObjects.ReadableExpressions;
string readable = myExpression.ToReadableString();
...this also works on DynamicLanguageRuntime expressions.
All code is licensed with the MIT licence. Check out the documentation for more!
Product | Versions 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 | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.0 is compatible. netstandard1.1 was computed. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net35 is compatible. net40 is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. 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 | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Windows Phone | wp8 was computed. wp81 was computed. wpa81 was computed. |
Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 3.5
- AgileObjects.NetStandardPolyfills (>= 1.6.0)
- DynamicLanguageRuntime (>= 1.1.2)
-
.NETFramework 4.0
- AgileObjects.NetStandardPolyfills (>= 1.6.0)
-
.NETStandard 1.0
- AgileObjects.NetStandardPolyfills (>= 1.6.0)
- NETStandard.Library (>= 1.6.1)
- System.Dynamic.Runtime (>= 4.3.0)
-
.NETStandard 2.0
- AgileObjects.NetStandardPolyfills (>= 1.6.0)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on AgileObjects.ReadableExpressions:
Package | Downloads |
---|---|
AgileObjects.AgileMapper
A zero-configuration, highly-configurable, unopinionated object mapper with viewable execution plans. Flattens, unflattens, deep clones, merges, updates and projects queries. Targets .NET 3.5+ and .NET Standard 1.0+ |
|
RaaLabs.Edge.Modules.EventHandling
Package Description |
|
TomSun.AspNetCore.RazorReact
Package Description |
|
IntoItIf.Dsl
The interface of IntoItIf library, decorated by interceptors logic |
|
NiuX
NiuX 基础设施 |
GitHub repositories (10)
Showing the top 5 popular GitHub repositories that depend on AgileObjects.ReadableExpressions:
Repository | Stars |
---|---|
recyclarr/recyclarr
Automatically sync TRaSH Guides to your Sonarr and Radarr instances
|
|
UiPath/CoreWF
WF runtime ported to work on .NET 6
|
|
axle-h/Retro.Net
Retro hardware libraries in .NET Core with an Angular front end
|
|
rikimaru0345/Ceras
Universal binary serializer for a wide variety of scenarios https://discord.gg/FGaCX4c
|
|
DataDog/dd-trace-dotnet
.NET Client Library for Datadog APM
|
Version | Downloads | Last updated | |
---|---|---|---|
4.1.3 | 47,436 | 6/29/2024 | |
4.1.2 | 1,628 | 6/22/2024 | |
4.1.0 | 98,922 | 7/8/2023 | |
4.0.0 | 182,987 | 1/6/2023 | |
3.3.0 | 521,181 | 4/6/2022 | |
3.2.0 | 205,157 | 1/27/2022 | |
3.1.1 | 27,616 | 12/15/2021 | |
3.1.0 | 14,218 | 11/14/2021 | |
3.0.0 | 25,222 | 10/13/2021 | |
3.0.0-preview2 | 1,943 | 7/29/2021 | |
3.0.0-preview1 | 1,326 | 7/2/2021 | |
2.6.0 | 673,567 | 4/28/2021 | |
2.6.0-preview1 | 1,769 | 4/6/2021 | |
2.5.1 | 558,821 | 7/20/2020 | |
2.5.0 | 81,347 | 5/26/2020 | |
2.4.1 | 2,890 | 5/18/2020 | |
2.4.0 | 9,821 | 5/1/2020 | |
2.3.2 | 666,447 | 7/7/2019 | |
2.3.1 | 6,034 | 6/16/2019 | |
2.3.0 | 6,782 | 5/28/2019 | |
2.2.0 | 4,476 | 4/26/2019 | |
2.1.1 | 199,964 | 2/7/2019 | |
2.1.0 | 97,398 | 12/12/2018 | |
2.0.0 | 19,085 | 11/25/2018 | |
1.13.0 | 12,030 | 9/27/2018 | |
1.12.1 | 56,853 | 7/7/2018 | |
1.11.0 | 45,152 | 2/6/2018 | |
1.10.1 | 13,570 | 12/20/2017 | |
1.10.0 | 2,538 | 12/2/2017 | |
1.9.5 | 33,919 | 11/9/2017 | |
1.9.4 | 2,638 | 10/17/2017 | |
1.9.3 | 2,103 | 10/12/2017 | |
1.9.2 | 2,707 | 9/16/2017 | |
1.9.1 | 84,505 | 7/27/2017 | |
1.9.0 | 2,871 | 7/11/2017 | |
1.8.6 | 22,802 | 5/13/2017 | |
1.8.5 | 3,256 | 5/6/2017 | |
1.8.3 | 16,818 | 3/11/2017 | |
1.8.2 | 5,845 | 1/25/2017 | |
1.8.1 | 2,623 | 12/10/2016 | |
1.8.0 | 3,276 | 11/12/2016 | |
1.7.2 | 2,531 | 10/21/2016 | |
1.7.1 | 2,517 | 10/5/2016 | |
1.7.0 | 1,876 | 10/5/2016 | |
1.6.5 | 3,132 | 9/17/2016 | |
1.6.4 | 3,137 | 8/2/2016 | |
1.6.3 | 1,992 | 7/23/2016 | |
1.6.2 | 2,101 | 7/13/2016 | |
1.6.1 | 2,052 | 7/10/2016 | |
1.6.0 | 2,028 | 6/25/2016 | |
1.5.2 | 2,973 | 6/10/2016 | |
1.5.0 | 2,058 | 5/30/2016 | |
1.4.2 | 2,028 | 5/19/2016 | |
1.4.0 | 2,021 | 5/11/2016 | |
1.3.0 | 1,918 | 5/9/2016 | |
1.2.0 | 2,161 | 4/25/2016 | |
1.1.2 | 2,008 | 4/19/2016 | |
1.1.1 | 2,072 | 4/13/2016 | |
1.1.0 | 1,899 | 4/7/2016 | |
1.0.3 | 1,988 | 4/5/2016 | |
1.0.1 | 1,954 | 3/25/2016 | |
1.0.0 | 2,503 | 2/27/2016 | |
0.5.1 | 1,910 | 1/20/2016 | |
0.5.0 | 2,100 | 1/17/2016 | |
0.4.0 | 2,267 | 1/16/2016 | |
0.3.0 | 2,663 | 1/14/2016 | |
0.2.0 | 2,061 | 11/5/2015 | |
0.1.0 | 2,237 | 11/4/2015 |
- Support for per-ExpressionType custom translation
- Fixing multi-line lambda variable body translation, re: #111
- Fixing string constant member access translation
- Simplifying public translation interfaces