/reference (импорт метаданных) (параметры компилятора C#)

Обновлен: Ноябрь 2007

Параметр /reference указывает компилятору импортировать сведения типа public (справочник по C#) из указанного файла в текущий проект. Это позволяет ссылаться на метаданные из указанных файлов сборок.

/reference:[alias=]filename
/reference:filename

Аргументы

  • filename
    Имя файла, содержащего манифест сборки. Чтобы импортировать несколько файлов, включите отдельный параметр /reference для каждого файла.

  • alias
    Допустимый идентификатор C#, который представляет корневое пространство имен, содержащее все пространства имен сборки.

Заметки

Чтобы импортировать данные из нескольких файлов, включите отдельный параметр /reference для каждого файла.

Импортируемые файлы должны содержать манифест; выходной файл следует компилировать не параметром /target:module (создание модуля для добавления к сборке) (параметры компилятора C#), а с одним из параметров /target (указание формата выходного файла) (параметры компилятора C#).

/r является короткой формой параметра /reference.

Для импорта метаданных из выходного файла, которые не содержит манифест сборки используется параметр /addmodule (импорт метаданных) (параметры компилятора C#).

При ссылке на сборку (сборку А), которая, в свою очередь, ссылается на другую сборку (сборку Б), необходимо ссылаться на сборку Б в указанных ниже случаях.

  • Используемый в сборке A тип наследует от типа сборки Б или реализует интерфейс из этой сборки.

  • Вызывается поле, свойство, событие или метод, которые имеют тип возвращаемых данных или тип параметра из сборки Б.

Для указания каталога, в котором находятся связанные сборки, используется параметр /lib (указание расположений для ссылок на сборки) (параметры компилятора C#). В разделе, посвященном параметру /lib, также рассматриваются каталоги, в которых компилятор выполняет поиск сборок.

Чтобы компилятор мог распознавать тип в сборке (не в модуле), ему следует указать принудительно разрешать типы. Это можно сделать, определив экземпляр типа. Возможны и другие способы разрешения компилятором имен типов в сборке. Например, если тип наследуется от типа в сборке, его имя будет распознаваться компилятором.

Иногда бывает необходимо сослаться на две различные версии одного компонента из одной сборки. Для этого следует использовать подпараметр псевдонима параметра /reference для каждого файла, чтобы различить оба файла. Этот псевдоним используется в качестве квалификатора имени компонента и разрешается в компонент в одном из файлов.

Файл ответов csc (RSP-файл), который ссылается на часто используемые сборки .NET Framework, используется по умолчанию. Если не требуется, чтобы компилятор использовал файл csc.rsp, используйте параметр /noconfig (пропуск csc.rsp) (параметры компилятора C#).

Дополнительные сведения см. в разделе Диалоговое окно "Добавление ссылки".

Пример

В следующем примере показан способ использования функции Псевдоним extern (справочник по C#).

В примере компилируется файл исходного кода и импортируются метаданные из сборок grid.dll и grid20.dll,которые были скомпилированы ранее. Два DLL-файла содержат разные версии одного компонента, поэтому для компиляции файла исходного кода используется параметр /reference с подпараметрами псевдонимов. Эти параметры выглядят следующим образом:

/reference:GridV1=grid.dll и /reference:GridV2=grid20.dll

При этом устанавливаются внешние псевдонимы "GridV1" и "GridV2", которые используются посредством оператора "extern":

extern GridV1;
extern GridV2;
// Using statements go here.

После выполнения описанных выше действий можно ссылаться на элемент управления "сетка" из файла grid.dll, предваряя имя элемента управления префиксом GridV1, как показано в следующем коде:

GridV1::Grid

Кроме того, можно ссылаться на элемент управления "сетка" из файла grid20.dll, предваряя имя элемента управления префиксом GridV2, как показано ниже:

GridV2::Grid 

См. также

Другие ресурсы

Параметры компилятора C#

Свойства проекта (Visual Studio)