/reference (Importer les métadonnées) (Options du compilateur C#)
Mise à jour : novembre 2007
L'option /reference fait en sorte que le compilateur importe des informations de type public (Référence C#) dans le fichier spécifié dans le projet actuel, vous permettant ainsi de référencer les métadonnées provenant des fichiers d'assembly spécifiés.
/reference:[alias=]filename
/reference:filename
Arguments
filename
Nom d'un fichier comportant un manifeste d'assembly. Pour importer plusieurs fichiers, incluez une option /reference distincte pour chaque fichier.alias
Identificateur C# valide représentant un espace de noms racine qui contiendra tous les espaces de noms de l'assembly.
Notes
Pour effectuer une importation à partir de plusieurs fichiers, incluez une option /reference distincte pour chaque fichier.
Les fichiers que vous importez doivent contenir un manifeste ; le fichier de sortie doit avoir été compilé à l'aide d'une option /target (Spécifier le format du fichier de sortie) (Options du compilateur C#) différente de /target:module (Créer un module à ajouter à l'assembly) (Options du compilateur C#).
/r est la forme abrégée de /reference.
Utilisez /addmodule (Importer les métadonnées) (Options du compilateur C#) pour importer des métadonnées à partir d'un fichier de sortie qui ne contient pas de manifeste d'assembly.
Si vous référencez un assembly (assembly A) qui lui-même référence un autre assembly (assembly B), vous devrez référencer l'assembly B dans les cas suivants :
Un type que vous utilisez à partir de l'assembly A hérite d'un type ou implémente une interface à partir de l'assembly B.
Vous appelez un champ, une propriété, un événement ou une méthode dont le type de retour ou de paramètre est issu de l'assembly B.
Utilisez l'option /lib (Spécifier les emplacements des références d'assembly) (Options du compilateur C#) pour spécifier le répertoire dans lequel se trouvent une ou plusieurs de vos références d'assembly. La rubrique /lib indique également les répertoires dans lesquels le compilateur recherche les assemblys.
Pour que le compilateur reconnaisse un type dans un assembly (et non un module), il doit être forcé à résoudre le type. Pour ce faire, vous pouvez définir une instance du type. Le compilateur peut résoudre les noms de types d'un assembly de plusieurs autres façons : par exemple, lorsqu'un type est hérité d'un autre type d'un assembly, le nom du type est alors reconnu par le compilateur.
Il est parfois nécessaire de référencer deux versions différentes du même composant dans un même assembly. Pour ce faire, utilisez la sous-option d'alias du commutateur /reference pour chaque fichier, afin d'établir une distinction entre les deux fichiers. Cet alias sera utilisé comme qualificateur pour le nom de composant et mettra en correspondance le composant avec l'un des fichiers.
Le fichier réponse (.rsp) csc, qui fait référence aux assemblys .NET Framework couramment utilisés, est utilisé par défaut. Utilisez /noconfig (Ignorer csc.rsp) (Options du compilateur C#) si vous ne voulez pas que le compilateur utilise csc.rsp.
Pour plus d'informations, consultez Ajouter une référence, boîte de dialogue.
Exemple
Cet exemple indique comment utiliser la fonctionnalité extern alias (Référence C#).
Vous compilez le fichier source et importez les métadonnées à partir des fichiers grid.dll et grid20.dll, qui ont été compilés précédemment. Les deux DLL contiennent des versions séparées du même composant, et vous utilisez deux /reference avec des options d'alias pour compiler le fichier source. Les options se présentent comme suit :
/reference:GridV1=grid.dll and /reference:GridV2=grid20.dll
Ceci permet de configurer les alias externes "GridV1" et "GridV2" que vous utilisez dans votre programme au moyen d'une instruction extern :
extern GridV1;
extern GridV2;
// Using statements go here.
Une fois que vous avez terminé, vous pouvez faire référence au contrôle grid à partir de grid.dll, en faisant précéder le nom du contrôle du préfixe GridV1, comme indiqué ci-dessous :
GridV1::Grid
De plus, vous pouvez faire référence au contrôle grid à partir de grid20.dll en faisant précéder le nom du contrôle du préfixe GridV2, comme indiqué ci-dessous :
GridV2::Grid