This repository was archived by the owner on Sep 21, 2022. It is now read-only.
Made PluginSettings path keyword replacement more safe #28
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.
The problem with replacing the keywords on load is that this results in the keywords being persistently replaced when using the new SetGlobalValues(...) workflow for changing the settings during build time.
The approach suggested by this Pull request handles the keyword replacement by making the serialized members private, and doing the keyword replacement the first time the public property getter is called. This way, the persistent member variables are never altered and the final path will never be (accidentally) stored.
One additional benefit is that using Properties for these two values makes it obvious that the value received when getting the property may be different from the serialized member variable (because property getters are methods, so some processing can occur).
While at it, I also replaced the duplicate keyword replacement code with a single method.