AssemblyPart Class
An assembly part is an assembly that is to be included in a Silverlight-based application package (.xap).
Namespace: System.Windows
Assembly: System.Windows (in System.Windows.dll)
<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
The AssemblyPart type exposes the following members.
| 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. |
| 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.) |
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.
The following code example demonstrates how to use this class in managed code.
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); } } }
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.





