CompositionContainer.Compose Method (CompositionBatch)


Adds or removes the parts in the specified CompositionBatch from the container and executes composition.

Namespace:   System.ComponentModel.Composition.Hosting
Assembly:  System.ComponentModel.Composition (in System.ComponentModel.Composition.dll)

Public Sub Compose (
	batch As CompositionBatch


Type: System.ComponentModel.Composition.Hosting.CompositionBatch

Changes to the CompositionContainer to include during the composition.

This method is the primary way of directly adding or removing parts from the container. The CompositionContainer will always maintain a stable, composed state. Therefore, calling Compose with an empty CompositionBatch is never necessary to start composition. Instead, call the Compose method whenever you need to make changes to the parts available to the CompositionContainer.

The CompositionBatch can contain both parts to be added and parts to be removed. Recomposition will take place only once for each call to Compose.

In this simple example, three parts are created and added to the CompositionContainer, and one part is retrieved to show that all imports have been filled. This example uses the Attributed Programming Model.

Public Class Part1
    Public ReadOnly Property data As String
            Return "This is the example data!"
        End Get
    End Property
End Class
Public Class Part2
    Public Property data As Part1
End Class

Public Class Part3
    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()))
    Dim _part As Part3
    _part = container.GetExportedValue(Of Part3)()

End Sub

.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 4.0
Return to top