Open wmjordan opened 4 years ago
From the top of my head I think the main challenge here is to ensure that this does not break the access by reflection.
Yes, reflection is the problem. My projects will break immediately after that :D.
However, if a user knows the above rules, it is pretty easy for him to exclude a static class from this kind of protection: add an attribute to it. For experienced users, they can exclude or include classes via metadata or crproj file.
For assemblies with many helper methods, this can lead to a very large class.
Could this add difficulty to analyzing the structure and purpose of the classes before merging?
Before:
After (using
debug
renaming):Candidates for merging should meet the following principles:
ExtensionAttribute
,CompilerGeneratedAttribute
etc. maybe this can be configurable via crproj files).Variation of this pattern may be: