silverlight加载XAP不成功

[复制链接]
查看11 | 回复1 | 2010-2-5 16:40:00 | 显示全部楼层 |阅读模式
下面的代码是网上搜索的,加载XAP的代码,现在是执行后没有得到所要的结果,大家帮忙给看一下什么原因
void myButton_Click(object sender, RoutedEventArgs e)
{

Uri address = new Uri("http://localhost:1699/ClientBin/ExternalProject.xap");

WebClient webClient = new WebClient();

webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);

webClient.OpenReadAsync(address);

HtmlPage.Window.Alert(address.ToString());//这一步能执行,
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{

// 得到下载结果



Assembly assembly = LoadAssemblyFromXap(e.Result, "ExternalProject.dll");//other project name.dll

UIElement element = assembly.CreateInstance("ExternalProject") as UIElement;//other project name.mainPage

//Children.Add(element);

//this.holer.Children.Add(element);



//HtmlPage.Window.Alert(element.ToString());
}
Assembly LoadAssemblyFromXap(Stream packageStream, String assemblyName)
{

Stream stream = Application.GetResourceStream(

new StreamResourceInfo(packageStream, null),

new Uri("AppManifest.xaml", UriKind.Relative)).Stream;

String appManifestString = new StreamReader(stream).ReadToEnd();

HtmlPage.Window.Alert(appManifestString);//这一步能执行,显示AppManifestString的内容

Deployment deployment = (Deployment)System.Windows.Markup.XamlReader.Load(appManifestString);



Assembly assembly = null;

foreach (AssemblyPart assemblyPart in deployment.Parts)

{

if (assemblyPart.Source == assemblyName)

{

String source = assemblyPart.Source;

StreamResourceInfo streamInfo = Application.GetResourceStream(

new StreamResourceInfo(packageStream,

"application/binary"),

new Uri(source, UriKind.Relative));

assembly = assemblyPart.Load(streamInfo.Stream);

break;

}

}

return assembly;
}
回复

使用道具 举报

千问 | 2010-2-5 16:40:00 | 显示全部楼层
帮顶~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行