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:
Recupero di un metodo o un tipo generico aperto chiamando il metodo GetMethods o GetType.
Creazione di un metodo o un tipo generico da un metodo o un tipo generico aperto chiamando il metodo MakeGenericType o MakeGenericMethod.
Per tutte le altre operazioni di reflection nei tipi generici aperti, viene generata un'eccezione NotSupportedException.
Vedere anche
Altre risorse
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. |