CreateObjectFlags.Unwrap entpackt nur Wrapper auf Zielinstanz
Wenn Sie bisher GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) für eine ComWrappers-Instanz mit dem CreateObjectFlags.Unwrap-Flag aufgerufen haben, wurde ein Wrapper eines verwalteten Objekts aus einer beliebigenComWrappers-Instanz entpackt. Wenn das Flag nun angegeben wird, werden nur Wrapper aus der ComWrappers-Instanz entpackt, für die GetOrCreateObjectFromComInstance
aufgerufen wurde.
Das Unwrap-Flag war die einzige API, die mehrere ComWrappers-Instanzen erreichen konnte, daher war ihr Verhalten nicht kontraintuitiv. Darüber hinaus ist die neue ComWrappers.TryGetObject(IntPtr, Object)-API verfügbar, um ein COM-Objekt aus einer beliebigen ComWrappers-Instanz zu entpacken.
Vorheriges Verhalten
Beim Aufruf von GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) für eine ComWrappers-Instanz mit dem CreateObjectFlags.Unwrap-Flag wird ein Wrapper für ein verwaltetes Objekt aus einer beliebigen ComWrappers-Instanz entpackt.
Neues Verhalten
Durch Aufrufen von GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) für eine ComWrappers-Instanz mit dem CreateObjectFlags.Unwrap-Flag wird lediglich ein Wrapper für verwaltete Objekte aus der ComWrappers-Instanz entpackt, für die GetOrCreateObjectForComInstance
aufgerufen wurde. Wenn ein Wrapper aus einer anderen ComWrappers-Instanz zur Verfügung gestellt wird, erstellt die ComWrappers
-Instanz einen neuen Wrapper.
Eingeführt in Version
.NET 8 Vorschauversion 5
Typ des Breaking Changes
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Das vorherige Verhalten war kontraintuitiv. Außerdem wurde die Kapselung über Bord geworfen, bei der Entwickler durch Verwenden ihrer eigenen benutzerdefinierten ComWrappers-Instanzen bestimmen können, wie COM-Interoperabilität für ihren Code funktioniert.
Empfohlene Maßnahme
Wenn Sie das vorherige Verhalten beibehalten möchten, rufen Sie ComWrappers.TryGetObject(IntPtr, Object) vor GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) auf.
Betroffene APIs
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für