我想在我的 powershell 脚本中声明以下类型:

Add-Type @'
  public class VirtualMachine {
    string Name;
    string HostName;
    HashSet<string> Dependencies = new HashSet<string>();
  }
'@

但编译器抱怨找不到 HashSet。

如果我注释掉 HashSet 行,该类型就可以正常工作。我想我必须告诉 powershell 加载 System.Core 程序集,但我无法弄清楚。

请有人能告诉我我错过了什么吗?

提前谢谢。

编辑:]在您的快速帮助下,我设法解决了我的问题。谢谢您的时间。

这是我的最终代码:

Add-Type -ReferencedAssemblies System.Core  @"
  using System.Collections.Generic;
  public class VirtualMachine {
    public string Name;
    public string HostName;
    public HashSet<string> Dependencies = new HashSet<string>();
  }
"@
有帮助吗?

解决方案

像这样:

Add-Type -ReferencedAssemblies System.Core  @"
using System.Collections.Generic;
 public class VirtualMachine {

    public string Name { get; set; }
    public string HostName{ get; set; }   
    public HashSet<string> Dependencies { get; set; }

  }
"@ 

您必须添加程序集引用 System.Core 并添加一个 using System.Collections.Generic 在你的c#代码中。

其他提示

您可以通过引用的汇编参数添加引用。

Add-Type -ReferencedAssemblies System.Core
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top