[release/6.0-rc2] XmlSerializer support for IsDynamicCodeSupported=false #59507
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.
Backport of #59386 to release/6.0-rc2
/cc @eerhardt
Customer Impact
XmlSerializer doesn't work when running on iOS devices with the
--enable-opt sealer
linker optimization (that Xamarin iOS uses). This means any app using XmlSerializer that was working with legacy Xamarin.iOS will fail with upgraded to .NET 6.Testing
I added a new trimming test that sets the "sealer" linker optimization and simulates being on a platform that doesn't allow JIT'ing. The existing unit tests also caught a bug in
CanDeserialize
in this mode, which I fixed.Risk
Medium-low. There is a chance there are other bugs on iOS that weren't caught by the existing tests. The other risk is the bug fix to CanDeserialize when using SOAP. Even when not on iOS there is a slight change in behavior to always return
true
for SOAP deserialization.The changes were ported from the runtimelab / NativeAOT branch, so there has been some usage of the changes there.