CreateObjectFlags.Unwrap annulla il ritorno a capo solo nell'istanza di destinazione
In precedenza, se è stato chiamato GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) in un'istanza di ComWrappers con il flag CreateObjectFlags.Unwrap, a un wrapper dell'oggetto gestito è stato rimosso il wrapping da qualsiasi istanza di ComWrappers. Quando viene specificato il flag, viene annullato il ritorno a capo solo dei wrapper dall’istanza ComWrappers chiamata da GetOrCreateObjectFromComInstance
.
Il flag di Unwrap è l'unica API che ha raggiunto le istanze di ComWrappers in modo che il comportamento non fosse intuitivo. Inoltre, la nuova API ComWrappers.TryGetObject(IntPtr, Object) è disponibile per annullare il wrapping di un oggetto COM da qualsiasi istanza di ComWrappers.
Comportamento precedente
La chiamata di GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) in un'istanza di ComWrappers con il flag CreateObjectFlags.Unwrap annulla il wrapping di un wrapper di oggetti gestito da qualsiasi istanza di ComWrappers.
Nuovo comportamento
La chiamata GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) a un'istanza ComWrappers con il CreateObjectFlags.Unwrap flag annulla solo il wrapping di un wrapper di oggetto gestito dall'istanza ComWrappers di cui GetOrCreateObjectForComInstance
è stato chiamato. Se viene specificato un wrapper da un'istanza ComWrappers diversa, l'istanza ComWrappers
crea un nuovo wrapper.
Versione introdotta
.NET 8 anteprima 5
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Il comportamento precedente non era intuitivo. Ha anche interrotto l'esperienza di incapsulamento in cui gli sviluppatori possono definire il funzionamento dell'interoperabilità COM per il codice usando le proprie istanze personalizzate ComWrappers.
Azione consigliata
Se si vuole mantenere il comportamento precedente, chiamare ComWrappers.TryGetObject(IntPtr, Object) prima di chiamare GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).