AssemblyPart Class

An assembly part is an assembly that is to be included in a Silverlight-based application package (.xap).

Inheritance Hierarchy

System.Object
  System.Windows.DependencyObject
    System.Windows.AssemblyPart

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)

Syntax

'Declaration
Public NotInheritable Class AssemblyPart _
    Inherits DependencyObject
public sealed class AssemblyPart : DependencyObject
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" ...>
  <Deployment.Parts>
    <AssemblyPart Source="assembly" />
  </Deployment.Parts>
</Deployment>
-or-
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ...>
  <Deployment.Parts>
    <AssemblyPart x:Name="xamlName" Source="assembly" />
  </Deployment.Parts>
</Deployment>

XAML Values

  • assembly
    The Uri that identifies an assembly as an assembly part.

  • xamlName
    The assembly part name. Mandatory for the application assembly. Optional for library assemblies.

The AssemblyPart type exposes the following members.

Constructors

  Name Description
Public methodSupported by Silverlight for Windows Phone AssemblyPart Initializes a new instance of the AssemblyPart class.

Top

Properties

  Name Description
Public propertySupported by Silverlight for Windows Phone Dispatcher Gets the Dispatcher this object is associated with. (Inherited from DependencyObject.)
Public propertySupported by Silverlight for Windows Phone Source Gets the Uri that identifies an assembly as an assembly part.

Top

Methods

  Name Description
Public methodSupported by Silverlight for Windows Phone CheckAccess Determines whether the calling thread has access to this object. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone ClearValue Clears the local value of a dependency property. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodSupported by Silverlight for Windows Phone Finalize Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone GetAnimationBaseValue Returns any base value established for a Silverlight dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone GetType Gets the Type of the current instance. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone GetValue Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.)
Public method Load Converts a Stream to an Assembly that is subsequently loaded into the current application domain.
Protected methodSupported by Silverlight for Windows Phone MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public methodSupported by Silverlight for Windows Phone ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone SetValue Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.)
Public methodSupported by Silverlight for Windows Phone ToString Returns a string that represents the current object. (Inherited from Object.)

Top

Fields

  Name Description
Public fieldStatic memberSupported by Silverlight for Windows Phone SourceProperty Identifies the Source dependency property.

Top

Remarks

A Silverlight-based application must have an application package with at least one assembly that implements the application entry point. This assembly is known as the application assembly. For more information, see the EntryPointAssembly property. Additional library assemblies can also be included in the application package.

An assembly that is included in the application package is known as an assembly part and must be identified as one by using AssemblyPart in the application manifest.

When you build your application by using either MSBuild or Visual Studio, the application manifest is generated for you and includes all the appropriate assembly part declarations. There is one assembly part declaration for the application assembly, which is identified by using the optional x:Name XAML markup extension. There is also one assembly part declaration for each library assembly that is referenced from the application assembly project.

The markup for application manifests is technically XAML. However the various elements for manifests are not included in the typical default Silverlight XML namespace (http://schemas.microsoft.com/winfx/2006/xaml/presentation). Instead, the manifest elements are mapped to the http://schemas.microsoft.com/client/2007/deployment XML namespace. Generally, you do not have to change the XAML in an application manifest if the project specifies that each build should generate the application manifest.

The AssemblyPart class also represents assemblies that you load on demand through the Load method. For more information, see the Example section.

Examples

The following code example demonstrates how to use this class in managed code.

Imports SilverlightLibrary

Partial Public Class HomePage
    Inherits UserControl

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub TextBlock_MouseLeftButtonUp(ByVal sender As Object, _
        ByVal e As MouseButtonEventArgs)

        ' Download an "on-demand" assembly. 
        Dim wc As New WebClient()
        AddHandler wc.OpenReadCompleted, AddressOf wc_OpenReadCompleted
        wc.OpenReadAsync(New Uri("SilverlightLibrary.dll", UriKind.Relative))

    End Sub

    Private Sub wc_OpenReadCompleted(ByVal sender As Object, _
        ByVal e As OpenReadCompletedEventArgs)

        If (e.[Error] Is Nothing) AndAlso (e.Cancelled = False) Then

            ' Convert the downloaded stream into an assembly that is 
            ' loaded into current AppDomain. 
            Dim assemblyPart As New AssemblyPart()
            assemblyPart.Load(e.Result)

            DisplayPageFromLibraryAssembly()

        End If

    End Sub

    Private Sub DisplayPageFromLibraryAssembly()

        ' Create an instance of the Page class in the library assembly. 
        Dim page As New Page()

        ' Display the new Page. 
        Me.stackPanel.Children.Add(page)

    End Sub

End Class
using System; // Uri
using System.Net; // WebClient,OpenReadCompletedEventHandler
using System.Windows; // AssemblyPart
using System.Windows.Controls; // UserControl
using System.Windows.Input; // MouseButtonEventArgs
using SilverlightLibrary; // Page

namespace SilverlightApplication
{
    public partial class HomePage : UserControl
    {
        public HomePage()
        {
            InitializeComponent();
        }

        private void TextBlock_MouseLeftButtonUp(
            object sender, MouseButtonEventArgs e)
        {
            // Download an "on-demand" assembly.
            WebClient wc = new WebClient();
            wc.OpenReadCompleted += 
                new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
            wc.OpenReadAsync(
                new Uri("SilverlightLibrary.dll", UriKind.Relative));
        }

        private void wc_OpenReadCompleted(
            object sender, OpenReadCompletedEventArgs e)
        {
            if ((e.Error == null) && (e.Cancelled == false))
            {
                // Convert the downloaded stream into an assembly that is
                // loaded into current AppDomain.
                AssemblyPart assemblyPart = new AssemblyPart();
                assemblyPart.Load(e.Result);

                DisplayPageFromLibraryAssembly();
            }
        }

        private void DisplayPageFromLibraryAssembly() {

            // Create an instance of the Page class in the library assembly.
            Page page = new Page();

            // Display the new Page. 
            this.stackPanel.Children.Add(page);
        }
    }
}

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.