You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dotnet interactive multiemit**+** previously made the backing fields for records, unions, E.t.c public, whereas multiemit**-** makes them internal.
Some poorly written serializers, include public fields specified with a CompilerGeneratedAttribute in the serialization stream.
This means that multiemit**-** has become a work around in scenarios that rely on fsi and serialization using these types of serializers.
This PR fixes the problem by correctly specifying fields as Private (actually internal). As implementation details they are also internal when compiled with realsig**+**
I believe the original reason for making the backing field public was so that fsi could reliably access it from multi-emit assemblies. Due to implementation issues there was previously a limit of 30 internal visible following assemblies. Now that it has been corrected, all multi-emit assemblies in a session have internals visible so, making the fields internal should work correctly.
dotnet interactive multiemit**+** previously made the backing fields for records, unions, E.t.c public, whereas multiemit**-** makes them internal.
Some poorly written serializers, include public fields specified with a CompilerGeneratedAttribute in the serialization stream.
This means that multiemit**-** has become a work around in scenarios that rely on fsi and serialization using these types of serializers.
This PR fixes the problem by correctly specifying fields as Private (actually internal). As implementation details they are also internal when compiled with realsig**+**
I believe the original reason for making the backing field public was so that fsi could reliably access it from multi-emit assemblies. Due to implementation issues there was previously a limit of 30 internal visible following assemblies. Now that it has been corrected, all multi-emit assemblies in a session have internals visible so, making the fields internal should work correctly.
Background:
@Szer
#17308 (comment)
The text was updated successfully, but these errors were encountered: