Mapping .NET dei tipi WinRT in C#/WinRT
Questo articolo riporta i mapping che C#/WinRT crea tra i tipi Windows Runtime (WinRT) e i tipi .NET nelle app desktop destinate a .NET 6 (o versione successiva). In queste app, Visual Studio IntelliSense mostra il tipo .NET anziché il tipo Windows Runtime. Ad esempio, se un metodo Windows Runtime accetta un parametro di tipo IVector<stringa>, IntelliSense mostra un parametro di tipo IList<stringa>. Analogamente, in un componente WinRT creato con C#/WinRT, si usa il tipo .NET nelle firme dei membri. Quando si usa C#/WinRT per generare un componente Windows Runtime, il tipo .NET viene convertito nel tipo WinRT corrispondente.
I mapping dei tipi personalizzati C#/WinRT sono classificati in base ai tipi in Windows SDK o in WinUI 3 (WinUI 3 fa parte di SDK per app di Windows). I tipi WinRT per i mapping di Windows SDK sono disponibili negli spazi dei nomi Windows.* e i tipi WinRT per i mapping WinUI 3 sono disponibili negli spazi dei nomi Microsoft.UI.Xaml.*. Esistono due motivi per i mapping dei tipi personalizzati creati da C#/WinRT per i tipi WinRT:
Tipi di WinRT di cui viene eseguito il mapping a tipi di .NET con un nome e/o uno spazio dei nomi diverso. Questi mapping personalizzati riguardano il mapping dei tipi WinRT ai tipi equivalenti .NET esistenti. Esistono anche casi in cui il mapping viene eseguito a un tipo diverso, ad esempio un tipo valore è mappato a un tipo di classe.
Tipi di WinRT di cui viene eseguito il mapping a tipi di .NET con lo stesso nome e spazio dei nomi. Questi mapping personalizzati sono in genere per motivi di prestazioni o miglioramento e vengono implementati direttamente in C#. La maggior parte dei tipi con lo stesso nome di spazio dei nomi e di tipo in WinRT e .NET sono strutture oppure o tipi associati a strutture, come le enumerazioni. In WinRT, le strutture non hanno altri membri oltre i campi e richiedono tipi di helper che .NET nasconde. Le versioni di .NET di queste strutture hanno proprietà e metodi che forniscono le funzionalità dei tipi di helper nascosti (ad esempio Windows.UI.Color).
Nota
Per un elenco dei mapping tra tipi WinRT e .NET nel contesto delle app UWP, vedere mapping .NET dei tipi WinRT in UWP.
Mapping per i tipi WinRT in Windows SDK
Tipi con un nome e/o uno spazio dei nomi diversi
Tipo/spazio dei nomi di WinRT | Tipo/spazio dei nomi di .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) |
Tipi con lo stesso nome e lo stesso spazio dei nomi
Tipo | Spazio dei nomi |
---|---|
IPropertyValue | Windows.Foundation |
IReferenceArray<T> | Windows.Foundation |
Point | Windows.Foundation |
Rect | Windows.Foundation |
Dimensione | Windows.Foundation |
Color | Windows.UI |
TypeKind | Windows.UI.Xaml.Interop |
Mappings for WinRT types in WinUI
Tipi con un nome e/o uno spazio dei nomi diversi
Tipo/spazio dei nomi di WinRT | Tipo/spazio dei nomi di .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) |
Tipi con lo stesso nome e lo stesso spazio dei nomi
Tipo | Spazio dei nomi |
---|---|
CornerRadius | Microsoft.UI.Xaml |
Durata | 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 |
Con 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 |