Enable propagating WinRTRuntimeClassName value to activation factory lookup#1934
Merged
Conversation
…so activate types when respective property is set
…b.com/microsoft/CsWinRT into manodasanw/runtimeclassnameactivation
Sergio0694
approved these changes
Feb 24, 2025
Member
Sergio0694
left a comment
There was a problem hiding this comment.
Looks good! I assume the new method will just be trimmed anyway when publishing with NAOT and merging activation factories, so I don't expect any binary size diffs.
Member
Author
Right, I expect it to be trimmed away. I was debating making DllGetActivationFactory call this function but then didn't just to avoid indrection which was going to do the same thing and it also allows it to be trimmed away. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Today, we support overriding the
runtime class namereturned forIInspectablevia theWinRTRuntimeClassNameattribute. But if someone asks for the activation factory with that name, it fails. This enables an activation factory being generating with those runtime class names whenCsWinRTGenerateOverridedClassNameActivationFactoryis set. This is enabled via the generated projection also calling an partial implementation of the activation factory whenpartial_factoryis set which allows the source generator side to implement the activation factory with remapped names.We also now generate
Module.GetActivationFactorywhen activation factories are merged in a non cswinrt component project. This allows the JIT scenario to be simlar to the AOT scenario which hadDllGetActivationFactorygenerated and thereby be able to be activated via WinRT.Host.Also fixed the issue with help not displaying by increasing the buffer size.
Fixes #1929
Fixes #1872