C# 如何在没有assembly.GetCallingAssembly()的情况下获取包含接口的程序集

C# 如何在没有assembly.GetCallingAssembly()的情况下获取包含接口的程序集,c#,.net,reflection,.net-assembly,C#,.net,Reflection,.net Assembly,我有一个C#WinForms应用程序和两个涉及的程序集——第一个包含一个接口,第二个包含实现该接口的类 应用程序加载第二个程序集(通过MS Enterprise Library Unity,即通过反射)并调用类方法 在我使用下面的代码之前,我需要记录这个事实 var ApplicationInfo = Assembly.GetEntryAssembly().ToString(); var InterfaceInfo = Assembly.GetCallingAssembly().ToString

我有一个C#WinForms应用程序和两个涉及的程序集——第一个包含一个接口,第二个包含实现该接口的类

应用程序加载第二个程序集(通过MS Enterprise Library Unity,即通过反射)并调用类方法

在我使用下面的代码之前,我需要记录这个事实

var ApplicationInfo = Assembly.GetEntryAssembly().ToString();
var InterfaceInfo = Assembly.GetCallingAssembly().ToString();
var ImplementationInfo = Assembly.GetExecutingAssembly().ToString();
它在一段时间前工作正常(它分别获得了应用程序、第一个程序集和第二个程序集)

但是现在由于某种原因
GetCallingAssembly()
getExecutionGassembly()
都返回第二个程序集(包含类inImplementation)

有没有一种方法可以在不使用
assembly.GetCallingAssembly()
的情况下获取包含接口的程序集


是否知道为什么
GetCallingAssembly()
开始相等
getExecutionGassembly()

如果当前程序集中有实现接口的类型,则必须加载定义。通过类型定义,您可以获得程序集引用:

var asm = typeof(IInterface).Assembly;
如果您有一个实例(例如,动态创建),那么:


如果当前程序集中有实现接口的类型,则必须加载定义。通过类型定义,您可以获得程序集引用:

var asm = typeof(IInterface).Assembly;
如果您有一个实例(例如,动态创建),那么: