当前位置 : 主页 > 编程语言 > c语言 >

c# – .NET AppDomains可以这样做吗?

来源:互联网 收集:自由互联 发布时间:2021-06-25
我花了几个小时阅读有关AppDomains的内容,但我不确定它们是否像我希望的那样工作. 如果我有两个类,通用Foo T在AppDomain#1中,AppDomain#2中的栏: App Domain#1是应用程序. App Domain#2就像一个插件
我花了几个小时阅读有关AppDomains的内容,但我不确定它们是否像我希望的那样工作.

如果我有两个类,通用Foo< T>在AppDomain#1中,AppDomain#2中的栏:

App Domain#1是应用程序. App Domain#2就像一个插件,可以动态加载和卸载.

AppDomain#2想要创建Foo< Bar>并使用它. FOO< T>在内部使用AppDomain#1中的许多类.

我不希望AppDomain#2使用带有反射的对象foo,我希望它使用Foo< Bar> foo,具有所有静态类型和编译速度.考虑到从未卸载包含Foo< T>的AppDomain#1,可以做到这一点吗?

如果是这样,当使用Foo< Bar>时,是否会在此处进行任何远程处理?

当我卸载AppDomain#2时,类型为Foo< Bar>被毁了?

编辑SO剥离所有我的<>,手动添加它们.

您在问题中混合了类型和对象,这使得很难回答. AD中的代码使用也在其他AD中使用的类型没有问题,它只是加载程序集.但是AD有自己的垃圾收集堆,你不能直接引用住在另一个AD中的对象.它们需要在AD边界上进行序列化.是的,通过IpcChannel进行远程处理将会这样做.
网友评论