Condividi tramite


Differenze tra API nella libreria di classi portabile

Per fare in modo che i tipi supportati in Libreria di classi portabile funzionino su piattaforme diverse, sono state apportate alcune modifiche ai tipi in .NET Framework 4. Queste modifiche verranno rilevate solo mentre si sta lavorando in un progetto Libreria di classi portabile. Queste modifiche hanno corretto delle incoerenze tra le diverse versioni dei tipi. Ad esempio, in Silverlight, la classe System.Net.HttpWebRequest contiene una proprietà denominata SupportsCookieContainer, ma questa proprietà non esiste nella classe System.Net.HttpWebRequest in .NET Framework 4. Per Libreria di classi portabile, la proprietà SupportsCookieContainer è stata aggiunta a .NET Framework per rendere coerenti i tipi. Tuttavia, la proprietà SupportsCookieContainer non è disponibile agli utenti di .NET Framework 4 a meno che non stiano funzionando in un progetto Libreria di classi portabile. Questo argomento descrive le modifiche apportate a tipi e membri in .NET Framework per Libreria di classi portabile e le modifiche comportamentali che è possibile rilevare.

Modifiche a .NET Framework 4

Quando si lavora in un progetto Libreria di classi portabile, si incontrano i seguenti tipi e membri modificati nella libreria di classi .NET Framework 4.

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

Questo tipo è stato aggiunto a .NET Framework. Già esisteva nella libreria di classi Silverlight. Dispone di 52 membri. Per ulteriori informazioni, vedere l'argomento di riferimento System.ServiceModel.ClientBase<TChannel>.ChannelBase<T> nella documentazione Silverlight.

System.ServiceModel.Channels.IHttpCookieContainerManager

Questo tipo è stato aggiunto a .NET Framework. Già esisteva nella libreria di classi Silverlight. Dispone di 1 membro. Per ulteriori informazioni, vedere l'argomento di riferimento System.ServiceModel.Channels.IHttpCookieContainerManager nella documentazione Silverlight.

System.Net.HttpWebRequest

Due nuove proprietà sono state aggiunte a System.Net.HttpWebRequest:

Membro

Modifiche per la libreria di classi portabile

Signature

Proprietà SupportsCookieContainer

Nuova proprietà.

public bool SupportsCookieContainer { get; }

Proprietà AllowReadStreamBuffering

Nuova proprietà.

public bool AllowReadStreamBuffering { get; set; }

System.Net.WebRequest

Due nuovi metodi sono stati aggiunti a System.Net.WebRequest:

Membro

Modifiche per la libreria di classi portabile

Signature

Metodo CreateHttp(Uri)

Nuovo metodo.

public HttpWebRequest CreateHttp(System.Uri requestUri)

Metodo CreateHttp(String)

Nuovo metodo.

public HttpWebRequest CreateHttp(string requestUriString)

System.Net.WebResponse

Due nuovi membri sono stati aggiunti a System.Net.WebResponse ed è stato modificato un metodo.

Membro

Modifiche per la libreria di classi portabile

Signature

Proprietà SupportsHeaders

Nuova proprietà.

public bool SupportsHeaders { get; }

Metodo Dispose(Boolean)

Nuovo metodo.

protected void Dispose(bool disposing)

Metodo Dispose

Modifica della firma.

Precedente: void IDisposable.Dispose()

Nuova: public void Dispose()

System.Xml.XmlReader

Due metodi sono stati modificati in System.Xml.XmlReader.

Membro

Modifiche per la libreria di classi portabile

Signature

Metodo Dispose

Modifica della firma.

Precedente: void IDisposable.Dispose()

Nuova: public void Dispose()

Metodo Close

Modifica della firma.

Precedente: public abstract Close()

Nuova: public virtual Close()

System.Xml.XmlWriter

Due metodi sono stati modificati in System.Xml.XmlWriter.

Membro

Modifiche per la libreria di classi portabile

Signature

Metodo Dispose

Modifica della firma.

Precedente: void IDisposable.Dispose()

Nuova: public void Dispose()

Metodo Close

Modifica della firma.

Precedente: public abstract Close()

Nuova: public virtual Close()

System.Xml.XmlResolver

Una proprietà è stata modificata in System.Xml.XmlResolver.

Membro

Modifiche per la libreria di classi portabile

Signature

Proprietà Credentials

Modifica della firma.

Precedente: public abstract ICredentials Credentials { set; }

Nuova: public virtual ICredentials Credentials { set; }

Modifiche comportamentali nell'API

Alcuni tipi e membri si comportano in modo diverso quando sono utilizzati in un progetto Libreria di classi portabile.

Metadati dal tipo

In caso di valutazione di metadati restituiti da metodi e proprietà System.Type, è possibile che l'operatore di uguaglianza restituisca risultati diversi sulle piattaforme diverse. In .NET Compact Framework, ogni chiamata successiva al metodo Type.GetMethod restituisce una nuova istanza di System.Reflection.MethodInfo, pertanto i valori restituiti non sono valutati mai come uguali. Tuttavia, in .NET Framework 4, chiamando GetMethod con gli stessi parametri, viene restituita la stessa istanza di MethodInfo. È necessario rivedere ed eventualmente modificare il codice quando si lavora con i seguenti tipi System.Reflection: MethodInfo, FieldInfo, PropertyInfo, EventInfo, MemberInfo, MethodBase, ConstructorInfoe ParameterInfo.

Struttura ad albero delle espressioni con tipi generici

In Windows Phone 7 viene generata un'eccezione VerificationException quando si crea una struttura ad albero delle espressioni che fa riferimento a una variabile locale di tipo generico.

Reflection nei tipi generici aperti

In Windows Phone 7 la reflection è supportata nei tipi generici chiusi. La maggior parte delle operazioni di reflection non è tuttavia supportata nei tipi generici aperti. Nei tipi generici aperti, sono supportate solo le operazioni di reflection seguenti per Windows Phone 7:

Per tutte le altre operazioni di reflection nei tipi generici aperti, viene generata un'eccezione NotSupportedException.

Vedere anche

Altre risorse

Librerie di classi portabili

Cronologia delle modifiche

Data

Cronologia

Motivo

Aprile 2011

Aggiunta di informazioni sulle modifiche del comportamento.

Miglioramento delle informazioni.

Marzo 2011

Argomento aggiunto.

Miglioramento delle informazioni.