c#4.0中循环引用情况下dll引用计数的帮助

c#4.0中循环引用情况下dll引用计数的帮助,c#,.net,vb.net,c#-4.0,dll,C#,.net,Vb.net,C# 4.0,Dll,我维护着我继承的大量代码库(从vb6移植到.net 1.1,然后移植到.net 2.0/C等等)。我有这种情况 我的主要项目引用了两个DLL-DLL-A和DLL-B DLL-B引用DLL-A。DLL和我的主项目都在3个独立的名称空间中 1) 是否在内存中加载了2个DLL-A副本?(dll引用计数) 2) 如何确定在mem中加载了多少个.net dll副本?(通常使用哪种工具) 谢谢否,DLL-A将只加载一次。就像所有东西都引用了mscorlib一样,但只加载了它的一个副本 除非您正在做一些奇怪的

我维护着我继承的大量代码库(从vb6移植到.net 1.1,然后移植到.net 2.0/C等等)。我有这种情况

我的主要项目引用了两个DLL-DLL-A和DLL-B

DLL-B引用DLL-A。DLL和我的主项目都在3个独立的名称空间中

1) 是否在内存中加载了2个DLL-A副本?(dll引用计数)

2) 如何确定在mem中加载了多少个.net dll副本?(通常使用哪种工具)


谢谢

否,DLL-A将只加载一次。就像所有东西都引用了mscorlib一样,但只加载了它的一个副本

除非您正在做一些奇怪的事情(使用多个AppDomain、加载带有反射的程序集、并排托管多个CLR),否则您只能获得程序集引用的一个副本。

1)否。当应用程序或库(DLL-B)使用DLL-a中的类型时,它将加载到内存中。当其他源稍后使用它时,将使用相同的副本

2) 只有程序集的一个副本将加载到进程的AppDomain中。在普通应用程序中,这意味着将加载您使用的每个程序集(即:dll)的单个副本


这里没有“参考计数”发生。

谢谢Jon。很高兴知道,如果需要,可以多次强制加载dll。(使用多个AppDomain,加载带有反射的程序集,并排托管多个CLR)。我们将阅读这些主题。