CompositionContainer.Compose(CompositionBatch) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Ajoute ou supprime les parties dans le CompositionBatch spécifié du conteneur et exécute la composition.
public:
void Compose(System::ComponentModel::Composition::Hosting::CompositionBatch ^ batch);
public void Compose (System.ComponentModel.Composition.Hosting.CompositionBatch batch);
member this.Compose : System.ComponentModel.Composition.Hosting.CompositionBatch -> unit
Public Sub Compose (batch As CompositionBatch)
Paramètres
- batch
- CompositionBatch
Modifications apportées au CompositionContainer à inclure pendant la composition.
Exemples
Dans cet exemple simple, trois parties sont créées et ajoutées à , CompositionContaineret une partie est récupérée pour montrer que toutes les importations ont été remplies. Cet exemple utilise le modèle de programmation par attributs.
[Export]
class Part1
{
public String data = "This is the example data!";
}
[Export]
class Part2
{
[Import]
public Part1 data { get; set; }
}
[Export]
class Part3
{
[Import]
public Part2 data { get; set; }
}
class Program
{
static void Main(string[] args)
{
CompositionContainer container = new CompositionContainer();
CompositionBatch batch = new CompositionBatch();
batch.AddPart(AttributedModelServices.CreatePart(new Part1()));
batch.AddPart(AttributedModelServices.CreatePart(new Part2()));
batch.AddPart(AttributedModelServices.CreatePart(new Part3()));
container.Compose(batch);
Part3 _part = container.GetExportedValue<Part3>();
Console.WriteLine(_part.data.data.data);
Console.ReadLine();
}
}
<Export()>
Public Class Part1
Public ReadOnly Property data As String
Get
Return "This is the example data!"
End Get
End Property
End Class
<Export()>
Public Class Part2
<Import()>
Public Property data As Part1
End Class
<Export()>
Public Class Part3
<Import()>
Public Property data As Part2
End Class
Sub Main()
Dim container As New CompositionContainer()
Dim batch As New CompositionBatch()
batch.AddPart(AttributedModelServices.CreatePart(New Part1()))
batch.AddPart(AttributedModelServices.CreatePart(New Part2()))
batch.AddPart(AttributedModelServices.CreatePart(New Part3()))
container.Compose(batch)
Dim _part As Part3
_part = container.GetExportedValue(Of Part3)()
Console.WriteLine(_part.data.data.data)
Console.ReadLine()
End Sub
Remarques
Cette méthode est le principal moyen d’ajouter ou de supprimer directement des parties du conteneur. Le CompositionContainer maintient toujours un état stable et composé. Par conséquent, l’appel Compose avec un vide CompositionBatch n’est jamais nécessaire pour commencer la composition. Au lieu de cela, appelez la Compose méthode chaque fois que vous devez apporter des modifications aux composants disponibles pour .CompositionContainer
Peut CompositionBatch contenir à la fois les parties à ajouter et les parties à supprimer. La recomposition n’aura lieu qu’une seule fois pour chaque appel à Compose.