Diferencias de API de la biblioteca de clases portable

Para que los tipos admitidos en Biblioteca de clases portable funcionen en distintas plataformas, deben hacerse algunos cambios en los tipos de .NET Framework 4. Solo percibirá estos cambios cuando trabaje en un proyecto Biblioteca de clases portable. Estos cambios corrigen las inconsistencias que hay entre las diferentes versiones de los tipos. Por ejemplo, en Silverlight, la clase System.Net.HttpWebRequest contiene una propiedad denominada SupportsCookieContainer, pero esta propiedad no existe en la clase System.Net.HttpWebRequest de .NET Framework 4. En Biblioteca de clases portable, la propiedad SupportsCookieContainer se agregó a .NET Framework para que los tipos fueran coherentes. Sin embargo, la propiedad SupportsCookieContainer no está disponible para los usuarios de .NET Framework 4 a menos que estén trabajando en un proyecto Biblioteca de clases portable. En este tema se describen los cambios que se realizaron en los tipos y miembros de .NET Framework para Biblioteca de clases portable, así como los cambios de comportamiento que podría encontrar.

Cambios en .NET Framework 4

Cuando trabaje en un proyecto Biblioteca de clases portable, encontrará que los siguientes tipos y miembros de la biblioteca de clases de .NET Framework 4 han cambiado.

System.ServiceModel.ClientBase<TChannel>.ChannelBase<T>

Este tipo se agregó a .NET Framework. Ya existía en la biblioteca de clases de Silverlight. Tiene 52 miembros. Para obtener más información, vea el tema de referencia System.ServiceModel.ClientBase<TChannel>.ChannelBase<T> en la documentación de Silverlight.

System.ServiceModel.Channels.IHttpCookieContainerManager

Este tipo se agregó a .NET Framework. Ya existía en la biblioteca de clases de Silverlight. Tiene un miembro. Para obtener más información, vea el tema de referencia System.ServiceModel.Channels.IHttpCookieContainerManager en la documentación de Silverlight.

System.Net.HttpWebRequest

Se han agregado dos nuevas propiedades a System.Net.HttpWebRequest:

Miembro

Cambios de la biblioteca de clases portable

Firma

Propiedad SupportsCookieContainer

Propiedad nueva.

public bool SupportsCookieContainer { get; }

Propiedad AllowReadStreamBuffering

Propiedad nueva.

public bool AllowReadStreamBuffering { get; set; }

System.Net.WebRequest

Se han agregado dos nuevos métodos a System.Net.WebRequest:

Miembro

Cambios de la biblioteca de clases portable

Firma

Método CreateHttp(Uri)

Método nuevo.

public HttpWebRequest CreateHttp(System.Uri requestUri)

Método CreateHttp(String)

Método nuevo.

public HttpWebRequest CreateHttp(string requestUriString)

System.Net.WebResponse

Se han agregado dos nuevos miembros a System.Net.WebResponse y se ha modificado un método.

Miembro

Cambios de la biblioteca de clases portable

Firma

Propiedad SupportsHeaders

Propiedad nueva.

public bool SupportsHeaders { get; }

Método Dispose(Boolean)

Método nuevo.

protected void Dispose(bool disposing)

Método Dispose

Cambio de firma.

Antigua: void IDisposable.Dispose()

Nueva: public void Dispose()

System.Xml.XmlReader

Se han modificado dos métodos de System.Xml.XmlReader.

Miembro

Cambios de la biblioteca de clases portable

Firma

Método Dispose

Cambio de firma.

Antigua: void IDisposable.Dispose()

Nueva: public void Dispose()

Método Close

Cambio de firma.

Antigua: public abstract Close()

Nueva: public virtual Close()

System.Xml.XmlWriter

Se han modificado dos métodos de System.Xml.XmlWriter.

Miembro

Cambios de la biblioteca de clases portable

Firma

Método Dispose

Cambio de firma.

Antigua: void IDisposable.Dispose()

Nueva: public void Dispose()

Método Close

Cambio de firma.

Antigua: public abstract Close()

Nueva: public virtual Close()

System.Xml.XmlResolver

Se ha modificado una propiedad de System.Xml.XmlResolver.

Miembro

Cambios de la biblioteca de clases portable

Firma

Propiedad Credentials

Cambio de firma.

Antigua: public abstract ICredentials Credentials { set; }

Nueva: public virtual ICredentials Credentials { set; }

Cambios de comportamiento de la API

Algunos tipos y miembros se comportan de manera diferente cuando se utilizan en un proyecto Biblioteca de clases portable.

Metadatos de tipo

Al evaluar los metadatos devueltos de los métodos y las propiedades de System.Type, el operador de igualdad puede devolver resultados diferentes en las distintas plataformas. En .NET Compact Framework, cada llamada sucesiva al método Type.GetMethod devuelve una nueva instancia de System.Reflection.MethodInfo, de modo que los valores devueltos nunca se evalúan como iguales. Sin embargo, en .NET Framework 4, al llamar a GetMethod con los mismos parámetros, se devuelve la misma instancia de MethodInfo. Debe revisar y, si es necesario, modificar el código cuando trabaje con los siguientes tipos de System.Reflection: MethodInfo, FieldInfo, PropertyInfo, EventInfo, MemberInfo, MethodBase, ConstructorInfo y ParameterInfo.

Árbol de expresión con tipos genéricos

En Windows Phone 7, se produce una excepción VerificationException cuando se crea un árbol de expresión que hace referencia a una variable local que es de un tipo genérico.

Reflexión en tipos genéricos abiertos

En Windows Phone 7, la reflexión se admite en tipos genéricos cerrados; sin embargo, la mayoría de las operaciones de reflexión no son compatibles con tipos genéricos abiertos. En tipos genéricos abiertos, solo se admiten las siguientes operaciones de reflexión para Windows Phone 7:

Para todas las demás operaciones de reflexión en tipos genéricos abiertos, se produce una excepción NotSupportedException.

Vea también

Otros recursos

Bibliotecas de clases portables

Historial de cambios

Fecha

Historial

Motivo

1 de abril de 2011

Se ha agregado más información sobre los cambios de comportamiento.

Mejora de la información.

Marzo de 2011

Se ha agregado un tema.

Mejora de la información.