jason-c-daniels - Jcd.Reflection 1.0.47

A small library containing some commonly implemented reflection helpers.

PM> Install-Package Jcd.Reflection -Version 1.0.47 -Source https://www.myget.org/F/jason-c-daniels/api/v3/index.json

Copy to clipboard

> nuget.exe install Jcd.Reflection -Version 1.0.47 -Source https://www.myget.org/F/jason-c-daniels/api/v3/index.json

Copy to clipboard

> dotnet add package Jcd.Reflection --version 1.0.47 --source https://www.myget.org/F/jason-c-daniels/api/v3/index.json

Copy to clipboard
<PackageReference Include="Jcd.Reflection" Version="1.0.47" />
Copy to clipboard
source https://www.myget.org/F/jason-c-daniels/api/v3/index.json

nuget Jcd.Reflection  ~> 1.0.47
Copy to clipboard

> choco install Jcd.Reflection --version 1.0.47 --source https://www.myget.org/F/jason-c-daniels/api/v2

Copy to clipboard
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.47" -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

Scrutor inspired the technique I'm using for finding implementations of specific types as well as a couple of other handy utility methods.

Badges

GitHub Build status CodeFactor Grade

MyGet Nuget

API Docs

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 to GetMethods
  • The filter parameter was moved to the last parameter on an overload of GetMethods (formerly FilterMethods).
  • Renamed EnumerationSettings to Filter in MemberInfoEnumerator, FieldOrPropertyEnumerator, and MethodInfoEnumerator
  • Moved and renamed type from MethodInfoEnumerator.Settings to MethodInfoFilter.
  • Moved predefined instances of MethodInfoEnumerator.Settings from MethodInfoEnumerator to MethodInfoFilter.
  • Moved and renamed type from MemberInfoEnumerator.Settings to MemberInfoFilter.
  • Moved and renamed type from FieldOrPropertyEnumerator.Settings to FieldOrPropertyInfoFilter.
  • MethodInfoFilter, MemberInfoFilter, FieldOrPropertyInfoFilter fields are now get-only properties, requiring a call to new to create new instances.
  • To facilitate the use of init properties on MethodInfoFilter, MemberInfoFilter, FieldOrPropertyInfoFilter types, a custom IsExternalInit is required of target frameworks not supporting it. See this project's source code for an example (IsExternalInit.cs).
  • Extension methods GetCusomAttributes and HasAttribute were moved into classes named after the underlying method. This will only break non-extension invocations.

Misc. updates.

  • .NETStandard 2.0
    • Jcd.Validations (>= 1.1.7)
    • Microsoft.CSharp (>= 4.7.0)
  • .NETStandard 2.0: 2.0.0.0

Owners

Jason C. Daniels

Authors

Jason C Daniels

Project URL

https://github.com/jason-c-daniels/Jcd.Reflection

License

MIT

Tags

reflection csharp c#

Info

3274 total downloads
73 downloads for version 1.0.47
Download (49.55 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 63
2.0.18 45.4 KB Sun, 31 Mar 2024 19:26:29 GMT 70
2.0.13 45.39 KB Sun, 31 Mar 2024 14:47:43 GMT 70
2.0.12 45.39 KB Sun, 31 Mar 2024 14:41:21 GMT 70
2.0.7 45.38 KB Thu, 28 Mar 2024 22:49:49 GMT 62
2.0.0 45.51 KB Mon, 11 Mar 2024 00:15:51 GMT 70
1.0.61 49.89 KB Sun, 10 Mar 2024 20:56:31 GMT 72
1.0.57 49.72 KB Sun, 26 Mar 2023 23:41:45 GMT 75
1.0.56 49.72 KB Sun, 26 Mar 2023 23:36:41 GMT 70
1.0.53 49.61 KB Sun, 26 Mar 2023 23:29:19 GMT 77
1.0.52 49.55 KB Sun, 26 Mar 2023 23:16:42 GMT 71
1.0.51 49.56 KB Sun, 26 Mar 2023 21:19:01 GMT 72
1.0.47 49.55 KB Sun, 26 Mar 2023 20:28:38 GMT 73
1.0.42 49.55 KB Sat, 25 Mar 2023 18:27:40 GMT 67
1.0.41 45 KB Thu, 23 Mar 2023 17:29:26 GMT 87
1.0.40 43.59 KB Thu, 14 Oct 2021 02:28:42 GMT 89
1.0.39 39.77 KB Tue, 12 Oct 2021 11:38:32 GMT 71
1.0.38 38.55 KB Mon, 11 Oct 2021 16:56:45 GMT 81
1.0.37 38.55 KB Mon, 11 Oct 2021 16:55:37 GMT 73
1.0.36 38.55 KB Mon, 11 Oct 2021 16:54:13 GMT 77
1.0.35 38.56 KB Mon, 11 Oct 2021 16:51:10 GMT 61
1.0.34 38.56 KB Mon, 11 Oct 2021 03:26:31 GMT 67
1.0.33 38.55 KB Sun, 10 Oct 2021 23:54:07 GMT 72
1.0.30 38.5 KB Sun, 10 Oct 2021 23:36:47 GMT 63
1.0.29 38.58 KB Sun, 10 Oct 2021 23:35:25 GMT 80
1.0.26 38.57 KB Sun, 10 Oct 2021 03:43:09 GMT 76
1.0.25 38.58 KB Sun, 10 Oct 2021 03:13:49 GMT 73
1.0.24 37.34 KB Sun, 10 Oct 2021 00:58:02 GMT 69
1.0.23 37.33 KB Sun, 10 Oct 2021 00:19:28 GMT 74
1.0.22 37.34 KB Sun, 10 Oct 2021 00:14:42 GMT 80
1.0.21 37.33 KB Sun, 10 Oct 2021 00:02:52 GMT 92
1.0.20 37.33 KB Sat, 09 Oct 2021 23:38:27 GMT 57
1.0.19 37.33 KB Sat, 09 Oct 2021 23:29:02 GMT 73
1.0.18 37.34 KB Sat, 09 Oct 2021 23:16:09 GMT 58
1.0.17 37.16 KB Sat, 09 Oct 2021 23:02:27 GMT 69
1.0.16 36.45 KB Sat, 09 Oct 2021 22:08:18 GMT 66
1.0.15 36.45 KB Sat, 09 Oct 2021 22:05:10 GMT 67
1.0.14 34.27 KB Sat, 09 Oct 2021 20:03:05 GMT 72
1.0.13 31.97 KB Sat, 09 Oct 2021 19:52:58 GMT 73
1.0.12 30.14 KB Sat, 09 Oct 2021 13:53:04 GMT 77
1.0.11 30.14 KB Sat, 09 Oct 2021 13:29:35 GMT 65
1.0.8 27.11 KB Sat, 09 Oct 2021 07:52:19 GMT 63
1.0.4 26.79 KB Sat, 09 Oct 2021 05:21:18 GMT 61
1.0.2 25.79 KB Sat, 09 Oct 2021 01:00:23 GMT 79
1.0.1 13.83 KB Fri, 08 Oct 2021 22:46:28 GMT 57
1.0.0 13.55 KB Fri, 08 Oct 2021 22:34:24 GMT 70