.net – 如何在PowerShell中引用UWP类

我想使用通用 Windows平台库中的数据类型,如何在PowerShell中引用包含的命名空间或程序集?

例如,我想用Windows.Data.Json.JsonObject class来解析一些json.

如果这是一个常规的.NET类,我会做类似的事情

Add-Type -AssemblyName Windows.Data.Json
$jsonObject = [Windows.Data.Json.JsonObject]::Parse('{data:["powershell","rocks"]}')

但这个策略让我失望:

Add-Type : Cannot add type. The assembly 'Windows.Data.Json' Could not be found.
At line:1 char:1
+ Add-Type -AssemblyName Windows.Data.Json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Windows.Data.Json:String) [Add-Type],Exception
    + FullyQualifiedErrorId : ASSEMBLY_NOT_FOUND,Microsoft.PowerShell.Commands.AddTypeCommand

现在,假设Windows.Data.Json命名空间的程序集是Windows.Data.Json.dll,我可能完全错了,但API引用实际上似乎不包含对包含文件的任何引用,我相信一个DLL文件实际上不是我应该寻找的.

我假设UWP有自己的酷GAC类商店,我可以从中加载共享库,我只是不知道如何.

基本上我的问题是,我如何将一个UWP共享库加载到PowerShell中,我应该如何引用UWP类型的文字

在Windows 10上运行PowerShell 5.1(内部版本1703)

发布此问题后不久,我偶然发现 the GitHub repo for BurntToast,一个允许从PowerShell提升UWP Toast Notifications的模块,它引用了WinRT Toastnotificationmanager类型,如下所示:
[Windows.UI.Notifications.Toastnotificationmanager,Windows.UI.Notifications,ContentType = WindowsRuntime]

所以,看起来我对UWP类的语法是:

[<class name>,<namespace>,ContentType = WindowsRuntime]

考虑到这一点,我尝试了我在问题中给出的例子,并且看到:

PS C:\> $jsonObjectClass = [Windows.Data.Json.JsonObject,Windows.Data.Json,ContentType=WindowsRuntime]
PS C:\> $jsonObject = $jsonObjectClass::Parse('{"data":["powershell","rocks"]}')
PS C:\> $jsonObject

Key  Value                 
---  -----                 
data ["powershell","rocks"]

在引用类型名称一次后,我似乎能够在类型文字中使用类名而不限定它:

[Windows.Data.Json.JsonObject]::Parse("{}") # works without throwing errors Now

尽管如此,仍然非常希望找到任何关于此的文档

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...