【发布时间】:2014-10-10 10:28:29
【问题描述】:
我正在尝试构建一个脚本,该脚本将为我提供来自 .net 组件的 dll 方法列表。
这是我到目前为止所做的:
Param([String]$path)
if($path.StartsWith("["))
{
$asm = [Reflection.Assembly]::LoadWithPartialName($path)
$asm.GetTypes() | select Name, Namespace | sort Namespace | ft -groupby Namespace
}
else
{
$asm = [Reflection.Assembly]::LoadFile($path)
$asm.GetTypes() | select Name, Namespace | sort Namespace | ft -groupby Namespace
}
所以基本上脚本的第二部分(在提供 dll 的路径时)工作得非常好;
运行 '.\GetDllMethods.ps1 -path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"' 将为我提供 WinSCP dll 的所有成员。
我想用脚本的第一部分实现的是通过提供 .net 组件的名称来获得相同的结果:
.\GetDllMethods.ps1 -path "[System.IO.StreamWriter]"
获取StreamWriter组件的所有成员。
但是我在这里得到一个空异常..有什么提示吗?
【问题讨论】:
标签: .net powershell dll reflection