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:
Recuperar un tipo o método genérico abierto llamando al método GetType o GetMethods.
Crear un tipo genérico o un método a partir de un tipo genérico o un método llamando al método MakeGenericType o MakeGenericMethod.
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. |