AssemblyPart.Load Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Namespace: System.Windows
Assembly: System.Windows (in System.Windows.dll)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Function Load ( _
assemblyStream As Stream _
) As Assembly
[SecuritySafeCriticalAttribute]
public Assembly Load(
Stream assemblyStream
)
Parameters
- assemblyStream
Type: System.IO.Stream
The Stream to load into the current application domain.
Return Value
Type: System.Reflection.Assembly
The Assembly that is subsequently loaded into the current application domain.
Remarks
You cannot load multiple versions of the same assembly into the current application domain.
Examples
The following code example demonstrates how to use this method to download a remote assembly and then load it into the application domain.
<UserControl x:Class="SilverlightApplication.HomePage"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
<Grid Background="SandyBrown">
<StackPanel x:Name="stackPanel">
<TextBlock>Page from Host Application</TextBlock>
<TextBlock
MouseLeftButtonUp="TextBlock_MouseLeftButtonUp"
Cursor="Hand">
Click Here to Display a UI from the Library Assembly
</TextBlock>
</StackPanel>
</Grid>
</UserControl>
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
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also