Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The custom marshaller analyzer has changed to require all element-focused marshal modes to satisfy both the managed-to-unmanaged and unmanaged-to-managed shapes.
Previous behavior
Custom marshallers with MarshalMode.ElementIn
only needed a ConvertToUnmanaged
method. Custom marshallers with MarshalMode.ElementOut
only needed a ConvertToManaged
method.
New behavior
Starting in .NET 8, SYSLIB1057 is reported for custom marshallers with MarshalMode.ElementIn
or MarshalMode.ElementOut
that don't have both a ConvertToUnmanaged
and ConvertToManaged
method.
Version introduced
.NET 8 RC 1
Type of breaking change
This change can affect source compatibility.
Reason for change
With the introduction of source-generated COM, the marshallers can be used in element scenarios in both managed-to-unmanaged and unmanaged-to-managed scenarios. This change updates the analyzer to ensure that user-defined marshallers have the required members for all scenarios where the marshaller might be used.
Recommended action
Add both a ConvertToManaged
and ConvertToUnmanaged
method to the marshaller type.