Método ITextTemplatingEngineHost.ResolvePath
Permite que um host fornecer um caminho completo, o dado um nome de arquivo ou caminho relativo.
Namespace: Microsoft.VisualStudio.TextTemplating
Assembly: Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (em Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)
Sintaxe
'Declaração
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
- path
Tipo: System.String
O caminho para concluir.
Valor de retorno
Tipo: System.String
A String que contém um caminho absoluto
Comentários
Um processador de diretriz pode chamar esse método se um nome de arquivo não tem um caminho. O host pode tentar fornecer informações de caminho caminhos específicos para o arquivo de pesquisa e retornando o arquivo e o caminho, se encontrado
Esse método pode ser chamado de 0, 1 ou várias vezes, para cada transformação do modelo de texto. Para obter mais informações, consulte T4 Diretivas de modelo de texto.
Um host pode pesquisar o assembly em diferentes locais, na ordem em que ele prefere ou adicionar um caminho de sua escolha para o início da referência do assembly.
Exemplos
Você pode chamar esse método de um modelo de texto. Você deve definir 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 #>
O exemplo de código a seguir mostra uma implementação possível para um host personalizado. Este exemplo de código é parte de um exemplo maior. For the complete example, see Demonstra Passo a passo: A criação de um Host de modelo de texto personalizado.
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;
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.