问题标签 [applicationdomain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - 将远程 swf “引导”到应用程序 SecurityDomain (actionscript3)
我的 Flash (AS3/AIR) 应用程序目前使用一种稍微不寻常的架构(对于 Flash 应用程序)来为运行时加载的内容提供特定的基类。外部内容是使用“存根”基类发布的,在加载时会在运行时被“真实”基类所掩盖。我听说这被 Adobe 称为bootstrapping ( pdf ),直到现在它对我来说一直运行良好。我相信它与 DLL 架构没有什么不同,尽管我没有资格肯定地说。
到目前为止,我一直在加载的外部内容是从同一个SecurityDomain
(同一个沙箱)中加载的,这使我可以轻松地将内容加载到 childApplicationDomain
中。不幸的是,据我所知,ApplicationDomain
跨度SecurityDomain
s 的 s 不能相关 - 也就是说,我不能使一个 SecurityDom 的 AppDom 成为另一个 SecurityDom 的 AppDom 的子项。
但现在我需要从我的应用程序沙箱外部加载这些外部内容。有很多方法可以实现跨SecurityDomain
s 的通信——尽管其中大多数都非常有限,但 AIR 的sandboxBridge
API 可能是最强大的。不幸的是,这些通信方法都不允许我实现这种引导架构。
我注意到该LoaderContext
对象有一个securityDomain
属性,但 Flash 安全性禁止“本地 swfs”触摸它(它会抛出一个SecurityError
或类似的)。
Flex'sSWFLoader
有一个trustContent
看起来很有希望的属性,但我倾向于假设它与SecurityDomain
在Loader
's中设置的限制相同LoaderContext
。
我怀疑我将不得不重新设计(这并不容易),但我想我只是在这里检查一下我没有错过我的研究中的任何东西。
那么......任何想法或智慧的珍珠?如果从事安全模型工作的 Adobe 人员能给我一个明确的“是/否,它可以/不能完成”,我会特别喜欢它......
提前致谢!
附录:从那以后,我决定重新设计架构,以便引导全部发生在外部域上。然而,出于好奇,我的问题仍然存在。
c# - 静态类的范围是什么?
我有一个程序集,一次可以由多个进程使用。如果我使用的是静态类,多个进程是否都使用该类的相同“实例”?
由于进程是分开的,它们会在不同的应用程序域下运行,因此静态“实例”是否分开?
此处详细信息中的布丁是该程序集正由一个自定义 BizTalk 适配器使用,我将其设置为并行批处理消息。这就是我上面所说的“多进程”。
silverlight - Silverlight 是否为每个浏览器选项卡使用单独的应用程序域?
如果同一个 Silverlight 应用程序在两个 Web 浏览器选项卡中运行,每个选项卡是否使用单独的应用程序域?
如果您知道 Microsoft 在何处明确提供此信息,请提供参考。
c# - 应用程序域和线程
来自 MSDN 的引用:http: //msdn.microsoft.com/en-us/library/6kac2kdh.aspx
一个或多个托管线程(由 System.Threading.Thread 表示)可以在同一托管进程内的一个或任意数量的应用程序域中运行。尽管每个应用程序域都以单个线程启动,但该应用程序域中的代码可以创建额外的应用程序域和额外的线程。结果是托管线程可以在同一托管进程内的应用程序域之间自由移动;您可能只有一个线程在多个应用程序域之间移动。
我尝试使用共享一个线程的 2 个应用程序域编写代码。但我放弃了。我真的不知道这怎么可能。你能给我一个代码示例吗?
apache-flex - 在 Flex 中创建插件 - 加载嵌套的 SWF 文件
我正在尝试为我们的应用程序实现一个插件系统,并且有一段时间获取动态加载的 SWF 文件,加载额外的 SWF 文件。
它是这样的:
- 主要应用程序外壳加载...
- ---------+ 应用程序加载...
- -----------------+插件
我没有问题让应用程序 #1 加载应用程序 #2
但是,尽我所能,我无法让应用程序 #2 加载和实例化 #3
我使用 ModuleManager 尝试了各种排列,但这是我得到的最接近的。当调用 onLoadComplete 方法时,我可以看到 SWF 已加载,但工厂始终返回 NULL。
有趣的是,当我在它自己的应用程序中提取它时,它工作正常。这个问题是由我从本身动态加载的 SWF 加载插件这一事实触发的。
我相信这是由于ApplicationDomain
,但我无法做出正面或反面。我尝试指定currentDomain
,new ApplicationDomain(Application.currentDomain)
但new ApplicationDomain()
没有成功。
此外,重要的是要注意,我不能在任何一个应用程序中对 Foo 类进行硬引用,因为就其性质而言,我们不会提前知道它们将包含什么。
谷歌搜索,这似乎是一个众所周知的问题,但我还没有找到(明确的)解决方案。
和
c# - C# 程序集加载和后期绑定
我正在阅读这本关于 C# 和 .NET 的书,并且正在学习很多很酷的东西。我已经阅读了作者谈论动态加载程序集并在该程序集中创建类型实例的部分。
在 AS3 中,可以做同样的事情,除了一件事:您可以要求编译器不编译一组类,而是检查类型安全。这是一个例子:
在我的应用程序代码运行时,我可以动态加载包含类 A 定义的外部库,将这些定义加载到我的应用程序的 ApplicationDomain 中,一切都会运行良好。不需要反思!
这在 C# 中可能吗?
换句话说,我可以指示 C# 编译器对一堆类(比如说,在库中)进行类型检查,但将它们排除在编译之外吗?
c# - 获取当前应用程序域中的程序集名称
我想在当前应用程序域中获取程序集友好名称,因此我写了这样的东西:
但问题是这是我得到的输出,而不是我希望看到的输出:
mscorlib,版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e0 应用程序域,版本=1.0.0.0,文化=中性,PublicKeyToken=null
其实我期待这些名字:
替代文字 http://www.pixelshack.us/images/xjfkrjgwqiag9s6o76x6.png
有人可以告诉我是否有什么我弄错了。
提前致谢。
或者我期待的名字不是程序集?
.net - 如何让一个应用程序将多个进程堆叠到同一个应用程序域中?
所以这是我想要做的一个例子:
运行 test.exe,创建新的 Windows 进程,创建新的 CLR 应用程序域,创建新的 CLR 进程。运行test.exe,新建Windows进程,实现CLR应用域存在,重启第一个CLR应用域中的CLR进程,并随Windows进程关闭。运行了另外 20 个 test.exe 实例,它们都存在于同一个 Windows 进程和同一个 CLR 应用程序域中。
至少,这是这个想法。
建议?
casting - 加载外部 SWF,无法将文档类转换为共享基类
我有一个定义 Widget 基类的父 SWF 文件。
然后我将外部 SWF 加载到父级中。外部 SWF 的文档类派生自 Widget 基类——例如,我们称它为 DerivedWidget。
问题是当我加载外部 SWF 时,我无法将 Loader.content(在调试器中显示为具有 DerivedWidget 类型)转换为 Widget 类型。加载完成后,我使用“as”运算符将内容转换为父 SWF 中的 Widget,但转换结果为“null”。
这种行为不是预期的,因为外部 SWF 被加载到父应用程序域中,并且加载器的内容在调试器中显示为 DerivedWidget,我知道它是从 Widget 派生的,但是转换为基 Widget 类失败了。
谁能解释这种意外行为并提供解决方案?
[编辑:回顾早期的代码快照......这以前可以工作,但现在不行......并且加载和强制转换代码没有改变]
[Edit2:实际上,在 Flash IDE 中调试时似乎失败了。正常运行时,所有内容都加载到正确的 ApplicationDomain (sameDomain=true);这显然是一个巨大的错误]
c# - .NET 中应用程序域的常见用途和最佳实践?
何时在应用程序中创建新的应用程序域有哪些指导方针和最佳实践?
此外,在一个应用程序中如何使用多个应用程序域的一些常见用途和示例是什么?