Compartilhar via


O suporte a IMsoComponent é opcional

Uma alteração foi feita para evitar que os threads do Windows Forms sempre se registrem em instâncias do IMsoComponentManager existentes. No entanto, você pode aceitar o registro de instâncias IMsoComponentManager existentes em seus threads do Windows Forms.

Versão introduzida

.NET 9 versão prévia 2

Comportamento anterior

Anteriormente, os threads do Windows Forms sempre eram registrados em instâncias IMsoComponentManager existentes.

Novo comportamento

A partir do .NET 9, os threads do Windows Forms não se integram automaticamente ao IMsoComponentManagers registrado em processo. Para recuperar o comportamento anterior, defina a opção Switch.System.Windows.Forms.EnableMsoComponentManager.

Categoria da alteração

Esta é uma alteração de comportamento.

Motivo da alteração

Essa mudança foi feita por desempenho e eficiência. O comportamento anterior apresentava muita sobrecarga, pois usava COM, e nem todos os desenvolvedores precisam desse comportamento.

Se você quiser reverter para o comportamento anterior, poderá optar por oferecer suporte ao IMsoComponent usando uma opção no arquivo runtimeconfig.json ou como um item RuntimeHostConfigurationOption no arquivo de projeto.

Arquivo runtimeconfig.json:

{
  "configProperties": {
    "Switch.System.Windows.Forms.EnableMsoComponentManager": true
 }
}

Arquivo de projeto:

<ItemGroup>
  <RuntimeHostConfigurationOption Include="Switch.System.Windows.Forms.EnableMsoComponentManager" Value="true" />
</ItemGroup>

APIs afetadas