我有一个C#类(B
),它继承了一个带有getter和setter的属性(p2
),但只覆盖了setter。问题是我无法使用PowerShell读取该属性。
这是PowerShell中的错误吗?有没有一种简单的方法直接从PowerShell读取p2
的{{1}}属性?
这是我的示例PowerShell:
$b
如果我尝试使用powershell获取Add-Type -TypeDefinition @"
public class A {
public virtual string p1{get;set;}
public virtual string p2{
get{return "Agetp2-"+p1;}
set{p1 = "Asetp2-"+value;}
}
}
public class B : A {
public override string p2{
set{p1 = "Bsetp2-"+value;}
}
}
public class Test {
public static string getP2(){
B b = new B();
b.p2 = "TEST";
return b.p2;
}
}
"@
p2
属性:
B
我收到错误:
$b = New-Object B $b.p2 = "TEST" $b.p2
但是,如果我运行C#测试方法:
Cannot get property value because "p2" is a write-only property.
at line: 1 Character: 1
+ $b.p2
+ ~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : WriteOnlyProperty
我得到了预期的输出:
[Test]::getP2()
这是我的Agetp2-Bsetp2-TEST
:
$PSVersionTable