我正在尝试对拥有当前应用程序中打开的表单的所有程序集进行一些处理。 我可以轻松地使用以下代码获取表单对象:
System.Windows.Forms.Application.OpenForms
我希望能够遍历此列表并找到每个实例所属的程序集。我知道如何找到拥有给定表单类的程序集,但不知道如何找到特定类实例所属的程序集。
我正在尝试对拥有当前应用程序中打开的表单的所有程序集进行一些处理。 我可以轻松地使用以下代码获取表单对象:
System.Windows.Forms.Application.OpenForms
我希望能够遍历此列表并找到每个实例所属的程序集。我知道如何找到拥有给定表单类的程序集,但不知道如何找到特定类实例所属的程序集。
formInstance.GetType().Assembly
回复评论后进行编辑:
from form in Application.OpenForms
where form.Owner != null
select form.Owner.GetType().Assembly
OpenForms
中每个实例的.Owner
属性对应的Form
类的程序集。是这样吗?我已经更新了我的答案以反映我的新理解。我感到困惑是因为你说:“我想遍历这个列表[OpenForms],并找到每个实例的拥有程序集。”“拥有程序集”意味着表单声明所在的程序集,而不是其所有者的程序集。我想你的意思是“我想遍历这个列表,并找到每个实例的所有者的程序集。”如果是这样,请告诉我。 - Bryan Watts