Mark DynamicProxy's internal classes as sealed
#544
Closed
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.
DynamicProxy's internals have been stable over the past few years, and now that they are no longer public (see #505), we can view their type hierarchy as essentially frozen—at least for the time being. Marking internal classes that have no subclasses of their own as
sealed
formalizes this.Being able to recognize final classes at a glance can be helpful when we want to refactor them.
(A few refactorings are included here because the C# compiler will warn about / disallow new
protected
orvirtual
members insealed
types.)Update: Converting to draft, this PR should perhaps also devirtualize non-overridden members, and make them
private
where possible.