Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se enumeran las asignaciones que realiza C#/WinRT entre los tipos de Windows Runtime (WinRT) y los tipos de .NET en aplicaciones de escritorio destinadas a .NET 6 (o posterior). En estas aplicaciones, Visual Studio IntelliSense muestra el tipo .NET en lugar del tipo Windows Runtime. Por ejemplo, si un método Windows Runtime toma un parámetro de tipo IVector<string> a continuación, IntelliSense muestra un parámetro de tipo IList<string>. Del mismo modo, en un componente de WinRT creado con C#/WinRT, se usa el tipo .NET en las firmas de miembro. Cuando se usa C#/WinRT para generar un componente de Windows Runtime, el tipo de .NET se traduce en el tipo winRT correspondiente.
Las asignaciones de tipos personalizados de C#/WinRT se clasifican por tipos en el SDK de Windows o en WinUI 3 (WinUI forma parte del SDK de Aplicaciones para Windows). Los tipos de WinRT para las asignaciones del SDK de Windows residen en los espacios de nombres Windows.*, y los tipos de WinRT para las asignaciones de WinUI residen en los espacios de nombres Microsoft.UI.Xaml.*. Hay dos motivos para las asignaciones de tipos personalizados que C#/WinRT realiza para los tipos de WinRT:
Tipos de WinRT que se asignan a tipos de .NET con un nombre o espacio de nombres diferente. Estas asignaciones personalizadas son para asignar tipos de WinRT a tipos equivalentes de .NET existentes. También hay casos en los que la asignación es a un tipo diferente (por ejemplo, un tipo de valor se asigna a un tipo de clase).
Tipos de WinRT que se asignan a tipos de .NET con un nombre y espacio de nombres similares. Estas asignaciones personalizadas suelen ser por motivos de rendimiento o mejora, y se implementan directamente en C#. La mayoría de los tipos que tienen el mismo nombre de espacio de nombres y el mismo nombre de tipo en WinRT y .NET son estructuras (o tipos asociados con estructuras, como enumeraciones). En WinRT, las estructuras no tienen miembros distintos de los campos y requieren tipos auxiliares, que .NET ocultan. Las versiones .NET de estas estructuras tienen propiedades y métodos que proporcionan la funcionalidad de los tipos auxiliares ocultos (por ejemplo, Windows. Interfaz de usuario. Color).
Nota:
Para obtener una lista de las correspondencias entre los tipos de WinRT y .NET en el contexto de las aplicaciones UWP, consulte .Correspondencias .NET de los tipos de Windows Runtime.
Asignaciones para tipos de WinRT en Windows SDK
Tipos con un nombre o un espacio de nombres diferente
| Tipo o espacio de nombres de WinRT | .NET tipo/espacio de nombres |
|---|---|
| DateTime (Windows.Foundation) | DateTimeOffset (System) |
| EventHandler<T> (Windows.Foundation) | EventHandler<T> (Sistema) |
| EventRegistrationToken (Windows.Foundation) | EventRegistrationToken (WinRT) |
| HResult (Windows.Foundation) | Excepción (sistema) |
| IClosable (Windows.Foundation) | IDisposable (Sistema) |
| IReference<T> (Windows.Foundation) | Nullable<T> (System) |
| ** TimeSpan (Windows.Foundation) | TimeSpan (Sistema) |
| Uri (Windows.Foundation) | Uri (sistema) |
| 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) | Plano (System.Numerics) |
| Cuaternión (Windows. Foundation.Numerics) | Cuaternión (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) | Tipo (sistema) |
Tipos con el mismo nombre y espacio de nombres
| Tipo | Namespace |
|---|---|
| IPropertyValue | Windows.Foundation |
| IReferenceArray<T> | Windows.Foundation |
| Point | Windows.Foundation |
| Rect | Windows.Foundation |
| Tamaño | Windows.Foundation |
| Color | Windows.UI |
| TypeKind | Windows. Interfaz de usuario. Xaml.Interop |
Mapeos para tipos de WinRT en WinUI
Tipos con un nombre o un espacio de nombres diferente
| Tipo o espacio de nombres de WinRT | .NET tipo/espacio de nombres |
|---|---|
| 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 (Sistema) |
Tipos con el mismo nombre y espacio de nombres
| Tipo | Namespace |
|---|---|
| CornerRadius | Microsoft.UI.Xaml |
| Duración | Microsoft.UI.Xaml |
| TipoDeDuración | Microsoft.UI.Xaml |
| GridLength | Microsoft.UI.Xaml |
| GridUnitType | Microsoft.UI.Xaml |
| Espesor | Microsoft.UI.Xaml |
| Posición del Generador | Microsoft. Interfaz de usuario. Xaml.Controls.Primitives |
| Matrix | Microsoft. Interfaz de usuario. Xaml.Media |
| KeyTime | Microsoft. Interfaz de usuario. Xaml.Media.Animation |
| RepeatBehavior | Microsoft. Interfaz de usuario. Xaml.Media.Animation |
| RepeatBehaviorType | Microsoft. Interfaz de usuario. Xaml.Media.Animation |
| Matrix3D | Microsoft. Interfaz de usuario. Xaml.Media.Media3D |