Partilhar via


Marshallers personalizados exigem membros adicionais

O analisador de marshaller personalizado foi alterado para exigir todos os modos de marshal focados em elementos para satisfazer as formas gerenciadas para não gerenciadas e não gerenciadas para gerenciadas.

Comportamento anterior

Marshallers personalizados com MarshalMode.ElementIn apenas um ConvertToUnmanaged método necessário. Marshallers personalizados com MarshalMode.ElementOut apenas um ConvertToManaged método necessário.

Novo comportamento

A partir do .NET 8, SYSLIB1057 é relatado para marshallers personalizados com MarshalMode.ElementIn ou MarshalMode.ElementOut que não têm um ConvertToUnmanaged e ConvertToManaged método.

Versão introduzida

.NET 8 RC 1

Tipo de mudança de rutura

Essa alteração pode afetar a compatibilidade da fonte.

Razão para a alteração

Com a introdução do COM gerado na fonte, os marshallers podem ser usados em cenários de elementos em cenários gerenciados para não gerenciados e não gerenciados para gerenciados. Essa alteração atualiza o analisador para garantir que os marshallers definidos pelo usuário tenham os membros necessários para todos os cenários em que o marshaller possa ser usado.

Adicione um ConvertToManaged e ConvertToUnmanaged método ao tipo de marshaller.

APIs afetadas