Condividi tramite


Metodo ITextTemplatingEngineHost.ResolvePath

Consente a un host di fornire un percorso completo, dato un nome file o un percorso relativo.

Spazio dei nomi:  Microsoft.VisualStudio.TextTemplating
Assembly:  Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (in Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)

Sintassi

'Dichiarazione
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

Parametri

Valore restituito

Tipo: System.String
Oggetto String che contiene un percorso assoluto.

Note

Un processore di direttiva può chiamare questo metodo se un nome file non dispone di un percorso. L'host può tentare di fornire le informazioni sul percorso cercando il file in percorsi specifici e restituendo il file e il percorso, se vengono trovati.

Questo metodo può essere chiamato 0, 1 o più volte per ogni trasformazione del modello di testo. Per ulteriori informazioni, vedere T4 Text Template Directives.

Un host può cercare l'assembly in percorsi diversi, nell'ordine preferito, o aggiungere un percorso a scelta all'inizio del riferimento all'assembly.

Esempi

Questo metodo può essere chiamato da un modello di testo. È necessario impostare 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 #>

Nell'esempio di codice seguente viene illustrata una possibile implementazione di un host personalizzato. Questo esempio di codice fa parte di un esempio più esaustivo. Per l'esempio completo, vedere Walkthrough: Creating a Custom Text Template Host.

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;
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

ITextTemplatingEngineHost Interfaccia

Spazio dei nomi Microsoft.VisualStudio.TextTemplating