1

我正在为在 .NET 框架上运行的语言编写编译器。我正在尝试为导入语句生成代码。基本上

import System.Drawing

应该表现得像

using System.Drawing;

在 C# 中。import 语句还将支持以下内容:

import Foo.Bar in "foo.dll"

这将在 foo.dll 中导入 Foo.Bar 类。我的问题是如何使用 Reflection.Emit 将这些链接到我生成的程序中?

谢谢你。

4

1 回答 1

3

你只是:消费图书馆。这意味着,您只需在发出的代码中使用来自 foo.dll 的类型/方法。Reflection.Emit包装器将自动添加必要的参考元数据。请注意,这意味着如果您的代码导入了一个库然后不使用它,那么生成的 IL 中将不存在该引用。有趣的是,这正是C# 编译器所做的(可能是 VB 编译器)。

于 2012-12-17T19:54:02.083 回答