MicroElements.Reflection.Sources
1.8.0
Prefix Reserved
See the version list below for details.
dotnet add package MicroElements.Reflection.Sources --version 1.8.0
NuGet\Install-Package MicroElements.Reflection.Sources -Version 1.8.0
<PackageReference Include="MicroElements.Reflection.Sources" Version="1.8.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add MicroElements.Reflection.Sources --version 1.8.0
#r "nuget: MicroElements.Reflection.Sources, 1.8.0"
// Install MicroElements.Reflection.Sources as a Cake Addin #addin nuget:?package=MicroElements.Reflection.Sources&version=1.8.0 // Install MicroElements.Reflection.Sources as a Cake Tool #tool nuget:?package=MicroElements.Reflection.Sources&version=1.8.0
MicroElements.Reflection.Sources
Summary
MicroElements source only package: Reflection. Classes: TypeExtensions, TypeCheck, ObjectExtensions, Expressions, CodeCompiler, FriendlyName.
Extensions
FriendlyName
Gets friendly (human readable) name for the type.
Usage
// Without GetFriendlyName
typeof(List<ValueTuple<int?, string>?>).Name.Should().Be("List`1");
typeof(List<ValueTuple<int?, string>?>).FullName.Should().StartWith("System.Collections.Generic.List`1[[System.Nullable`1[[System.ValueTuple`2[[System.Nullable`1[[System.Int32, System.Private.CoreLib");
// With GetFriendlyName
typeof(List<(int Key, string Value)>).GetFriendlyName().Should().Be("List<ValueTuple<int, string>>");
Notes:
- For for standard and primitive types uses aliases:
string, object, bool, byte, char, decimal, double, short, int, long, sbyte, float, ushort, uint, ulong, void
. Example:Int32
→int
. - You can replace standard aliases with
typeAliases
param - For generic types uses angle brackets:
List'1
→List<int>
- For array types uses square brackets:
Int32[]
→int[]
- For
Nullable
value types adds?
at the end - Uses recursion. Example:
List<Tuple<int, string>>
- Uses cache: every name builds only once. You can use uncached
BuildFriendlyName
. - ThreadSafe: true
Other (Description TBD):
- TypeExtensions
- TypeCheck
- ObjectExtensions
- CodeCompiler
- Expressions
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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- MicroElements.Collections.Sources (>= 1.6.0)
- MicroElements.IsExternalInit (>= 1.1.0)
- MicroElements.Text.Sources (>= 1.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MicroElements.Reflection.Sources:
Package | Downloads |
---|---|
MicroElements.Shared.Sources
MicroElements source packages metapackage. |
GitHub repositories
This package is not used by any popular GitHub repositories.
# Changelog
## [1.8.0] - 2022-12-17
- Changed: `MicroElements.Reflection.TypeCache` renamed to `MicroElements.Reflection.TypeCaching`
- Added: `LazyTypeCache`
- Added: `TypeCache.AppDomainTypes` and `TypeCache.AppDomainTypesUpdatable`
- Changed: `FriendlyName` switched to lazy type cache with updatable app domain types
## [1.7.0] - 2022-11-15
- Changed: FriendlyName become more functional. All main methods now use functions as extension points.
- Changed: Added GetName to ITypeCache that allow to use it without TypeCache fields knowledge. Also it can be used in FriendlyName methods.
## [1.6.0] - 2022-11-11
- Changed: TypeLoader extensions simplified
- Added: FriendlyName: added ParseFriendlyName extension
- Added: TypeCache
## [1.5.0] - 2022-10-09
- Changed: FriendlyName nullable types support, more documentation and tests
## [1.4.0] - 2022-05-28
- Added: FriendlyName that allows to get friendly (human readable) name for the type.
## [1.3.1] - 2022-01-12
- Changed: MicroElements.Collections.Sources bumped to 1.3.0
## [1.3.0] - 2022-01-09
- Changed: Package reference MicroElements.Formatting.Sources replaced with MicroElements.Text.Sources
## [1.2.0] - 2021-12-10
- Added: TypeLoader
- Added: AndAlso ExpressionExtensions
## [1.1.0] - 2021-11-08
- Added: Expressions GetPropertySetter, GetPropertyGetterAndSetter, Mutate
## [1.0.0] - 2021-10-17
- CodeCompiler, ObjectExtensions, TypeCheck, TypeExtensions extracted from MicroElements.Functional and other MicroElements projects
Full release notes can be found at: https://github.com/micro-elements/MicroElements.Shared/blob/master/src/MicroElements.Reflection.Sources/CHANGELOG.md