如何消除Powershell中的Type.GetProperty方法的歧义?

时间:2015-06-15 19:23:59

标签: powershell reflection powershell-v2.0 overloading

我正在尝试创建一个执行C#代码in this answer所做的Powershell脚本。

当我到达

$type = ($fieldlink).GetType()
$propInfo = $type.GetProperty("Default", [System.Reflection.BindingFlags]::NonPublic -bor [System.Reflection.BindingFlags]::Instance)

我收到错误

  

为“GetProperty”和参数找到了多个模糊的重载   数:“2”。

如何消除歧义并指定我想要带有字符串和BindingFlags的重载?

1 个答案:

答案 0 :(得分:4)

-bor运算符返回基础类型的结果(在这种情况下为[int])而不是原始枚举类型。所以你必须将结果强制转换回[System.Reflection.BindingFlags],尽管我更喜欢从字符串转换为枚举类型:

$propInfo = $type.GetProperty("Default", [System.Reflection.BindingFlags]'NonPublic, Instance')