Пользовательский тип в Powershell с Generics Collection в качестве члена - PullRequest
2 голосов
/ 13 марта 2012

Я хотел бы объявить следующий тип в моем скрипте powershell:

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

Но компилятор жалуется, что HashSet не может быть найден.

Если я закомментирую строку HashSet,Тип работает отлично.Я полагаю, я должен сказать PowerShell, чтобы загрузить сборку System.Core, но я не смог понять это.

Пожалуйста, кто-нибудь может сказать мне, что мне не хватает?

Спасибо заранее.

[EDIT:] С вашей быстрой помощью мне удалось решить мою проблему.Спасибо за ваше время.

Это мой окончательный код:

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>();
  }
"@

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Вот так:

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 #.

0 голосов
/ 13 марта 2012

Вы можете добавить ссылки с помощью параметра Referenced Assemblies.

Add-Type -ReferencedAssemblies System.Core
...