如何创建抽象类类型对象的集合

时间:2012-11-09 09:42:12

标签: powershell generic-list custom-object

我在Microsofts WHCK 2.0 API上编写了一个PowerShell脚本。我来自perl背景所以在powershell或c#中不太了解。

好吧,我的代码是:

$ObjectModel  = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.dll")
$DbConnection = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.dbconnection.dll")
$Submission   = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.submission.dll")

稍后。

   $List = New-Object "System.Collections.Generic.List``1[Microsoft.Windows.Kits.Hardware.ObjectModel.Target]"

当我运行此代码时,会产生此错误:

“New-Object:找不到类型:[System.Collections.Generic.List`1 [Microsoft.Windows.Kits.Hardware.ObjectModel.Target]]:确保加载包含此类型的aseembly。”

我已经使用CurrentDomain.getAssemblies()方法验证了aseemblies的正确加载。 此外,我已经验证“Microsoft.Windows.Kits.Hardware.ObjectModel.Target”类型存在于“Microsoft.Windows.Kits.Hardware.ObjectModel.dll”程序集中,如下:

$ObjectModel.GetTypes() | % { 
      if($_.FullName -eq "Microsoft.Windows.Kits.Hardware.ObjectModel.Target")
      { 
          $found=1
      }
}

我还想提一件事,“Microsoft.Windows.Kits.Hardware.ObjectModel.Target”这个类型/类是一个抽象类。

我搜索了很多,但无法找到摆脱这个错误的正确方法。请建议并帮助克服此错误。

1 个答案:

答案 0 :(得分:1)

试试这个:

$List = New-Object 'System.Collections.Generic.List[Microsoft.Windows.Kits.Hardware.ObjectModel.Target]'