社区
C#
帖子详情
请问:是否有一种方法可以列举当前系统中的AppDomain?
penter
2004-06-25 04:17:48
见题,谢谢;
...全文
179
8
打赏
收藏
请问:是否有一种方法可以列举当前系统中的AppDomain?
见题,谢谢;
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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的引用?
Linux socket非阻塞connect
方法
(一)
Linux非阻塞connect
方法
(linux non-blocking socket connect)
linux 实现非阻塞connect
Linux 怎样实现非阻塞connect 前言 凡是接触过socket编程的,对connect函数一定不陌生。因为socket是面向连接的,所以在进行读写操作前我们首先要进行连接,而所谓连接也就是我们常说的三次握手,这个过程就是在connect函数
中
完成的。 虽然connect函数本身不具备阻塞的功能,但是我们可以通过对socket进行设置和使用select函数可以设置阻塞时间的特性实现非...
Linux下connect函数 阻塞 与 非阻塞 问题
Linux下connect函数是会阻塞的,如果设置套接字为非阻塞,则会报错。 1、connect函数报错`Operation now in progress`的原因; 2、解决connet函数阻塞太久的问题
linux socket非阻塞之connect 函数
1,connect原型#include<sys/socket.h> int connect (int sockfd, const struct sockaddr * servaddr, int addrlen);如果是TCP套接字,connect函数将激发TCP 的三路握手。阻塞模式下:(阻塞
中
) = 0 连接成功 = -1 出错(有ETIMEDOUT,超时;ECONNR...
linux socket 阻塞服务端 非阻塞客户端,Linux socket非阻塞connect
方法
socket non-blocking mode connect对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET),在读写数据之前必须建立连接,connect()函数用于完成面向连接的socket的建链过程,对于TCP,也就是三次握手过程。connect()函数头文件:#include#include声明:int connect (int sockfd,str...
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章