Método ITextTemplatingEngineHost.ResolvePath
Permite que um host fornecer um caminho completo, 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 procurar 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 a partir 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 Passo a passo: Criando 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.