Powershell自身未发现定义class的语法,如果需要创建自定义的类需要结合C#类定义代码及Powershell的Add-Type Cmd-Let。在一个Powershell文件中定义类可采用以下方式:

1、将一个定义类的源码以string类型保存到变量中,源码用C#语法编写。

2、使用Add-Type命令将定义的类注册。

3、使用New-Object创建类实例,使用类。

示例源码: 

  1. $source=@" 
  2. public class classA 
  3.     private string name
  4.     public classA(string str) 
  5.     { 
  6.         this.name=str; 
  7.     } 
  8.     public string Name 
  9.     { 
  10.         get {return this.name;} 
  11.         set {this.name=value;} 
  12.     } 
  13.     public void sayHello() 
  14.     { 
  15.         System.Console.WriteLine("hello, "+this.Name); 
  16.     } 
  17. "@ 
  18.  
  19. Add-Type -TypeDefinition $source; 
  20.  
  21. $myObject=New-Object classA("langhunld"); 
  22. $myObject.Name
  23. $myObject.sayHello(); 
  24. $myObject.Name="Not Set"
  25. $myObject.Name
  26. $myObject.sayHello(); 

使用Add-Type Cmd-Let还可以有更多的方法创建自定义类,如通过.Net源代码文件,加载dll文件。详细请在Powershell中使用“Get-Help Add-Type -Full”查看。