jason-c-daniels - Jcd.Reflection 1.0.35
A small library containing some commonly implemented reflection helpers.
PM> Install-Package Jcd.Reflection -Version 1.0.35 -Source https://www.myget.org/F/jason-c-daniels/api/v3/index.json
> nuget.exe install Jcd.Reflection -Version 1.0.35 -Source https://www.myget.org/F/jason-c-daniels/api/v3/index.json
> dotnet add package Jcd.Reflection --version 1.0.35 --source https://www.myget.org/F/jason-c-daniels/api/v3/index.json
source https://www.myget.org/F/jason-c-daniels/api/v3/index.json
nuget Jcd.Reflection ~> 1.0.35
Copy to clipboard
> choco install Jcd.Reflection --version 1.0.35 --source https://www.myget.org/F/jason-c-daniels/api/v2
Import-Module PowerShellGet
Register-PSRepository -Name "jason-c-daniels" -SourceLocation "https://www.myget.org/F/jason-c-daniels/api/v2"
Install-Module -Name "Jcd.Reflection" -RequiredVersion "1.0.35" -Repository "jason-c-daniels"
Copy to clipboard
Jcd.Reflection
A dotnetstandard2.0 library containing some commonly implemented reflection helpers.
v2.0 has many breaking changes. See the Version History for details.
Examples
internal static class Program
{
private static void Main()
{
var c = new TestClass();
// set the private field, _field
c.SetValue("_field",10);
// now get its value.
var val = (int)c.GetValue("_field");
Console.WriteLine(val);
// Now set a private property with a backing field.
c.SetValue("PrivateProperty",20);
// Now call a private helper method that returns the value from the backing field.
val = c.Invoke<int>("InternalGetField");
Console.WriteLine(val);
Special Thanks To
- Kristian Hellang on GitHub for the Scrutor project.
Scrutor inspired the technique I'm using for finding implementations of specific types as well as a couple of other handy utility methods.
Badges
Version History
v2.0 Breaking Changes
Version 2.0 comes with a significant number of breaking changes for advanced use cases. These are listed below
ExpandoObjectExtensions
was removed. It wasn't functioning as planned. An overhaul of the approach is needed.- All overloads of
FilterMethods
were renamed toGetMethods
- The filter parameter was moved to the last parameter on an overload of
GetMethods
(formerlyFilterMethods
). - Renamed
EnumerationSettings
toFilter
inMemberInfoEnumerator
,FieldOrPropertyEnumerator
, andMethodInfoEnumerator
- Moved and renamed type from
MethodInfoEnumerator.Settings
toMethodInfoFilter
. - Moved predefined instances of
MethodInfoEnumerator.Settings
fromMethodInfoEnumerator
toMethodInfoFilter
. - Moved and renamed type from
MemberInfoEnumerator.Settings
toMemberInfoFilter
. - Moved and renamed type from
FieldOrPropertyEnumerator.Settings
toFieldOrPropertyInfoFilter
. MethodInfoFilter
,MemberInfoFilter
,FieldOrPropertyInfoFilter
fields are now get-only properties, requiring a call tonew
to create new instances.- To facilitate the use of init properties on
MethodInfoFilter
,MemberInfoFilter
,FieldOrPropertyInfoFilter
types, a customIsExternalInit
is required of target frameworks not supporting it. See this project's source code for an example (IsExternalInit.cs
). - Extension methods
GetCusomAttributes
andHasAttribute
were moved into classes named after the underlying method. This will only break non-extension invocations.
Fixed GitHub issues #3 and #4 (unused params in ToExpandoObject and ToDictionaryTree)
-
.NETStandard 2.0
- Jcd.Validations (>= 1.0.17)
- Microsoft.CSharp (>= 4.7.0)
-
.NETStandard 2.1
- Jcd.Validations (>= 1.0.17)
- Microsoft.CSharp (>= 4.7.0)
- .NETStandard 2.0: 2.0.0.0
- .NETStandard 2.1: 2.1.0.0
OwnersJason C. Daniels |
AuthorsJason C Daniels |
Project URLhttps://github.com/jason-c-daniels/Jcd.Reflection |
LicenseMIT |
Tagsreflection csharp c# |
Info120 total downloads |
2 downloads for version 1.0.35 |
Download (38.56 KB) |
Found on the current feed only |
Package history
Version | Size | Last updated | Downloads | Mirrored? | |||
---|---|---|---|---|---|---|---|
2.0.26 | 45.06 KB | Sun, 31 Mar 2024 20:33:54 GMT | 3 | ||||
2.0.18 | 45.4 KB | Sun, 31 Mar 2024 19:26:29 GMT | 0 | ||||
2.0.13 | 45.39 KB | Sun, 31 Mar 2024 14:47:43 GMT | 1 | ||||
2.0.12 | 45.39 KB | Sun, 31 Mar 2024 14:41:21 GMT | 0 | ||||
2.0.7 | 45.38 KB | Thu, 28 Mar 2024 22:49:49 GMT | 2 | ||||
2.0.0 | 45.51 KB | Mon, 11 Mar 2024 00:15:51 GMT | 3 | ||||
1.0.61 | 49.89 KB | Sun, 10 Mar 2024 20:56:31 GMT | 0 | ||||
1.0.57 | 49.72 KB | Sun, 26 Mar 2023 23:41:45 GMT | 2 | ||||
1.0.56 | 49.72 KB | Sun, 26 Mar 2023 23:36:41 GMT | 6 | ||||
1.0.53 | 49.61 KB | Sun, 26 Mar 2023 23:29:19 GMT | 3 | ||||
1.0.52 | 49.55 KB | Sun, 26 Mar 2023 23:16:42 GMT | 2 | ||||
1.0.51 | 49.56 KB | Sun, 26 Mar 2023 21:19:01 GMT | 4 | ||||
1.0.47 | 49.55 KB | Sun, 26 Mar 2023 20:28:38 GMT | 6 | ||||
1.0.42 | 49.55 KB | Sat, 25 Mar 2023 18:27:40 GMT | 4 | ||||
1.0.41 | 45 KB | Thu, 23 Mar 2023 17:29:26 GMT | 4 | ||||
1.0.40 | 43.59 KB | Thu, 14 Oct 2021 02:28:42 GMT | 3 | ||||
1.0.39 | 39.77 KB | Tue, 12 Oct 2021 11:38:32 GMT | 3 | ||||
1.0.38 | 38.55 KB | Mon, 11 Oct 2021 16:56:45 GMT | 4 | ||||
1.0.37 | 38.55 KB | Mon, 11 Oct 2021 16:55:37 GMT | 3 | ||||
1.0.36 | 38.55 KB | Mon, 11 Oct 2021 16:54:13 GMT | 3 | ||||
1.0.35 | 38.56 KB | Mon, 11 Oct 2021 16:51:10 GMT | 2 | ||||
1.0.34 | 38.56 KB | Mon, 11 Oct 2021 03:26:31 GMT | 2 | ||||
1.0.33 | 38.55 KB | Sun, 10 Oct 2021 23:54:07 GMT | 3 | ||||
1.0.30 | 38.5 KB | Sun, 10 Oct 2021 23:36:47 GMT | 2 | ||||
1.0.29 | 38.58 KB | Sun, 10 Oct 2021 23:35:25 GMT | 2 | ||||
1.0.26 | 38.57 KB | Sun, 10 Oct 2021 03:43:09 GMT | 1 | ||||
1.0.25 | 38.58 KB | Sun, 10 Oct 2021 03:13:49 GMT | 3 | ||||
1.0.24 | 37.34 KB | Sun, 10 Oct 2021 00:58:02 GMT | 3 | ||||
1.0.23 | 37.33 KB | Sun, 10 Oct 2021 00:19:28 GMT | 2 | ||||
1.0.22 | 37.34 KB | Sun, 10 Oct 2021 00:14:42 GMT | 2 | ||||
1.0.21 | 37.33 KB | Sun, 10 Oct 2021 00:02:52 GMT | 2 | ||||
1.0.20 | 37.33 KB | Sat, 09 Oct 2021 23:38:27 GMT | 2 | ||||
1.0.19 | 37.33 KB | Sat, 09 Oct 2021 23:29:02 GMT | 2 | ||||
1.0.18 | 37.34 KB | Sat, 09 Oct 2021 23:16:09 GMT | 3 | ||||
1.0.17 | 37.16 KB | Sat, 09 Oct 2021 23:02:27 GMT | 2 | ||||
1.0.16 | 36.45 KB | Sat, 09 Oct 2021 22:08:18 GMT | 2 | ||||
1.0.15 | 36.45 KB | Sat, 09 Oct 2021 22:05:10 GMT | 2 | ||||
1.0.14 | 34.27 KB | Sat, 09 Oct 2021 20:03:05 GMT | 2 | ||||
1.0.13 | 31.97 KB | Sat, 09 Oct 2021 19:52:58 GMT | 2 | ||||
1.0.12 | 30.14 KB | Sat, 09 Oct 2021 13:53:04 GMT | 11 | ||||
1.0.11 | 30.14 KB | Sat, 09 Oct 2021 13:29:35 GMT | 2 | ||||
1.0.8 | 27.11 KB | Sat, 09 Oct 2021 07:52:19 GMT | 2 | ||||
1.0.4 | 26.79 KB | Sat, 09 Oct 2021 05:21:18 GMT | 2 | ||||
1.0.2 | 25.79 KB | Sat, 09 Oct 2021 01:00:23 GMT | 2 | ||||
1.0.1 | 13.83 KB | Fri, 08 Oct 2021 22:46:28 GMT | 2 | ||||
1.0.0 | 13.55 KB | Fri, 08 Oct 2021 22:34:24 GMT | 2 |