在Powershell中有许多不同的方法来创建对象.我发布这个作为纯粹在Powerhell中创建对象的挑战.我正在寻找一种使用Add-Type创建对象的方法来传递这些要求:
New-Object,[My.Object]::New(),[My.Object]@{'Property'='Value'}$myVar -is [My.Object]我知道可以在Visual Studio中创建可以实现此目的的dll,但我正在寻找一种纯粹的Powershell方法来创建对象.
以下是我最接近上述规则的示例:
PS C:\> $memberDef = @"
public String myString { get; set; }
public int myInt { get; set; }
"@
PS C:\> Add-Type -Namespace "My.Namespace" -Name "Object" -MemberDefinition $memberDef
PS C:\> $myObj = [My.Namespace.Object]@{'myString'='Foo'; 'myInt'=42}
PS C:\> $myObj
myString myInt
-------- -----
Foo 42
Run Code Online (Sandbox Code Playgroud)
话虽如此,还有其他(可能更好)的方法来创建外观,感觉和行为像本机Powershell对象的对象?
弱类型对象属性:
PS C:\> $myObj = "" | Select-Object -Property myString, myInt
PS C:\> $myObj = New-Object -TypeName PSObject …Run Code Online (Sandbox Code Playgroud)