Add a dedicated substitution naming provider #377
Merged
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.
Reason for PR
A need to specify alternate/replacement names for types and/or properties during generation, specifically from the command line.
Outline of key changes
NamingProvider
implementation,SubstituteNamingProvider
, which can store a dictionary of generated names and an alternate to substitute with.INamingProvider
to add two specificType
-based methods forPropertyNameFromAttribute
andPropertyNameFromElement
, to ensure that custom implementors can split the implementation accordingly.XmlSchemaClassGenerator.Console
to accept new command line options:--typeNameSubstitute
: For each instance, the{generated}={substituted}
value is added to a collection.--typeNameSubstituteFile
: For each instance, the containing{generated} = {substituted}
lines are added to a collection.README
to properly document and define cli usage.Related issues:
This may not completely solve all of these issues, but should at least assist with the next steps.
Requests for mercy
NamingProvider
). I have submitted this PR as I have a desire for this to be merged before I am able to make time to add tests for both theNamingProvider
andSubstituteNamingProvider
implementations. May I request your mercy, and have tests overlooked for this specific PR?