iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Silverlight中导航框架与动态加载的原理是什么
  • 325
分享到

Silverlight中导航框架与动态加载的原理是什么

2023-06-17 21:06:08 325人浏览 薄情痞子
摘要

今天就跟大家聊聊有关Silverlight中导航框架与动态加载的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. Silverlight 3 的导航框架简介Silverl

今天就跟大家聊聊有关Silverlight中导航框架与动态加载的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. Silverlight 3 的导航框架简介

Silverlight 提供了内置的导航框架,可以比较轻松的在 Silverlight Page 之间进行切换,并且可以和浏览器的前进、后退按钮集成,下面的代码可以简单的说明其用法:

Silverlight中导航框架与动态加载的原理是什么

这段代码很简单,通过设置 HyperLinkButton 的 NavigationUri 和 TargetName 两个属性,可以让指定的 Frame 去加载指定的 Silverlight Page 。

2. 常见的动态加载解决方案

当 Silverlight 项目比较大的时候, 很自然的会想到将 Silverlight 项目拆分成多个 xap 文件,进行按需加载,这个实现起来也不难。通常的做法是使用 WEBClient 或者 HttpWebRequest ,向服务端请求所需的 xap 文件,然后通过 xap 压缩包内的 AppManifest.xaml 文件,获取到 xap 文件内部打包的 dll 文件信息,在客户端通过反射进行加载。

3. 导航框架与动态加载相结合时遇到的问题,原因与解决方法

如果将这两者结合起来,利用 Sliverlight 内置的导航框架来加载动态加载的 xap 文件内部的 Silverlight Page ,对应用程序的开发和用户体验都是有很大帮助的:对开发方面来说,不用反射加载,而是使用 Silverlight 内置的导航框架,可以节省很多代码;对用户体验方面,按需加载能减少初始加载文件的大小,减少等待时间,使用导航框架可以和浏览器的前进、后退按钮紧密集成,用户体验更佳。

但是,在 Silverlight 3 目前的版本中, Frame 控件似乎不能直接加载动态加载的 Silverlight Page , 不管是通过设置 HyperLinkButton 的 NavigateUri 属性,还是通过调用 Frame.Navigate(Uri source) 方法,都会出现相同的异常, 看下面代码:

var xap = "http://localhost:2704/AppSL.Web/ClientBin/TestSLApp.xap";  // LoadPackage 是加载 xap 的扩展方法  Deployment.Current.LoadPackage(xap, () => {     var uri = new Uri("/TestSLApp;component/MainPage.xaml", UriKind.Relative);     this.WidgetFrame.Navigate(uri);  });

当执行至 WidgetFrame.Navigate(uri) 时,会出现下面的异常:

Silverlight中导航框架与动态加载的原理是什么

是什么原因导致这个异常呢? 通过 Reflector 察看 PageResourceContentLoader ,发现加载 x:Class 的是这个 GetTypeFromAnyLoadedAssembly 方法:

 

这个方法只是遍历 Deployment.Current.Part 去寻找所需要的类型,并没有去遍历动态加载的文件, 当然,这里也不可能去遍历。

看到这里,终于找到异常出现的原因了,由于这个方法是私有并且是静态的,无法进行重写,只能通过其它途径来解决。我想到的解决方法是,新建一个 Silverlight Page, 然后删除对应的代码文件,删除 xaml 视图的 x:Code 信息,如下图所示:

Silverlight中导航框架与动态加载的原理是什么

***的解决方案就是, 要做一个引导的文件,这个文件必须是一个独立的 xaml 文件,没有代码文件,没有 x:Class 信息,这样就不会被编译成新的类型,自然可以被 Silverlight 的导航框架加载了。

看完上述内容,你们对Silverlight中导航框架与动态加载的原理是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: Silverlight中导航框架与动态加载的原理是什么

本文链接: https://www.lsjlt.com/news/292975.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Silverlight中导航框架与动态加载的原理是什么
    今天就跟大家聊聊有关Silverlight中导航框架与动态加载的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. Silverlight 3 的导航框架简介Silverl...
    99+
    2023-06-17
  • cdn动态加速原理是什么
    cdn动态加速的原理有以下两点动态路由动态路由指的是利用cdn节点多的优势,把每个节点都看做一个路由,在两节点之间找到一个最佳路径,从而减小延时。TCP协议优化通过TCP协议将用户请求的页面内容进行解析,预先感知用户接下来要获取的内容,实现...
    99+
    2024-04-02
  • Spring框架的原理是什么
    这篇文章主要讲解了“Spring框架的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring框架的原理是什么”吧!简要介绍spring的原理,并结合一个简单的实例,如何配置使用...
    99+
    2023-06-03
  • 微前端框架导入加载子应用的方法是什么
    本篇内容主要讲解“微前端框架导入加载子应用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微前端框架导入加载子应用的方法是什么”吧!下面代码,我指定的...
    99+
    2024-04-02
  • MyBatis动态SQL与缓存原理是什么
    今天小编给大家分享一下MyBatis动态SQL与缓存原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。动态SQL为什么...
    99+
    2023-07-05
  • java中JDK动态代理的原理是什么
    这篇文章将为大家详细讲解有关java中JDK动态代理的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java可以用来干什么Java主要应用于:1. web开发;2. Android...
    99+
    2023-06-14
  • java中动态绑定的原理是什么
    本篇文章为大家展示了java中动态绑定的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象...
    99+
    2023-06-14
  • springboot框架的工作原理是什么
    Spring Boot 是一个基于 Spring 框架的快速开发应用程序的框架,它简化了 Spring 应用程序的开发和部署过程。S...
    99+
    2023-10-25
    springboot
  • php框架的底层原理是什么
    这篇文章主要介绍了php框架的底层原理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。二...
    99+
    2023-06-14
  • ASP.NET MVC 2.0框架的原理是什么
    ASP.NET MVC 2.0框架的原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用微软VS工具开发Web应用程序主要有两种方式:一种是常用的创建ASP.NET W...
    99+
    2023-06-17
  • require加载器的原理是什么
    这篇文章给大家介绍require加载器的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.node模块化的实现node中是自带模块化机制的,每个文件就是一个单独的模块,并且它遵循的是CommonJS规范,也就...
    99+
    2023-06-14
  • 大数据框架中Java负载均衡的实现原理是什么?
    随着大数据时代的到来,越来越多的企业开始采用大数据技术来分析海量数据,以获取更多的商业价值。而大数据框架中的负载均衡是其中的一个重要组成部分。本文将介绍大数据框架中Java负载均衡的实现原理,并提供相关的演示代码。 负载均衡的定义 负...
    99+
    2023-07-01
    load 大数据 框架
  • java动态代理的原理是什么
    小编给大家分享一下java动态代理的原理是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、说明使用代理将对象包装起来,然后用该代理对象取代原始对象。任何对原...
    99+
    2023-06-15
  • SpringBoot中bootstrap.properties文件加载的原理是什么
    这篇文章主要介绍“SpringBoot中bootstrap.properties文件加载的原理是什么”,在日常操作中,相信很多人在SpringBoot中bootstrap.properties文件加载的原理是什么问题上存在疑惑,小编查阅了各...
    99+
    2023-06-22
  • Java中动态代理机制的原理是什么
    今天就跟大家聊聊有关Java中动态代理机制的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java 动态代理机制的出现,使得 Java  开发人员不用手工编写代理...
    99+
    2023-06-17
  • Android中setContentView加载布局的原理是什么
    Android中setContentView加载布局的原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Activiy setContentView源码分析 p...
    99+
    2023-05-30
    android setcontentview
  • 揭秘Golang热更新原理:动态加载与重载的内幕讲解
    Golang热更新原理探究:动态加载与重载的奥秘 引言:在软件开发领域,程序员们经常希望能够在不重启应用的情况下进行代码修改和更新。这样的需求对于开发效率和系统运行的可靠性都具有重要意义。而Golang作为一...
    99+
    2024-01-20
    Golang 动态加载 热更新
  • MyBatis中动态SQL的工作原理是什么
    MyBatis中动态SQL的工作原理是利用XML配置文件中的各种标签和属性来动态构建SQL语句。通过在XML配置文件中使用if、ch...
    99+
    2024-04-23
    MyBatis
  • Spring Security 安全框架的原理是什么
    本篇文章给大家分享的是有关Spring Security 安全框架的原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。认证授权分析用户在进行资源访问时,要求系统要对用户进...
    99+
    2023-06-20
  • webpack的异步加载原理是什么
    这篇文章主要讲解了“webpack的异步加载原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“webpack的异步加载原理是什么”吧!webpack ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作