Differences API dans la bibliothèque de classes portable

Pour faire fonctionner les types pris en charge dans le Bibliothèque de classes portable sur des plateformes différentes, certaines modifications ont été apportées aux types dans le .NET Framework 4. Vous rencontrerez ces modifications uniquement lorsque vous travaillerez dans un projet Bibliothèque de classes portable. Ces modifications ont corrigé des incohérences entre les différentes versions finales des types. Par exemple, dans Silverlight, la classe System.Net.HttpWebRequest contient une propriété nommée SupportsCookieContainer, mais cette propriété n'existait pas dans la classe System.Net.HttpWebRequest dans le .NET Framework 4. Pour le Bibliothèque de classes portable, la propriété SupportsCookieContainer a été ajoutée au .NET Framework pour rendre les types cohérents. Toutefois, la propriété SupportsCookieContainer n'est pas disponible pour les utilisateurs de .NET Framework 4, sauf s'ils travaillent dans un projet Bibliothèque de classes portable. Cette rubrique décrit les modifications apportées aux types et membres dans le .NET Framework pour le Bibliothèque de classes portable et les changements de comportement que vous pouvez rencontrer.

Modifications de .NET Framework 4

Lorsque vous travaillez dans un projet Bibliothèque de classes portable, vous rencontrerez les types et membres modifiés suivants dans la bibliothèque de classes de .NET Framework 4.

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

Ce type a été ajouté au .NET Framework. Il existait déjà dans la bibliothèque de classes Silverlight. Il possède 52 membres. Pour plus d'informations, consultez la rubrique de référence System.ServiceModel.ClientBase<TChannel>.ChannelBase<T> dans la documentation Silverlight.

System.ServiceModel.Channels.IHttpCookieContainerManager

Ce type a été ajouté au .NET Framework. Il existait déjà dans la bibliothèque de classes Silverlight. Il possède 1 membre. Pour plus d'informations, consultez la rubrique de référence System.ServiceModel.Channels.IHttpCookieContainerManager dans la documentation Silverlight.

System.Net.HttpWebRequest

Deux nouvelles propriétés ont été ajoutées à System.Net.HttpWebRequest :

Membre

Modifications pour la bibliothèque de classes portable

Signature

Propriété SupportsCookieContainer

Nouvelle propriété.

public bool SupportsCookieContainer { get; }

Propriété AllowReadStreamBuffering

Nouvelle propriété.

public bool AllowReadStreamBuffering { get; set; }

System.Net.WebRequest

Deux nouvelles méthodes ont été ajoutées à System.Net.WebRequest :

Membre

Modifications pour la bibliothèque de classes portable

Signature

Méthode CreateHttp(Uri)

Nouvelle méthode.

public HttpWebRequest CreateHttp(System.Uri requestUri)

Méthode CreateHttp(String)

Nouvelle méthode.

public HttpWebRequest CreateHttp(string requestUriString)

System.Net.WebResponse

Deux nouveaux membres ont été ajoutés à System.Net.WebResponse et une méthode a été modifiée.

Membre

Modifications pour la bibliothèque de classes portable

Signature

Propriété SupportsHeaders

Nouvelle propriété.

public bool SupportsHeaders { get; }

Méthode Dispose(Boolean)

Nouvelle méthode.

protected void Dispose(bool disposing)

Méthode Dispose

Modification de signature.

Ancien : void IDisposable.Dispose()

Nouveau : public void Dispose()

System.Xml.XmlReader

Deux méthodes ont été modifiées dans System.Xml.XmlReader.

Membre

Modifications pour la bibliothèque de classes portable

Signature

Méthode Dispose

Modification de signature.

Ancien : void IDisposable.Dispose()

Nouveau : public void Dispose()

Méthode Close

Modification de signature.

Ancien : public abstract Close()

Nouveau : public virtual Close()

System.Xml.XmlWriter

Deux méthodes ont été modifiées dans System.Xml.XmlWriter.

Membre

Modifications pour la bibliothèque de classes portable

Signature

Méthode Dispose

Modification de signature.

Ancien : void IDisposable.Dispose()

Nouveau : public void Dispose()

Méthode Close

Modification de signature.

Ancien : public abstract Close()

Nouveau : public virtual Close()

System.Xml.XmlResolver

Une propriété a été modifiée dans System.Xml.XmlResolver.

Membre

Modifications pour la bibliothèque de classes portable

Signature

Propriété Credentials

Modification de signature.

Ancien : public abstract ICredentials Credentials { set; }

Nouveau : public virtual ICredentials Credentials { set; }

Changements de comportement dans l'API

Certains types et membres se comportent différemment lorsqu'ils sont utilisés dans un projet Bibliothèque de classes portable.

Métadonnées de type

Lors de l'évaluation des métadonnées retournées par les méthodes et propriétés System.Type, l'opérateur d'égalité peut retourner des résultats différents sur des plateformes différentes. Dans le .NET Compact Framework, chaque appel successif à la méthode Type.GetMethod retourne une nouvelle instance de System.Reflection.MethodInfo, donc les valeurs de retour ne sont jamais évaluées comme égales. Toutefois, dans le .NET Framework 4, l'appel de GetMethod avec les mêmes paramètres retourne la même instance de MethodInfo. Vous devez examiner et potentiellement modifier votre code lorsque vous travaillez avec les types System.Reflection suivants : MethodInfo, FieldInfo, PropertyInfo, EventInfo, MemberInfo, MethodBase, ConstructorInfoet ParameterInfo.

Arborescence de l'expression avec les types génériques

Sous Windows Phone 7, une exception VerificationException est levée lorsque vous créez une arborescence de l'expression qui fait référence à une variable locale qui est un type générique.

Réflexion sur les types génériques ouverts

Sous Windows Phone 7, la réflexion est prise en charge sur les types génériques fermés ; toutefois, la plupart des opérations de réflexion ne sont pas prises en charge sur les types génériques ouverts. Sur les types génériques ouverts, seules les opérations de réflexion suivantes sont prises en charge pour Windows Phone 7 :

  • Récupération d'un type générique ouvert ou d'une méthode en appelant la méthode GetType ou GetMethods.

  • Création d'un type générique ouvert ou d'une méthode à partir d'un type générique ouvert ou d'une méthode en appelant la méthode MakeGenericType ou MakeGenericMethod.

Pour toutes les autres opérations de réflexion sur des types génériques ouverts, une exception NotSupportedException est levée.

Voir aussi

Autres ressources

Bibliothèques de classes portables

Historique des modifications

Date

Historique

Motif

Avril 2011

Des informations supplémentaires sur les modifications de comportement ont été ajoutées.

Améliorations apportées aux informations.

Mars 2011

Ajout d'une rubrique.

Améliorations apportées aux informations.