ITextTemplatingEngineHost.ResolvePath, méthode
Permet à l'hôte de fournir un chemin d'accès complet, en fonction d'un nom de fichier ou d'un chemin d'accès relatif.
Espace de noms : Microsoft.VisualStudio.TextTemplating
Assembly : Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (dans Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)
Syntaxe
'Déclaration
Function ResolvePath ( _
path As String _
) As String
string ResolvePath(
string path
)
String^ ResolvePath(
String^ path
)
abstract ResolvePath :
path:string -> string
function ResolvePath(
path : String
) : String
Paramètres
- path
Type : System.String
Le chemin d'accès à terminer.
Valeur de retour
Type : System.String
String qui contient un chemin d'accès absolu.
Notes
Un processeur de directive peut appeler cette méthode si un nom de fichier ne comporte pas de chemin d'accès.L'hôte peut essayer de fournir les informations relatives au chemin d'accès en recherchant le fichier dans les chemins d'accès spécifiques et en retournant le fichier et chemin d'accès en cas de recherche.
Cette méthode peut être appelée plusieurs fois, 1 fois ou 0 fois pour chaque transformation du modèle de texte.Pour plus d'informations, consultez Directives de modèles de texte T4.
Un hôte peut rechercher l'assembly dans différents emplacements, dans l'ordre souhaité, ou ajouter le chemin d'accès de son choix au début de la référence d'assembly.
Exemples
Vous pouvez appeler cette méthode à partir d'un modèle de texte.Vous devez définir hostspecific="true".
<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<#@ import namespace="System.IO" #>
<#
// Find a path within the same project as the text template:
string myFile = File.ReadAllText(this.Host.ResolvePath("MyFile.txt"));
#>
Content of myFile is:
<#= myFile #>
L'exemple de code suivant montre une implémentation possible pour un hôte personnalisé.Cet exemple de code est extrait d'un exemple plus développé.Pour obtenir un exemple complet, consultez Procédure pas à pas : création d'un hôte de modèle de texte personnalisé.
public string ResolvePath(string fileName)
{
if (fileName == null)
{
throw new ArgumentNullException("the file name cannot be null");
}
//If the argument is the fully qualified path of an existing file,
//then we are done
if (File.Exists(fileName))
{
return fileName;
}
//Maybe the file is in the same folder as the text template that
//called the directive.
string candidate = Path.Combine(Path.GetDirectoryName(this.TemplateFile), fileName);
if (File.Exists(candidate))
{
return candidate;
}
//Look more places.
//More code can go here...
//If we cannot do better, return the original file name.
return fileName;
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.