Ability to override view model type used in view resolution using a view model attribute #904
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.
I am creating this PR because I ran into an issue yesterday where I wanted to make a generically typed view model that would all use a common view. The problem with this approach is that you cannot register your IViewFor<> associations because the generic type doesn't allow that (this might work if you use an IoC that supports generic registrations, I'm not entirely sure). The simplest solution I could think of was to allow overriding the type information used in view resolution by using a custom attribute. This attribute then supplies the type override to use in view resolution (and does not even necessarily have to be related to the view model it decorates, but that would probably be a strange setup).
Here are some examples where we could use this new attribute
p.s. if a test is required for this PR to be accepted let me know and I'll look into writing a new test for it.