zoukankan
html css js c++ java
Silverlight3 加载其他xap
本文转载自:
http://www.pin5i.com/showtopic-26068.html
有些时候我们在设计有集成sl系统的时候总会想把xap作为基点来达到持续集成的效果。那么我们应该怎么做呢?
解决方法:
1.首先我们要用一个方法实现从源资中提取出Assembly:
1: Assembly LoadAssemblyFromXap(Stream packageStream, String assemblyName)
2: {
3: StreamResourceInfo resouceInfo = new StreamResourceInfo(packageStream, "application/binary");
4: Stream mainfestStream = Application.GetResourceStream(resouceInfo, new Uri("AppManifest.xaml", UriKind.Relative)).Stream;
5: String appManifestString = new StreamReader(mainfestStream).ReadToEnd();
6:
7: XElement deploymentRoot = XDocument.Parse(appManifestString).Root;
8: List<XElement> deploymentParts = (from assemblyParts in deploymentRoot.Elements().Elements() select assemblyParts).ToList();
9:
10: Assembly targetassembly = null;
11:
12: foreach (XElement xElement in deploymentParts)
13: {
14: String source = xElement.Attribute("Source").Value;
15: if (source == assemblyName)
16: {
17: StreamResourceInfo streamInfo = Application.GetResourceStream(resouceInfo, new Uri(source, UriKind.Relative));
18: AssemblyPart asmPart = new AssemblyPart();
19: targetassembly = asmPart.Load(streamInfo.Stream);
20: }
21: }
22: return targetassembly;
23: }
复制代码
2.利用一个webClient下载指定的其他xap文件,并在下载完成后,利用上边的方法把加载后的资料还完成一个UIElement,这样我们就可以使用了.
1: void MainPage_Loaded(object sender, RoutedEventArgs e)
2: {
3: //加一个xap文件所在的位置
4: Uri address = new Uri("http://localhost:4456/ClientBin/exproject.xap");
5: //实例一个webClient
6: WebClient webClient = new WebClient();
7: //注册一个下载完成事件
8: webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
9: //开始下载
10: webClient.OpenReadAsync(address);
11: }
复制代码
3.下载完成后通过LoadAssemblyFromXap方法还原xpa为UIElement:
1: void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
2: {
3: Stream stream = Application.GetResourceStream(
4: new StreamResourceInfo(e.Result, null),
5: new Uri("AppManifest.xaml", UriKind.Relative)).Stream;
6: String appManifestString = new StreamReader(stream).ReadToEnd();
7:
8: Assembly assembly = LoadAssemblyFromXap(e.Result, "exproject.dll");//other project name.dll
9: UIElement element = assembly.CreateInstance("exproject.MainPage") as UIElement;//other project name.mainPage
10: this.contaner.Children.Add(element);
11: }
复制代码
查看全文
相关阅读:
Oracle EBS-SQL (PO-3):检查期间手工下达的采购订单记录数.sql
Oracle EBS-SQL (PO-2):检查当月到货补单的记录数.sql
Oracle EBS-SQL (PO-1):检查供货比例异常.sql
Oracle EBS-SQL (MRP-2):检查期间主计划录入记录数.sql
Oracle EBS-SQL (MRP-1):检查期间内计划完成的任务.sql
Oracle EBS-SQL (INV-3):检查仓库库存价值明细.sql
Oracle EBS-SQL (INV-2):检查帐户别名发放记录.sql
Oracle EBS-SQL (INV-1):检查物料成本为0并且物料状态不是'NEW'的物料.sql
Oracle EBS-SQL (BOM-13):检查未定义库存分的物料类.sql
Oracle EBS-SQL (BOM-12):BOM清单查询
原文地址:https://www.cnblogs.com/chenxizhang/p/1682288.html
最新文章
Oracle EBS-SQL (WIP-12):总装车间任务查询.sql
Oracle EBS-SQL (WIP-11):检查期间任务完工记录数.sql
Oracle EBS-SQL (WIP-10):检查车间任务状态“完成”但未发料数据.sql
Oracle EBS-SQL (WIP-9):检查车间任务超发料.sql
Oracle EBS-SQL (WIP-8):检查期间任务下达记录数.sql
Oracle EBS-SQL (WIP-7):检查当月任务发放记录.sql
Oracle EBS-SQL (WIP-6):检查任务已完成但状态是发放的任务.sql
Oracle EBS-SQL (WIP-5):检查非标任务本身选上了MRP净值.sql
Oracle EBS-SQL (WIP-4):检查检查成品标准作业是否勾选"固定"标识.sql
Oracle EBS-SQL (WIP-3):检查非标任务子件没选MRP净值.sql
热门文章
Oracle EBS-SQL (WIP-2):检查非标任务没挂自己本身.sql
Oracle EBS-SQL (WIP-1):检查非标任务没挂需求.sql
Oracle EBS-SQL (PO-11):检查采购订单退货数.sql
Oracle EBS-SQL (PO-10):检查过期采购未接收订单.sql
Oracle EBS-SQL (PO-9):检查期间采购订单执行情况.sql
Oracle EBS-SQL (PO-8):检查有供货比例无采购员.sql
Oracle EBS-SQL (PO-7):检查异常-非批准的供应商设置供货比例.sql
Oracle EBS-SQL (PO-6):检查订单接收总数.sql
Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql
Oracle EBS-SQL (PO-4):检查采购订单明细.sql
Copyright © 2011-2022 走看看