我花了几个小时阅读有关AppDomains的内容,但我不确定它们是否像我希望的那样工作. 如果我有两个类,通用Foo T在AppDomain#1中,AppDomain#2中的栏: App Domain#1是应用程序. App Domain#2就像一个插件
如果我有两个类,通用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进行远程处理将会这样做.