垃圾收集对象跨越AppDomain边界

当您将从MarshalByRefObjectinheritance的对象传递给另一个AppDomain时,由创建它的AppDomain引发的GC.Collect()不会收集该对象,前提是该对象在GC.Collect时间内未在任一AppDomain中生根( )叫?

[当我说没有根源时,我的意思是没有开发人员编写代码可以访问它。]

似乎对象没有被收集,而是被提升到下一代!

但是,如果我停止将对象传递给diff AppDomain,它将按预期收集。

这种行为是设计的吗? 如果是这样理由?

多谢你们,

PS我知道代码中的GC.Collect()有很多原因,我只是想了解GC将如何发生在MBRO上。