Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

CompositionContainer, classe

Gère la composition des composants.

System.Object
  System.ComponentModel.Composition.Hosting.ExportProvider
    System.ComponentModel.Composition.Hosting.CompositionContainer

Espace de noms :  System.ComponentModel.Composition.Hosting
Assembly :  System.ComponentModel.Composition (dans System.ComponentModel.Composition.dll)

public class CompositionContainer : ExportProvider, 
	ICompositionService, IDisposable

Le type CompositionContainer expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par Bibliothèque de classes portableCompositionContainer()Initialise une nouvelle instance de la classe CompositionContainer.
Méthode publiquePris en charge par Bibliothèque de classes portableCompositionContainer(ExportProvider[])Initialise une nouvelle instance de la classe CompositionContainer avec les fournisseurs d'exportations spécifiés.
Méthode publiquePris en charge par Bibliothèque de classes portableCompositionContainer(ComposablePartCatalog, ExportProvider[])Initialise une nouvelle instance de la classe CompositionContainer avec les catalogues spécifiés et les fournisseurs d'exportations.
Méthode publiqueCompositionContainer(CompositionOptions, ExportProvider[])Initialise une nouvelle instance de la classe CompositionContainer avec les fournisseurs d'exportations et les options spécifiés.
Méthode publiquePris en charge par Bibliothèque de classes portableCompositionContainer(ComposablePartCatalog, Boolean, ExportProvider[])Initialise une nouvelle instance de la classe CompositionContainer avec le catalogue spécifié, le mode thread-safe et les fournisseurs d'exportations.
Méthode publiqueCompositionContainer(ComposablePartCatalog, CompositionOptions, ExportProvider[])Initialise une nouvelle instance de la classe CompositionContainer avec les catalogues, les options et les fournisseurs d'exportations spécifiés.
Début

  NomDescription
Propriété publiquePris en charge par Bibliothèque de classes portableCatalogObtient le ComposablePartCatalog qui fournit au conteneur l'accès aux objets Export.
Propriété publiquePris en charge par Bibliothèque de classes portableProvidersObtient les fournisseurs d'exportations qui fournissent au conteneur l'accès aux objets ComposablePartCatalog supplémentaires.
Début

  NomDescription
Méthode publiquePris en charge par Bibliothèque de classes portableComposeAjoute ou supprime les parties dans le CompositionBatch spécifié du conteneur et exécute la composition.
Méthode publiquePris en charge par Bibliothèque de classes portableDispose()Libère toutes les ressources utilisées par l'instance actuelle de la classe CompositionContainer.
Méthode protégéePris en charge par Bibliothèque de classes portableDispose(Boolean)Libère les ressources non managées utilisées par le CompositionContainer et libère éventuellement les ressources managées.
Méthode publiquePris en charge par Bibliothèque de classes portableEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéePris en charge par Bibliothèque de classes portableFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExport<T>()Retourne l'exportation avec le nom de contrat dérivé du paramètre de type spécifié. Si la mise en correspondance ne donne pas une et une seule exportation, une exception est levée. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExport<T>(String)Retourne l'exportation avec le nom de contrat spécifié. Si la mise en correspondance ne donne pas une et une seule exportation, une exception est levée. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExportedValue<T>()Retourne l'objet exporté avec le nom de contrat dérivé du paramètre de type spécifié. Si la mise en correspondance ne donne pas uniquement un seul objet exporté, une exception est levée. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExportedValue<T>(String)Retourne l'objet exporté avec le nom de contrat spécifié. Si la mise en correspondance ne donne pas uniquement un seul objet exporté, une exception est levée. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExportedValueOrDefault<T>()Obtient l'objet exporté avec le nom de contrat dérivé du paramètre de type spécifié ou la valeur par défaut du type spécifié, ou encore lève une exception s'il existe plusieurs correspondances d'objets exportés. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExportedValueOrDefault<T>(String)Obtient l'objet exporté avec le nom de contrat spécifié ou la valeur par défaut du type spécifié, ou encore lève une exception s'il existe plusieurs correspondances d'objets exportés. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExportedValues<T>()Obtient tous les objets exportés avec le nom de contrat dérivé du paramètre de type spécifié. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExportedValues<T>(String)Obtient tous les objets exportés avec le nom de contrat spécifié. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExports(ImportDefinition)Obtient toutes les exportations qui correspondent aux conditions de la définition de l'importation spécifiée. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExports(ImportDefinition, AtomicComposition)Obtient toutes les exportations qui correspondent aux conditions de la définition et de la composition de l'importation spécifiée. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExports(Type, Type, String)Obtient toutes les exportations avec le nom de contrat spécifié. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExports<T>()Obtient toutes les exportations avec le nom de contrat dérivé du paramètre de type spécifié. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetExports<T>(String)Obtient toutes les exportations avec le nom de contrat spécifié. (Hérité de ExportProvider.)
Méthode protégéePris en charge par Bibliothèque de classes portableGetExportsCoreRetourne une collection de toutes les exportations qui correspondent aux conditions dans l'objet ImportDefinition spécifié. (Substitue ExportProvider.GetExportsCore(ImportDefinition, AtomicComposition).)
Méthode publiquePris en charge par Bibliothèque de classes portableGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portableGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéePris en charge par Bibliothèque de classes portableMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéePris en charge par Bibliothèque de classes portableOnExportsChangedDéclenche l'événement ExportsChanged. (Hérité de ExportProvider.)
Méthode protégéePris en charge par Bibliothèque de classes portableOnExportsChangingDéclenche l'événement ExportsChanging. (Hérité de ExportProvider.)
Méthode publiquePris en charge par Bibliothèque de classes portableReleaseExport(Export)Libère l'objet Export spécifié du CompositionContainer.
Méthode publiquePris en charge par Bibliothèque de classes portableReleaseExport<T>(Lazy<T>)Supprime l'exportation spécifiée de la composition et libère ses ressources, si possible.
Méthode publiquePris en charge par Bibliothèque de classes portableReleaseExports(IEnumerable<Export>)Libère un jeu d'objets Export du CompositionContainer.
Méthode publiquePris en charge par Bibliothèque de classes portableReleaseExports<T>(IEnumerable<Lazy<T>>)Supprime une collection d'exportations de la composition et libère leurs ressources, si possible.
Méthode publiquePris en charge par Bibliothèque de classes portableReleaseExports<T, TMetadataView>(IEnumerable<Lazy<T, TMetadataView>>)Supprime une collection d'exportations de la composition et libère leurs ressources, si possible.
Méthode publiquePris en charge par Bibliothèque de classes portableSatisfyImportsOnceSatisfait les importations de l'objet ComposablePart spécifié sans l'enregistrer en vue de la recomposition.
Méthode publiquePris en charge par Bibliothèque de classes portableToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publiquePris en charge par Bibliothèque de classes portableTryGetExportsObtient toutes les exportations qui correspondent aux conditions de l'importation spécifiée. (Hérité de ExportProvider.)
Début

  NomDescription
Événement publicPris en charge par Bibliothèque de classes portableExportsChangedSe produit lors de la modification des exportations de ExportProvider. (Hérité de ExportProvider.)
Événement publicPris en charge par Bibliothèque de classes portableExportsChangingSe produit lorsque les exportations fournies sont modifiées. (Hérité de ExportProvider.)
Début

  NomDescription
Méthode d'extension publiquePris en charge par Bibliothèque de classes portableComposeExportedValue<T>(T)Surchargé. Crée un composant à partir de la valeur spécifiée et le compose dans le conteneur de composition spécifié. (Défini par AttributedModelServices.)
Méthode d'extension publiquePris en charge par Bibliothèque de classes portableComposeExportedValue<T>(String, T)Surchargé. Crée un composant à partir de l'objet spécifié sous le nom de contrat spécifié et le compose dans le conteneur de composition spécifié. (Défini par AttributedModelServices.)
Méthode d'extension publiquePris en charge par Bibliothèque de classes portableComposePartsCrée des composants composables à partir d'un tableau d'objets avec attributs et les compose dans le conteneur de composition spécifié. (Défini par AttributedModelServices.)
Méthode d'extension publiquePris en charge par Bibliothèque de classes portableSatisfyImportsOnce(Object)Surchargé. Compose le composant spécifié à l'aide du service de composition spécifié, avec la recomposition désactivée. (Défini par AttributedModelServices.)
Méthode d'extension publiqueSatisfyImportsOnce(Object, ReflectionContext)Surchargé. Constitue la partie spécifiée à l'aide du service spécifié de composition, avec la recomposition désactivée et à l'aide du contexte de réflexion spécifié. (Défini par AttributedModelServices.)
Début

Un objet CompositionContainer a deux objectifs principaux dans une application. En premier lieu, il effectue le suivi des parties disponibles pour la composition et de leurs dépendances et exécute la composition chaque fois que l'ensemble des parties disponibles change. Ensuite, il fournit les méthodes avec lesquelles l'application obtient les instances des parties composées ou remplit les dépendances d'une partie composable.

Remarque importanteImportant

Ce type implémente l'interface IDisposable. En fin d'utilisation, vous devez le libérer directement ou indirectement. Pour le libérer directement, appeler la méthode Dispose dans un bloc try/catch. Pour le libérer indirectement, utiliser l'instruction using (en C#) ou Using (en Visual Basic). Pour plus d'information, aller à la section "Utilisation d'un objet qui implémente l'interface IDisposable" dans la description de l'interface IDisposable.

Les parties peuvent être mises à disposition du conteneur soit directement soit via la propriété Catalog. Toutes les parties détectables dans ce ComposablePartCatalog sont disponibles au conteneur pour accomplir des importations, ainsi que toutes les parties ajoutées directement.

La méthode Compose autorise l'ajout des parties instanciées à un conteneur existant. En supposant que la composition a réussi, ces parties verront leurs importations remplies de parties extraites du conteneur et leurs exportations seront disponibles à d'autres parties. Les importations indiquées comme étant recomposables seront enregistrées pour la recomposition.

La méthode SatisfyImportsOnce permet de remplir les importations d'une partie sans qu'elles soient ajoutées au conteneur. Si la composition est réussie, les importations de la partie seront remplies, mais les exportations de la partie ne seront pas disponibles à d'autres parties et aucune importation ne sera inscrite pour la recomposition.

Les objets CompositionContainer doivent toujours être supprimés. Lorsque la méthode Dispose est appelée, l'objet CompositionContainer supprime également toutes les parties qu'il a créées.

Un objet CompositionContainer qui peut être accédé à partir de plusieurs threads doit être construit avec le paramètre isThreadSafe défini à true, à l'aide du constructeur CompositionContainer(ComposablePartCatalog, Boolean, ExportProvider[]). Les performances seront légèrement plus lentes lorsque isThreadSafe a la valeur true. Nous vous recommandons donc d'affecter à ce paramètre la valeur false dans les scénarios monothreads. La valeur par défaut est false.

Mise en gardeAttention

Un CompositionContainer ne doit jamais s'importer, ou un composant qui lui fait référence. Une telle référence peut autoriser une partie non fiable à accéder à toutes les parties dans le conteneur.

Dans l'exemple suivant, un objet CompositionContainer est initialisé avec un catalogue et est utilisé pour remplir les importations d'une partie. Cet exemple utilise le modèle de programmation par attributs.


[Export]
class MyAddin
{
    public String myData { get { return "The data!"; } }
}

class MyProgram
{
    [Import]
    public MyAddin myAddin { get; set; }
}


class Program
{
    static void Main(string[] args)
    {
        AggregateCatalog catalog = new AggregateCatalog();
        catalog.Catalogs.Add(new AssemblyCatalog(typeof(MyAddin).Assembly));
        CompositionContainer _container = new CompositionContainer(catalog);
        MyProgram myProgram = new MyProgram();
        _container.SatisfyImportsOnce(myProgram);
        Console.WriteLine(myProgram.myAddin.myData);
        Console.ReadLine();

        _container.Dispose();
    }
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Pris en charge dans : 4

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft