ITextTemplatingEngineHost.ResolvePath-Methode
Ermöglicht einem Host, einen vollständigen Pfad bereitzustellen, wenn ein Dateiname oder ein relativer Pfad angegeben wird.
Namespace: Microsoft.VisualStudio.TextTemplating
Assembly: Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (in Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll)
Syntax
'Declaration
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
Parameter
- path
Typ: System.String
Der zu vervollständigende Pfad.
Rückgabewert
Typ: System.String
Eine String, die einen absoluten Pfad enthält.
Hinweise
Ein Direktivenprozessor kann diese Methode aufrufen, wenn ein Dateiname keinen Pfad hat. Der Host kann versuchen, durch Suchen in bestimmten Pfaden nach der Datei und Zurückgeben der Datei und des Pfads, wenn gefunden, Pfadinformationen bereitzustellen.
Diese Methode kann als 0-mal, 1-mal oder mehrmals für jede Textvorlagentransformation aufgerufen werden. Weitere Informationen finden Sie unter T4-Textvorlagendirektiven.
Ein Host kann nach der Assembly an anderen Speicherorten suchen, in der Reihenfolge, die er vorzieht, oder aber einen Pfad seiner Wahl am Anfang des Assemblyverweises hinzufügen.
Beispiele
Sie können diese Methode von einer Textvorlage aus aufrufen. Sie müssen hostspecific="true" festlegen.
<#@ 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 #>
Im folgenden Codebeispiel wird eine mögliche Implementierung für einen benutzerdefinierten Host veranschaulicht. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels. Das vollständige Beispiel finden Sie unter Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Textvorlagenhosts.
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;
}
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.