如何获取对实例化类的程序集的引用

我有以下情况:
Assembly A
- 类库,包含我的控件
Control A
Control A
有财产
ResourceName
Assembly B
- Winforms应用程序,包含品牌资源(图像,字符串等)。
Assembly B
引用
Assembly A
并使用它的自定义控件。
Solution
- 包含程序集project8ѭ和
B
的项目文件。
Control A
使用GetEntryAssembly()定位资源
ResourceName
以获取在运行时工作的程序集引用,但在设计时我想入口程序集是devenv.exe或类似的东西,所以它不起作用。 理想情况下,我应该能够加载创建(实例化)控件的程序集。 我甚至可以引入一个新的
Control A
属性
AssemblyName
,但是我需要完整的路径来加载它,而且我无法在设计时从代码到达程序集B的路径。 编辑:感谢理查德我现在在控件的构造函数中使用Assembly.GetCallingAssemby()并在私有字段中缓存该值,这比GetEntryAssembly更通用。不幸的是它在设计时仍然不起作用(我得到
System.dll
作为调用程序集)。我怀疑这是因为VS设计器不是实例化整个类而只是实例化.designer.cs部分。     
已邀请:
很容易得到实现类型的组件(
System.Type
具有
Assembly
属性)。但是唯一可以获得方法调用者的方法就是使用该方法。 因此,您可以在执行构造函数时获取构造函数程序集的调用者。 但是除了使用IntelliTrace捕获它(如果你有VS Ultimate),你不能及时回过头来获得堆栈跟踪。     

要回复问题请先登录注册