Compartir a través de


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

En este artículo se enumeran las asignaciones que C#/WinRT realiza entre los tipos de Windows Runtime (WinRT) y los de .NET en aplicaciones de escritorio destinadas a .NET 6 (o posterior). En estas aplicaciones, Visual Studio IntelliSense muestra el tipo de .NET en lugar del tipo Windows Runtime. Por ejemplo, si un método de Windows Runtime toma un parámetro de tipo IVector<string>, IntelliSense muestra un parámetro de tipo IList<string>. De forma similar, en un componente de WinRT que se ha escrito con C#/WinRT, se usa el tipo de .NET en las firmas de miembro. Cuando se usa C#/WinRT para generar un componente de Windows Runtime, el tipo de .NET se traduce al tipo de WinRT correspondiente.

Las asignaciones de tipos personalizados de C#/WinRT se clasifican por tipos en el SDK de Windows o en WinUI 3 (WinUI 3 forma parte del SDK de Aplicaciones para Windows). Los tipos de WinRT para las asignaciones de Windows SDK se encuentran en los espacios de nombres Windows.*, y los tipos de WinRT para las asignaciones de WinUI 3 se encuentran 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 que no sean campos y requieren tipos de asistentes, que .NET oculta. Las versiones de .NET Framework de estas estructuras tienen propiedades y métodos que proporcionan la funcionalidad de los tipos de ayuda escondida. (por ejemplo, Windows.UI.Color).

Nota:

Para obtener una lista de asignaciones entre los tipos de WinRT y .NET en el contexto de las aplicaciones para UWP, consulte Asignaciones de .NET para tipos de WinRT en UWP.

Asignaciones para tipos de WinRT en Windows SDK

Tipos con un nombre o un espacio de nombres diferentes

Tipo o espacio de nombres de WinRT Tipo o espacio de nombres de .NET
DateTime (Windows.Foundation) DateTimeOffset (Sistema)
EventHandler<T> (Windows.Foundation) EventHandler<T> (Sistema)
EventRegistrationToken (Windows.Foundation) EventRegistrationToken (WinRT)
HResult     (Windows.Foundation) Exception     (Sistema)
IClosable     (Windows.Foundation) IDisposable     (Sistema)
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)

Tipos con el mismo nombre y espacio de nombres

Tipo Espacio de nombres
IPropertyValue Windows.Foundation
IReferenceArray<T> Windows.Foundation
Punto Windows.Foundation
Rect Windows.Foundation
Size Windows.Foundation
Color Windows.UI
TypeKind Windows.UI.Xaml.Interop

Asignaciones para tipos de WinRT en WinUI

Tipos con un nombre o un espacio de nombres diferentes

Tipo o espacio de nombres de WinRT Tipo o espacio de nombres de .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)

Tipos con el mismo nombre y espacio de nombres

Tipo Espacio de nombres
CornerRadius Microsoft.UI.Xaml
Duración 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
Matriz 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