Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Auparavant, si vous appeliez GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) sur une instance de ComWrappers avec l’indicateur CreateObjectFlags.Unwrap, un wrapper d’objet managé n’a pas été décompressé à partir de n’importe quelle instance de ComWrappers . Désormais, quand l’indicateur est spécifié, seuls les wrappers de l’instance ComWrappers dans laquelle GetOrCreateObjectFromComInstance
a été appelé sont désenveloppés.
L’indicateur Unwrap était la seule API atteignant « plusieurs » instances ComWrappers, son comportement n’était donc pas intuitif. En outre, la nouvelle API ComWrappers.TryGetObject(IntPtr, Object) est disponible pour désenvelopper un objet COM à partir de l’instance ComWrappers de votre choix.
L’appel GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) sur une instance ComWrappers avec l’indicateur CreateObjectFlags.Unwrap désenveloppait un wrapper d’objet managé à partir de l’instance ComWrappers de votre choix.
L’appel GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags) sur une instance ComWrappers avec l’indicateur CreateObjectFlags.Unwrap désenveloppe uniquement un wrapper d’objet managé à partir de l’instance ComWrappers sur laquelle GetOrCreateObjectForComInstance
est appelé. Si elle reçoit un wrapper à partir d’une autre instance ComWrappers, l’instance ComWrappers
crée un nouveau wrapper.
.NET 8 Preview 5
Ce changement est un changement de comportement.
Le comportement précédent n’était pas intuitif. Il interrompait également l’expérience d’encapsulation dans laquelle les développeurs peuvent définir le fonctionnement de l’interopérabilité COM pour leur code à l’aide de leurs propres instances ComWrappers personnalisées.
Si vous souhaitez conserver le comportement précédent, appelez ComWrappers.TryGetObject(IntPtr, Object) avant d’appeler GetOrCreateObjectForComInstance(IntPtr, CreateObjectFlags).
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantDocumentation
Modification majeure : les types SafeHandle doivent avoir un constructeur public - .NET
Découvrez la modification majeure de l’interopérabilité dans .NET 8 où les types dérivés de SafeHandle utilisés comme paramètres « ref » ou « out » ou comme types de retour dans les méthodes « LibraryImport » ou « GeneratedComInterface » doivent avoir un constructeur public.
Changement cassant : les marshalleurs personnalisés nécessitent des membres supplémentaires - .NET
Découvrez le changement cassant dans l’interopérabilité dans .NET 8 où les marshalleurs personnalisés avec MarshalMode.ElementIn ou MarshalMode.ElementOut doivent désormais avoir des formes managées à non managées et non managées.
Changement cassant : IntPtr n’est plus utilisé pour les types de pointeur de fonction - .NET
Découvrez un changement cassant dans le kit SDK .NET 8, où System.Reflection utilise une instance de System.Type pour représenter un pointeur de fonction.