Before the dataflow changes there were several ways custom code could override default linker behavior to either tweak or completely disable reflection pattern matching:
MarkInstruction is virtual - related but was not necessary to override to get custom behavior
MarkReflectionLikeDependencies is virtual - all up override
ProcessReflectionDepenency specific extension point - called once per "call" instruction
With the method body scanner the behavior of the linker changed somewhat. We need to revisit these extension points and decide which ones to keep, and what to add/remove. The goal should be:
- Make it easy to disable the method body scanning in its entirety
- Make it possible to have the same extension points as before (or at least something very similar)
- Fast - extension points should not slow down linker when they're not used
Before the dataflow changes there were several ways custom code could override default linker behavior to either tweak or completely disable reflection pattern matching:
MarkInstructionis virtual - related but was not necessary to override to get custom behaviorMarkReflectionLikeDependenciesis virtual - all up overrideProcessReflectionDepenencyspecific extension point - called once per "call" instructionWith the method body scanner the behavior of the linker changed somewhat. We need to revisit these extension points and decide which ones to keep, and what to add/remove. The goal should be: