diff --git a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs index 71f4530f4f3d17..72229faaf8d3cb 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs +++ b/src/libraries/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs @@ -38,7 +38,7 @@ public sealed class DataContractSerializer : XmlObjectSerializer private static bool _optionAlreadySet; internal static SerializationOption Option { - get { return _option; } + get { return RuntimeFeature.IsDynamicCodeSupported ? _option : SerializationOption.ReflectionOnly; } set { if (_optionAlreadySet) diff --git a/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/Program.cs b/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/Program.cs new file mode 100644 index 00000000000000..884dfa7ae893b5 --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/Program.cs @@ -0,0 +1,30 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Runtime.Serialization; +using System.Threading; +using System.Threading.Tasks; +using System.Xml; + +public static class Program +{ + [DllImport("__Internal")] + public static extern void mono_ios_set_summary (string value); + + public static async Task Main(string[] args) + { + mono_ios_set_summary($"Starting functional test"); + + var ds = new DataContractSerializer (typeof (IEnumerable)); + using (var xw = XmlWriter.Create (System.IO.Stream.Null)) + ds.WriteObject (xw, new int [] { 1, 2, 3 }); + + Console.WriteLine("Done!"); + await Task.Delay(5000); + + return 42; + } +} diff --git a/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/iOS.Simulator.XmlFormatWriterGeneratorAot.Test.csproj b/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/iOS.Simulator.XmlFormatWriterGeneratorAot.Test.csproj new file mode 100644 index 00000000000000..f0a56aa7fdf057 --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Simulator/XmlFormatWriterGeneratorAOT/iOS.Simulator.XmlFormatWriterGeneratorAot.Test.csproj @@ -0,0 +1,19 @@ + + + + Exe + false + true + true + $(NetCoreAppCurrent) + iOSSimulator + iOS.Simulator.XmlFormatWriterGeneratorAot.Test.dll + false + 42 + true + + + + + +