如何在C#中查找对象所属的程序集

3

我正在尝试对拥有当前应用程序中打开的表单的所有程序集进行一些处理。 我可以轻松地使用以下代码获取表单对象:

System.Windows.Forms.Application.OpenForms

我希望能够遍历此列表并找到每个实例所属的程序集。我知道如何找到拥有给定表单类的程序集,但不知道如何找到特定类实例所属的程序集。

1个回答

11
formInstance.GetType().Assembly

回复评论后进行编辑:

from form in Application.OpenForms
where form.Owner != null
select form.Owner.GetType().Assembly

不,正如我之前所说的那样,它找到了拥有Type类的程序集。我想要的是拥有formInstance的程序集。 - Wade Tandy
听起来你想要包含OpenForms中每个实例的.Owner属性对应的Form类的程序集。是这样吗?我已经更新了我的答案以反映我的新理解。我感到困惑是因为你说:“我想遍历这个列表[OpenForms],并找到每个实例的拥有程序集。”“拥有程序集”意味着表单声明所在的程序集,而不是其所有者的程序集。我想你的意思是“我想遍历这个列表,并找到每个实例的所有者的程序集。”如果是这样,请告诉我。 - Bryan Watts
我没意识到那就是我想要的,但是现在你把那段代码放在我面前,是的,那就是我一直在寻找的答案。 - Wade Tandy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接