Asignaciones de .NET de tipo WinRT en C#/WinRT

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