PowerShell将仅覆盖其setter的属性视为只写

时间:2018-04-06 16:35:10

标签: powershell

我有一个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

0 个答案:

没有答案