`
wsliujian
  • 浏览: 95171 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

类加载与应用程序域

 
阅读更多
  swf文件中的所有代码定义都存在于应用程序域中,可以使用应用程序域划分位于同一个安全域中的类,这允许同一个类存在多个定义,并且还允许子级重用父级定义。
   1.加载到子域
         类似于“继承”,子域可以直接获得父域所有的定义;反之,父域得不到子域的。
和继承关系不同的是,如果子域中有和父域同名的类,子域定义会被忽略而使用父域的定义
   2.加载到同域
         类似集合里的合并关系。被加载的swf文件里的所有类定义被合并到当前域中且
可以直接使用。和加载到子域相同,和当前域同名的域也会被忽略。
   3.加载到新域
         swf载入指定域之前,先要检查该域及其父域是否存在同名类,重复定义一概忽略。如果加载别人的陈天心,或者使用旧版本的主程序加载新版本的模块,为避免类名冲突就要加载到新域独立运行以使用自己的类。
    var content:LoaderContext=new LoaderContext();
     content.applicationDoamain=ApplicationDomain.currentDomain;

var swfurl1:String="element.swf";
var swfurl2:String="element1.swf";
configLoader(swfurl1);
configLoader(swfurl2);
function configLoader(url:String)
{
    var context:LoaderContext=new LoaderContext();
    //使用同域
//     context.applicationDomain=ApplicationDomain.currentDomain;
     //使用子域
      context.applicationDomain=new ApplicationDomain(ApplicationDomain.currentDomain);
     var loader:Loader=new Loader();
     loader.load(new URLRequest(url),context);
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
}
function onComplete(e:Event):void
{
     var className:Class=e.target.loader.contentLoaderInfo.applicationDomain.getDefinition("MCExample") as Class;
     var mc:MovieClip=new className();
     mc.x=Math.random()*400;
     mc.y=Math.random()*300;
     this.addChild(mc);
}
我的个人网站
http://www.webdesign-cn.com
http://www.levs.com
分享到:
评论

相关推荐

    .net应用程序域、程序集、元数据、反射

    您必须首先将一个程序集加载到应用程序域中,然后才能运行该应用程序。运行普通的应用程序会导致将几个程序集加载到一个应用程序域中。默认情况下,公共语言运行库将一个程序集加载到包含引用该程序集的代码的应用...

    .net 动态创建应用程序域和卸载应用程序域

    动态创建应用程序域通常通过`System.AppDomain`类的静态方法`CreateDomain`实现。以下是一个简单的示例: ```csharp AppDomain newDomain = AppDomain.CreateDomain("NewDomain"); ``` 在此过程中,可以传递配置...

    详解flash应用程序域

    而应用程序域则是安全沙箱下的一个子概念,主要用于管理和组织类定义、函数、接口和命名空间等资源,防止命名冲突,确保代码的正确继承关系。 #### 应用程序域的层次结构 应用程序域遵循类似Flash显示列表的层级...

    C# 应用程序域加载外部exe到当前窗口

    本篇文章将深入探讨如何在C# WPF(Windows Presentation Foundation)应用程序中使用应用程序域来加载外部的exe文件到当前窗口。 首先,理解WPF的基本概念至关重要。WPF是微软推出的UI框架,用于构建桌面应用程序,...

    weblogic类加载过程简述

    8. **热部署与类加载** WebLogic支持热部署,这意味着在不重启服务器的情况下更新应用。为实现这一功能,WebLogic使用了类卸载机制,当应用被替换时,旧版本的类会被卸载,然后加载新版本的类。 9. **类加载问题及...

    加载和卸载程序集

    在应用程序域中,可以加载多个程序集中,程序集的加载可以通过 Assembly.Load() 方法来实现。 二、程序集的卸载 程序集的卸载是指从应用程序域中卸载已经加载的程序集。然而,微软并没有提供卸载程序集的方法,...

    C#动态加载程序集

    动态加载程序集的机制是当C#应用程序在遇到当前应用程序域(AppDomain)里没有的程序集时,会自动搜索与应用程序在同一个目录里的所有程序集,看是否有该程序集,如果没有,则会抛出异常。 动态加载程序集的优点有...

    链接文件中的运行域与加载域.doc

    【链接文件中的运行域与加载域】是嵌入式系统编程中的一个重要概念,尤其是在Bootloader的开发中。本文将深入探讨这两个概念以及它们在.lds链接脚本中的应用。 首先,.lds文件(Linker Description Script)是链接...

    ClassLoader类加载机制和原理详解

    双亲委派模型使得系统类(如java.*开头的类)由Bootstrap ClassLoader加载,而用户自定义类由应用程序类加载器(AppClassLoader)加载。这避免了类的冲突,保持了系统类库的稳定性。但有时我们可能需要打破这种模型...

    AppDomain编程

    #### 四、应用程序域与线程的关系 在.NET中,线程与应用程序域的关系是复杂的: - **多线程执行**:一个应用程序域中可以同时执行多个线程。 - **线程移动**:线程可以在不同的应用程序域之间移动,这意味着线程...

    打开应用程序路径设置语句(C#)

    5. **`AppDomain.CurrentDomain.BaseDirectory`**:返回应用程序域的基目录。如果应用程序是在Web环境中运行的,则这个目录通常是网站的根目录。 6. **`Application.ExecutablePath`**:返回正在运行的应用程序的...

    C# 程序集 类型加载 反射

    6. `AppDomain.GetAssemblies()`返回当前应用程序域(AppDomain)中已加载的所有程序集。 一旦我们有了`Assembly`对象,可以访问它的属性和方法,获取如程序集名称、版本、公钥、导出类型等信息。 接下来,我们...

    ASP.NET 应用程序生命周期

    应用程序域为应用程序提供了一个独立的运行环境,使得每个应用程序可以单独加载和卸载。HostingEnvironment类在应用程序域内创建,提供关于应用程序的信息,比如存放应用程序的文件夹路径。 接着,ASP.NET会编译...

    一个基于requirejs的单页面应用程序SPA加载引擎

    单页面应用程序(SPA)是一种网页应用模式,它通过在后台刷新页面来实现用户交互,而无需重新加载整个网页。RequireJS 是一个 JavaScript 模块化加载器,它使得在浏览器环境中管理和组织代码变得更加容易。本项目是...

    插件式框架探索.pdf

    与传统的进程模型不同,一个进程可以包含多个应用程序域,每个域都有自己的内存空间和安全策略。这种设计使得在单一进程中运行多个应用程序成为可能,同时保持了各个应用程序之间的隔离性。 应用程序域的主要优点...

    反射机制和类加载机制学习总结

    3. **应用程序类加载器(Application ClassLoader)**:负责加载用户路径(classpath)指定的类。 #### 八、类加载机制的优点 1. **安全性**:通过验证阶段确保类文件的安全性。 2. **性能优化**:类加载器可以...

    关于Java Web应用程序安全技术研究.pdf

    Java Web应用程序安全技术研究主要涉及以下几个重要知识点: 1. 网络技术与Java Web技术的发展: 随着信息技术的飞速发展,网络技术已经广泛应用于我们生活的方方面面,Java Web技术作为网络技术中的一种,因其跨...

    java内置对象作用域

    它的作用域与应用程序相同,全局可访问。 5. **异常对象(Exception)** 异常处理是Java的重要特性,异常对象代表程序运行过程中的错误或不正常情况。一旦抛出异常,它会在try-catch块之间传递,直到被捕获或导致...

    iis7.5应用程序池的startModel为AlwaysRunning 安装文件 包含32位与64位

    在默认情况下,IIS的应用程序池采用的是OnDemand启动模式,即当第一个请求到达时,IIS才会初始化应用程序池,加载应用程序域(AppDomain),并执行相应的预热操作。这种模式在服务器资源有限或者低流量站点时非常...

Global site tag (gtag.js) - Google Analytics