gpt4 book ai didi

powershell - 从 powershell 访问私有(private)成员

转载 作者:行者123 更新时间:2023-12-02 22:10:52 24 4
gpt4 key购买 nike

我试图让 Uri 停止编码'/'
如此处所述:
GETting a URL with an url-encoded slash

但是如何在 powershell 中实现相同的功能?

我正在尝试遵循访问私有(private)属性(property)并更改其值(value)的路线,但我无法让它发挥作用。
[Uri].GetProperties([System.Reflection.BindingFlags]::NonPublic) - 不返回任何内容

有任何想法吗?

最佳答案

这是适用于 PowerShell 的有效解决方案:

$uri = [Uri]"http://example.com/%2F"
# access the .PathAndQuery field to initialize the Uri object
$pathAndQuery = $uri.PathAndQuery
$flagsField = $uri.GetType().GetField("m_Flags", [Reflection.BindingFlags]::NonPublic -bor [Reflection.BindingFlags]::Instance)
$flagsValue = [UInt64]$flagsField.GetValue($uri)
# remove flags Flags.PathNotCanonical and Flags.QueryNotCanonical
$flagsValue = [UInt64]($flagsValue -band (-bnot 0x30));
$flagsField.SetValue($uri, $flagsValue)
Write-Host $uri.AbsoluteUri

感谢 google-api-dotnet-client path :-) 请注意,与 .net 2.0 存在一些差异,我的代码适用于 > .net 2.0(对于 <= 2.0 版本, flagsValue 对象的类型将是 [Int32] 而不是 [Uint64] )

关于powershell - 从 powershell 访问私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12709369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com