Entschärfung: Benutzerdefinierte IMessageFilter.PreFilterMessage-ImplementierungenMitigation: Custom IMessageFilter.PreFilterMessage Implementations

In Windows Forms-Apps für Versionen des .NET Frameworks ab .NET Framework 4.6.1.NET Framework 4.6.1 kann eine benutzerdefinierte IMessageFilter.PreFilterMessage-Implementierung Meldungen beim Aufruf der Application.FilterMessage-Methode sicher filtern, wenn die IMessageFilter.PreFilterMessage-Implementierung:In Windows Forms apps that target versions of the .NET Framework starting with the .NET Framework 4.6.1.NET Framework 4.6.1, a custom IMessageFilter.PreFilterMessage implementation can safely filter messages when the Application.FilterMessage method is called if the IMessageFilter.PreFilterMessage implementation:

AuswirkungenImpact

Diese Änderung betrifft nur Windows Forms-Apps, die auf Versionen von .NET Framework ausgerichtet sind, die mit .NET Framework 4.6.1.NET Framework 4.6.1 beginnen.This change only affects Windows Forms apps that target versions of the .NET Framework starting with the .NET Framework 4.6.1.NET Framework 4.6.1.

Für Windows Forms-Apps, die auf vorherige Versionen von .NET Framework ausgerichtet sind, lösen solche Implementierungen in einigen Fällen beim Aufrufen der Application.FilterMessage-Methode eine IndexOutOfRangeException-Ausnahme aus.For Windows Forms apps that target previous versions of the .NET Framework, such implementations in some cases throw an IndexOutOfRangeException exception when the Application.FilterMessage method is called

ProblemumgehungMitigation

Ist diese Änderung nicht erwünscht, kann sie für Apps, die für .NET Framework 4.6.1.NET Framework 4.6.1 oder höhere Versionen vorgesehen sind, abgelehnt werden. Dazu muss dem <runtime>-Abschnitt der Konfigurationsdatei der App die folgende Konfigurationseinstellung hinzugefügt werden:If this change is undesirable, apps that target the .NET Framework 4.6.1.NET Framework 4.6.1 or a later version can opt out of it by adding the following configuration setting to the <runtime> section of the app’s configuration file:

<runtime>  
    <AppContextSwitchOverrides value="Switch.System.Windows.Forms.DontSupportReentrantFilterMessage=true" />   
</runtime>  

Für Apps, die für frühere Versionen von .NET Framework vorgesehen sind, aber unter .NET Framework 4.6.1.NET Framework 4.6.1 oder einer höheren Version ausgeführt werden, kann dieses Verhalten übernommen werden, indem dem <runtime>-Abschnitt der Konfigurationsdatei der Anwendung die folgende Konfigurationseinstellung hinzugefügt wird:In addition, apps that target previous versions of the .NET Framework but are running under the .NET Framework 4.6.1.NET Framework 4.6.1 or a later version can opt in to this behavior by adding the following configuration setting to the <runtime> section of the app’s configuration file:

<runtime>  
    <AppContextSwitchOverrides value="Switch.System.Windows.Forms.DontSupportReentrantFilterMessage=false" />   
</runtime>  

Siehe auchSee Also

NeuausrichtungsänderungenRetargeting Changes