AssemblyPart Class
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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="https://schemas.microsoft.com/client/2007/deployment" ...>
<Deployment.Parts>
<AssemblyPart Source="assembly" />
</Deployment.Parts>
</Deployment>
-or-
<Deployment xmlns="https://schemas.microsoft.com/client/2007/deployment"
xmlns:x="https://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 | |
---|---|---|
AssemblyPart | Initializes a new instance of the AssemblyPart class. |
Top
Properties
Name | Description | |
---|---|---|
Dispatcher | Gets the Dispatcher this object is associated with. (Inherited from DependencyObject.) | |
Source | Gets the Uri that identifies an assembly as an assembly part. |
Top
Methods
Name | Description | |
---|---|---|
CheckAccess | Determines whether the calling thread has access to this object. (Inherited from DependencyObject.) | |
ClearValue | Clears the local value of a dependency property. (Inherited from DependencyObject.) | |
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
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.) | |
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.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetValue | Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.) | |
Load | Converts a Stream to an Assembly that is subsequently loaded into the current application domain. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ReadLocalValue | Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.) | |
SetValue | Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
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 (https://schemas.microsoft.com/winfx/2006/xaml/presentation). Instead, the manifest elements are mapped to the https://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.
See Also