Exercise 3: 加载 .NET 库
IronPython 仅能够直接引用一些最通用的 .NET 库。为了引用其它的 .NET 库, 需要显式引用.
IronPython维护着一个引用的列表 (请查看在 Task 1 的 clr.References). 为了添加.net 引用,使用
内置的“clr”模块方法:
-
clr.AddReference 用于直接添加.NET引用,或指定文件明或编译名称(完整或部分). 这个方法主要提供交
互性的控索(interactive exploration). 我们推荐在代码模块中,使用如下方法函数, 因为它们会对加载的编
译库提供更多的控制。
-
clr.AddReferenceToFile 添加对指定文件的引用,这个方法与加载的编译版本无关。最后, 它不确保正确
的编译版本被加载。为了确保加载正确的编译版本, 请使用 clr.AddReferenceByName. 而且AddReferenceToFile
要求编译(库)直接定位在sys.path的路径列表下.
-
clr.AddReferenceToFileAndPath 提供与AddReferenceToFile相似的功能. 不同之处在于它接受绝对
路径。并且在加载之前,AddReferenceToFileAndPath 会添加文件路径到sys.path.
-
clr.AddReferenceByName 添加对指定完整assembly名字的引用。比如:
'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
-
clr.AddReferenceByPartialName 添加对指定“部分”的assembly名称的引用. 这个方法不确保被加载的
assembly版本正确。使用 clr.AddReferenceByName 添加对指定版本的引用.
Task 1: 添加 System.Xml 引用
-
在tutorial路径下启动 IronPython 控制台 (see Introduction for details).
-
为了引用 System.Xml, 首先要引用 Xml 组件到 IronPython. 使用下面代码来添加 System.Xml
引用(您可在敲入"clr.References" 之前或之后,添加 clr.AddReference 代码看一下其中的变化):
import clr
clr.AddReference("System.Xml")
from System.Xml import *
dir()
-
注意clr.AddReference 函数即接受 System.Reflection.Assembly 对象,也接受“字符串”做为参数. 符串
可以是一个完整的编译名称,部分名称或文件名. 为了对对编译引用施加更多的控制, 可适当引用上述函数.