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”查看。