Refelection improvements - #18
Closed
BionicCode wants to merge 274 commits into
Closed
BionicCode wants to merge 274 commits into
BionicCode wants to merge 274 commits into
Conversation
…y property setter support. Add constructor signature generation
Reformatted code to use file-scoped namespace and moved using directives outside the namespace. Improved and expanded XML documentation for the struct and its constructor. Minor readability refactor in the constructor; no functional changes to logic or behavior. Changes are focused on code style, formatting, and documentation clarity.
Reformatted code to use file-scoped namespaces and improved readability. Added comprehensive XML documentation to the AnonymousEventDescriptor struct and its constructor, detailing parameters and exception conditions. No functional changes were made; updates are limited to documentation, formatting, and minor variable renaming for clarity.
Update the workflow to include debug output and commit logic for .editorconfig.
Removed various .NET analyzer settings and coding conventions from the .editorconfig file.
Removed redundant namespaces and improved XML comments for clarity. Moved struct to top-level scope and consolidated using statements. No changes to struct implementation; enhanced readability.
- Introduce MethodSignatureEqualityComparer for signature-based equality of MethodInfo/MethodData, ignoring declaring type. - Simplify WellKnownMethodDescriptor, removing explicit interface implementation tracking. - Make key properties/methods public in EventData, MemberData, ParameterizedMemberData, and SymbolInfoData for better data view support. - Refactor EventData to cache explicit implementation and type handles, determining explicitness via add/remove methods. - Update MethodData to use underscore-prefixed fields and add EqualsBySignature. - Extend SymbolReflectionInfoCache with IEventDataView caching and retrieval. - Update EventDataView to new data view pattern and consistent property naming. - Clean up code: use collection initializers, modern C# syntax, and remove obsolete code. - Clarify ParameterizedSymbolKind enum. - Move toward a public, facade-based API for symbol reflection data.
Replaced GetMethodInfo() calls with direct MethodInfo access in MethodData and related classes for improved performance and clarity. Made many MethodData properties public for broader API access. Added MethodInfo property to WellKnownMethodDescriptor. Refactored explicit interface implementation detection logic for greater reliability and maintainability. Updated EventData to use new explicit interface implementation logic.
Removed commented-out code for handling explicit interface implementations declared directly on interfaces. The method now skips this check and iterates over implemented interfaces.
Fixed typo ("ture" → "true") in XML documentation comments. Updated remarks to reference the correct InvokeOpenGeneric overload for open generic methods, improving clarity for users.
Removed the XML documentation comment for the MethodHandle property in WellKnownMethodDescriptor. The property's functionality is unchanged; only its descriptive summary and remarks were deleted.
Converted to file-scoped namespace syntax for consistency and modern C# style. No functional changes; only formatting and indentation were updated.
Renamed all private backing fields in ParameterData.cs to use the C# convention of an underscore prefix (e.g., _isRef instead of isRef). Updated all property implementations to reference the new field names. No functional changes; this is a naming consistency refactor.
Refactored the ParameterData class constructor to accept only a SymbolReflectionInfoCacheKey, extracting the parameter name and ParameterInfo from its ParameterDescriptor. Updated null checks and base constructor call accordingly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
@codex review for bugs and regression a) SymbolInfoDataCacheKey paths for key creation including for parameters and properties) b) SymbolReflectionInfoCache key resolving (like resolving/creating the facade wrappers (like PropertyData etc.) based on the provided keys.