diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs index d6bb34101004809994c32dd157ffa90d4b967db4..b37f11ea941cf3378c92724a79e6b3c5fd4e27f6 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs @@ -559,7 +559,12 @@ internal MemberAccessor MemberAccessorStrategy { if (_memberAccessorStrategy == null) { -#if NETFRAMEWORK || NETCOREAPP +#if NETCOREAPP + // if dynamic code isn't supported, fallback to reflection + _memberAccessorStrategy = RuntimeFeature.IsDynamicCodeSupported ? + new ReflectionEmitMemberAccessor() : + new ReflectionMemberAccessor(); +#elif NETFRAMEWORK _memberAccessorStrategy = new ReflectionEmitMemberAccessor(); #else _memberAccessorStrategy = new ReflectionMemberAccessor();