社区
C#
帖子详情
请问:是否有一种方法可以列举当前系统中的AppDomain?
penter
2004-06-25 04:17:48
见题,谢谢;
...全文
133
8
打赏
收藏
请问:是否有一种方法可以列举当前系统中的AppDomain?
见题,谢谢;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
penter
2004-06-29
打赏
举报
回复
楼上的朋友,谢谢你的参与;
《程序员》有一期的专题就是谈论“动态程序”,我想如果在程序不可能被停止,被重新
编译的情况下改变程序的执行行为,应该有这样的需求,也想在.NET下找到相应的解决方法;
http://www.blogbus.com/blogbus/blog/diary.php?diaryid=196144
这个例子就是在没有停掉程序的情况下改变了程序的执行;
我会做一个尝试,并把最终的结果发布出来,
maotroy
2004-06-29
打赏
举报
回复
我觉得,如果能够得到安全认证的话,那更稳妥的做法是通过接口来实现。如果希望破入程序运行时获取或设置被隔离的资源,本身就说明程序在安全机制上有欠缺,而你正是想利用这种欠缺去达成某种目的!!面向对象就是希望让你看到你想看到的,而隐藏你“不应该”关心的。
maotroy
2004-06-28
打赏
举报
回复
AppDomain 是介于 Process与Thread 之间的一种形态,System.Diagnostics.Process中有一些静态的方法可以取得Process的信息;System.Diagnostics.Process.GetProcesses() 将返回当前系统中运行的Process集合。
AppDomain机制本身的目的是为了隔离保护数据不被别的AppDomain访问,而实现跨AppDomain的数据访问本身就是件吃力不讨好的事情。用C++来实现比较底层的东西应该比.Net更为方便吧。
penter
2004-06-28
打赏
举报
回复
谢谢楼上的朋友;
我在MSDN看到如下一段话:
在任何情况下都不应创建 AppDomain 对象的可远程控制的包装。如果创建了,则可能会不经意地远程发布对该 AppDomain 的引用,这将会远程公开该 AppDomain 的 CreateInstance 方法(和其他方法),并严重损坏该 AppDomain 的任何代码访问安全性。连接到远程 AppDomain 的恶意客户端可能将能够访问 AppDomain 本身才能访问的资源。您不应为任何以下类型创建可远程控制的包装:扩展 MarshalByRefObject 的类型和实现恶意客户端可用来绕过安全系统的方法的类型。
这样来说,AppDomain可以把自己发布出去;至于发布出去是不是可以做我想做的事情,我会写一些代码来看看;
我觉得可能是.NET的API不全面的缘故吧,假如有权限,通过安全认证的某个程序的确希望列举当前系统中正在运行的全部AppDomain,是应该有一种机制来满足这种需求的;
penter
2004-06-25
打赏
举报
回复
谢谢楼上两位;
我看了MSDN,好象没有象WIN32下可以用来枚举当前系统中运行的Process的那种API;
如果可以得到AppDomain的引用,就可以在该域中用emit动态生成Assembly......
想做的事情,请看下面的连结:
http://www.blogbus.com/blogbus/blog/diary.php?diaryid=196144
不知道有人有没有兴趣?
maotroy
2004-06-25
打赏
举报
回复
AppDomain 之间不能通信,除非继承了MarshalByRefObject类,得到了也没什么意义吧,如果只是当前程序域的话用楼上的方法就可以了
CMIC
2004-06-25
打赏
举报
回复
AppDomain.CurrentDomain
penter
2004-06-25
打赏
举报
回复
或者说,根据已经知道的AppDomain.FriendlyName得到已有的 AppDomain的引用?
.NET Core 3.0 reference mannual.pdf
现在好像下不到了,我以前下的,效果比网页版稍微差一点,不过离线用方便 .net的参考手册,很多api函数都要查的,用起来还是很方便的,万一微软网站卡了就能用了。
asp.net常见的面试题目(有答案)
asp.net常见的面试题目130道(有答案)
c#面试题
c#面试题 希望对找工作的有所帮助
编程英语单词
编程英语 没事儿可以看看 多认识下
C#学习笔记----
App
Dom
ain
应用程序域
使用.Net建立的可执行程序*.exe,并没有直接承载到进程当
中
,而是承载到应用程序域(
App
Dom
ain
)当
中
。应用程序域是.Net引入的一个新概念,它比进程所占用的资源要少,可以被看做是一个轻量级的进程。一个应用程序域可以有多个线程,一个线程也可以穿梭于多个应用程序域。 在一个进程
中
可以包含多个应用程序域,一个应用程序域可以装在一个可执行程序(*.exe)或者多个程序集(*.dll)。这...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章