xywuyiba6 发表于 2018-9-3 09:11:38

Powershell备忘录:在Powershell中创建自定义类

  Powershell自身未发现定义class的语法,如果需要创建自定义的类需要结合C#类定义代码及Powershell的Add-Type Cmd-Let。在一个Powershell文件中定义类可采用以下方式:
  1、将一个定义类的源码以string类型保存到变量中,源码用C#语法编写。
  2、使用Add-Type命令将定义的类注册。
  3、使用New-Object创建类实例,使用类。
  示例源码:
  


[*]$source=@"
[*]public class classA
[*]{
[*]    private string name;
[*]    public classA(string str)
[*]    {
[*]      this.name=str;
[*]    }
[*]    public string Name
[*]    {
[*]      get {return this.name;}
[*]      set {this.name=value;}
[*]    }
[*]    public void sayHello()
[*]    {
[*]      System.Console.WriteLine("hello, "+this.Name);
[*]    }
[*]}
[*]"@
[*]
[*]Add-Type -TypeDefinition $source;
[*]
[*]$myObject=New-Object classA("langhunld");
[*]$myObject.Name;
[*]$myObject.sayHello();
[*]$myObject.Name="Not Set";
[*]$myObject.Name;
[*]$myObject.sayHello();
  

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


页: [1]
查看完整版本: Powershell备忘录:在Powershell中创建自定义类