Partager via


Correspondances .NET des types WinRT en C#/WinRT

Cet article répertorie les mappages que C#/WinRT effectue entre les types Windows Runtime (WinRT) et les types .NET dans les applications de bureau qui ciblent .NET 6 (ou version ultérieure). Dans ces applications, Visual Studio IntelliSense affiche le type .NET au lieu du type Windows Runtime. Par exemple, si une méthode Windows Runtime prend un paramètre de type IVector<string>, IntelliSense affiche un paramètre de type IList<string>. De même, dans un composant WinRT créé avec C#/WinRT, vous utilisez le type .NET dans les signatures de membres. Quand vous utilisez C#/WinRT pour générer un composant Windows Runtime, le type .NET est converti dans le type WinRT correspondant.

Les mappages de types personnalisés C#/WinRT sont catégorisés par types dans le SDK Windows ou dans WinUI 3 (WinUI 3 fait partie du SDK Windows App). Les types WinRT pour les mappages du SDK Windows résident sous les espaces de noms Windows.* et les types WinRT pour les mappages WinUI 3 se trouvent sous les espaces de noms Microsoft.UI.Xaml.*. Il existe deux raisons pour lesquelles C#/WinRT effectue des mappages de types personnalisés pour les types WinRT :

  • Les types WinRT qui sont mappés à des types .NET avec un autre nom et/ou espace de noms. Ces mappages personnalisés permettent de mapper des types WinRT à des types .NET équivalents existants. Il y a également des cas où le mappage s’effectue vers un type différent (par exemple, un type de valeur est mappé à un type de classe).

  • Les types WinRT qui sont mappés à des types .NET avec le même nom et le même espace de noms. Ces mappages personnalisés sont généralement effectués pour des raisons de performance ou d’amélioration, et ils sont implémentés directement en C#. La plupart des types qui présentent le même nom d’espace de noms et le même nom de type dans WinRT et .NET sont des structures (ou des types associés à des structures, tels que les énumérations). Dans WinRT, les structures ont pour seuls membres des champs, et elles requièrent des types d’assistance, qui sont masqués par .NET. Les versions .NET de ces structures présentent des propriétés et des méthodes qui fournissent les fonctionnalités des types d’assistance masqués (par exemple, Windows.UI.Color).

Note

Pour obtenir la liste des mappages entre les types WinRT et .NET dans le contexte des applications UWP, consultez Mappages .NET de types WinRT dans UWP.

Mappages de types WinRT dans le SDK Windows

Types avec un nom et/ou un espace de noms différents

Type/espace de noms WinRT Type/espace de noms .NET
DateTime (Windows.Foundation) DateTimeOffset (System)
EventHandler<T> (Windows.Foundation) EventHandler<T> (System)
EventRegistrationToken (Windows.Foundation) EventRegistrationToken (WinRT)
HResult (Windows.Foundation) Exception (System)
IClosable (Windows.Foundation) IDisposable (System)
IReference<T> (Windows.Foundation) Nullable<T> (System)
TimeSpan (Windows.Foundation) TimeSpan (System)
Uri (Windows.Foundation) Uri (System)
IIterable<T> (Windows.Foundation.Collections) IEnumerable<T> (System.Collections.Generic)
IIterator<T> (Windows.Foundation.Collections) IEnumerator<T> (System.Collections.Generic)
IMap<K,V> (Windows.Foundation.Collections) IDictionary<TKey,TValue> (System.Collections.Generic)
IMapView<K,V> (Windows.Foundation.Collections) IReadOnlyDictionary<TKey,TValue> (System.Collections.Generic)
IKeyValuePair<K,V> (Windows.Foundation.Collections) KeyValuePair<TKey,TValue> (System.Collections.Generic)
IVector<T> (Windows.Foundation.Collections) IList<T> (System.Collections.Generic)
IVectorView<T> (Windows.Foundation.Collections) IReadOnlyList<T> (System.Collections.Generic)
AttributeTargets (Windows.Foundation.Metadata) AttributeTargets (System)
AttributeUsageAttribute (Windows.Foundation.Metadata) AttributeUsageAttribute (System)
Matrix3x2 (Windows.Foundation.Numerics) Matrix3x2 (System.Numerics)
Matrix4x4 (Windows.Foundation.Numerics) Matrix4x4 (System.Numerics)
Plane (Windows.Foundation.Numerics) Plane (System.Numerics)
Quaternion (Windows.Foundation.Numerics) Quaternion (System.Numerics)
Vector2 (Windows.Foundation.Numerics) Vector2 (System.Numerics)
Vector3 (Windows.Foundation.Numerics) Vector3 (System.Numerics)
Vector4 (Windows.Foundation.Numerics) Vector4 (System.Numerics)
IBindableIterable (Windows.UI.Xaml.Interop) IEnumerable (System.Collections)
IBindableVector (Windows.UI.Xaml.Interop) IList (System.Collections)
TypeName (Windows.UI.Xaml.Interop) Type (System)

Types avec les mêmes nom et espace de noms

Type Espace de noms
IPropertyValue Windows.Foundation
IReferenceArray<T> Windows.Foundation
Point Windows.Foundation
Rect Windows.Foundation
Size Windows.Foundation
Couleur Windows.UI
TypeKind Windows.UI.Xaml.Interop

Mappages de types WinRT dans WinUI

Types avec un nom et/ou un espace de noms différents

Type/espace de noms WinRT Type/espace de noms .NET
INotifyCollectionChanged (Microsoft.UI.Xaml.Data) INotifyCollectionChanged (System.Collections.Specialized)
NotifyCollectionChangedEventHandler (Microsoft.UI.Xaml.Data) NotifyCollectionChangedEventHandler (System.Collections.Specialized)
NotifyCollectionChangedEventArgs (Microsoft.UI.Xaml.Data) NotifyCollectionChangedEventArgs (System.Collections.Specialized)
NotifyCollectionChangedAction (Microsoft.UI.Xaml.Data) NotifyCollectionChangedAction (System.Collections.Specialized)
DataErrorsChangedEventArgs (Microsoft.UI.Xaml.Data) DataErrorsChangedEventArgs (System.ComponentModel)
INotifyDataErrorInfo (Microsoft.UI.Xaml.Data) INotifyDataErrorInfo (System.ComponentModel)
INotifyPropertyChanged (Microsoft.UI.Xaml.Data) INotifyPropertyChanged (System.ComponentModel)
PropertyChangedEventHandler (Microsoft.UI.Xaml.Data) PropertyChangedEventHandler (System.ComponentModel)
PropertyChangedEventArgs (Microsoft.UI.Xaml.Data) PropertyChangedEventArgs (System.ComponentModel)
ICommand (Microsoft.UI.Xaml.Input) ICommand (System.Windows.Input)
IXamlServiceProvider (Microsoft.UI.Xaml) IServiceProvider (System)

Types avec les mêmes nom et espace de noms

Type Espace de noms
CornerRadius Microsoft.UI.Xaml
Duration Microsoft.UI.Xaml
DurationType Microsoft.UI.Xaml
GridLength Microsoft.UI.Xaml
GridUnitType Microsoft.UI.Xaml
Thickness Microsoft.UI.Xaml
GeneratorPosition Microsoft.UI.Xaml.Controls.Primitives
Matrice Microsoft.UI.Xaml.Media
KeyTime Microsoft.UI.Xaml.Media.Animation
RepeatBehavior Microsoft.UI.Xaml.Media.Animation
RepeatBehaviorType Microsoft.UI.Xaml.Media.Animation
Matrix3D (Microsoft.UI.Xaml.Media.Media3D