Compartir a través de


ITextTemplatingEngineHost.ResolvePath (Método)

Permite que un host proporcione una ruta de acceso completa, dado un nombre de archivo o una ruta de acceso relativa.

Espacio de nombres:  Microsoft.VisualStudio.TextTemplating
Ensamblado:  Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (en Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)

Sintaxis

'Declaración
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

Parámetros

Valor devuelto

Tipo: System.String
Objeto String que contiene una ruta de acceso absoluta.

Comentarios

Un procesador de directivas puede llamar a este método si un nombre de archivo no tiene una ruta de acceso. El host puede intentar proporcionar información de la ruta de acceso buscando rutas de acceso concretas del archivo y devolviendo el archivo y la ruta de acceso si se encuentran.

Se puede llamar a este método 0, 1 o varias veces, para cada transformación de plantilla de texto. Para obtener más información, vea Directivas de plantilla de texto T4.

Un host puede buscar el ensamblado en ubicaciones diferentes, en el orden que prefiera, o agregar una ruta de acceso de su elección al inicio de la referencia de ensamblado.

Ejemplos

Puede llamar a este método desde una plantilla de texto. Debe establecer 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 #>

El ejemplo de código siguiente muestra una posible implementación para un host personalizado. Este ejemplo de código forma parte de un ejemplo más extenso. Para obtener el ejemplo completo, vea Tutorial: Crear un host de plantillas de texto personalizadas.

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

Seguridad de .NET Framework

Vea también

Referencia

ITextTemplatingEngineHost Interfaz

Microsoft.VisualStudio.TextTemplating (Espacio de nombres)