如何获取dll文件中的类之类的信息?

时间:2019-03-05 05:58:43

标签: powershell

我有一个.net framework dll文件,并且其中包含一些类。

我想使用Powershell在.dll文件中获取所有类的名称,该怎么办?

更新:

当我尝试使用null时,出现以下错误。

enter image description here

2 个答案:

答案 0 :(得分:2)

我认为您可以做到:

$Assembly = [System.Reflection.Assembly]::LoadFrom('c:\temp\file.dll')
$Assembly.DefinedTypes
$Assembly.GetExportedTypes()
$Assembly.GetLoadedModules()

答案 1 :(得分:1)

另一种方法:使用Import-Module导入DLL并调用程序集的GetTypes()。像这样

PS C:\> import-module "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Microsoft.SqlServer.Smo.dll"
PS C:\> $smo = ([appdomain]::CurrentDomain.GetAssemblies()) | ?{ $_.modules.name.contains("SqlServer") }
PS C:\> $smo.gettypes() | ? { $_.isPublic -and $_.isClass }