I am running a WCF application CoreApplicationwhose VS project has a link to AncillaryProject. CoreApplicationuses a class Providerfrom AncillaryProject; however, it is never explicitly mentioned - it is called through Reflection.
My problem is that sometimes CoreApplicationit canβt be found Providerbecause it AncillaryProjectdoes not appear in the call GetAssemblies(). Sometimes this works fine, but sometimes (I assume it might be after the JIT), it fails.
Here is my original code:
var providers = from d in AppDomain.CurrentDomain.GetAssemblies()
from c in d.GetTypes()
where typeof(BaseProvider).IsAssignableFrom(c)
select c;
After looking at this question , I tried using GetReferencedAssemblies():
var allAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
{
allAssemblies = allAssemblies.Union(
a.GetReferencedAssemblies()
.Select(b => System.Reflection.Assembly.Load(b)));
}
var providers = from d in allAssemblies
from c in d.GetTypes()
where typeof(BaseProvider).IsAssignableFrom(c)
select c;
, , , DLL bin, . , .NET ? , -, ?