如何从ironpython导入和调用.Net DeviceInformation.FindAllAsync?

如何从ironpython导入和调用.Net DeviceInformation.FindAllAsync?,.net,assemblies,ironpython,.net,Assemblies,Ironpython,有人知道如何从IronPython导入和访问Windows.Devices.Enumeration.DeviceInformation.FindAllAsync() 我有一些针对Win8.1上的.Net 4.5的C#代码,我正试图将其移植到Iron Python,例如: C#代码片段: 但是,我似乎无法导入“Windows”程序集 clr.AddReference("Windows") 结果: IOError: System.IO.IOException: Could not add refe

有人知道如何从IronPython导入和访问
Windows.Devices.Enumeration.DeviceInformation.FindAllAsync()

我有一些针对Win8.1上的.Net 4.5的C#代码,我正试图将其移植到Iron Python,例如:

C#代码片段:

但是,我似乎无法导入“Windows”程序集

clr.AddReference("Windows")
结果:

IOError: System.IO.IOException: Could not add reference to assembly Windows
有人知道路吗

下面是我的完整测试用例(根据一些评论进行了更新):

输出:

(<mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089>,
<System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089>,
<IronPython.SQLite, Version=2.7.5.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1>,
<IronPython.Wpf, Version=2.7.5.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1>,
<System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>,
<System.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>,
<System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>,
<System.Runtime.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089>,
<System.Runtime.InteropServices.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>)

Traceback (most recent call last):
  File "notnet.py", line 17, in <module>
AttributeError: 'namespace#' object attribute 'Devices' is read-only
输出:


SystemError:不支持此操作。(来自HRESULT:0x8013155的异常)

System.Windows
可能吗?这似乎是另一个程序集,它没有“设备”子命名空间。
System.Runtime.InteropServices.WindowsRuntime.dll
程序集对您可用吗?我想这会给你所需要的。我可以加载程序集,但不能导入设备子命名空间。@杰夫感谢指针——我已经更新了我的测试用例,但是“Windows”命名空间(根据智能感知,或者可能被运行时错误重新强制执行)只具有基础和UI作为子命名空间。
import clr

clr.AddReference("System.Windows")
clr.AddReference("System.Linq")
clr.AddReference("System.Runtime")
clr.AddReference("System.Runtime.WindowsRuntime")
clr.AddReference("System.Runtime.InteropServices.WindowsRuntime")

print  clr.References

import System
from System.Runtime import *
from System.Runtime.InteropServices.WindowsRuntime import *
import Windows


Windows.Devices.Enumeration.DeviceInformation.FindAllAsync()
(<mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089>,
<System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089>,
<IronPython.SQLite, Version=2.7.5.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1>,
<IronPython.Wpf, Version=2.7.5.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1>,
<System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>,
<System.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>,
<System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>,
<System.Runtime.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089>,
<System.Runtime.InteropServices.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a>)

Traceback (most recent call last):
  File "notnet.py", line 17, in <module>
AttributeError: 'namespace#' object attribute 'Devices' is read-only
import clr
import sys
sys.path.append(r"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral")
sys.path.append(r"C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral")
clr.AddReferenceToFile("platform.winmd")
clr.AddReferenceToFile("Windows.winmd")