ITextTemplatingEngineHost.ResolvePath 方法
允許主機提供完整路徑,指定檔案名稱或相對路徑。
命名空間: Microsoft.VisualStudio.TextTemplating
組件: Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 (在 Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll 中)
語法
'宣告
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
參數
- path
型別:System.String
要完成的路徑。
傳回值
型別:System.String
String ,包含絕對路徑。
備註
如果檔案名稱沒有路徑,指示詞處理器可以呼叫這個方法。 主應用程式可以嘗試提供搜尋特定檔案的路徑,並在找到路徑資訊時傳回檔案和路徑。
每個文字範本轉換可呼叫這個方法 0次、1次或多次。 如需詳細資訊,請參閱 T4 文字範本指示詞。
主應用程式可以依其慣用的順序來搜尋不同位置中的組件,或將其選擇的路徑加入至組件參考的開頭。
範例
您可以從文字範本呼叫這個方法。 您必須設定 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 #>
下列程式碼範例示範自訂主機可能的實作。 這個程式碼是完整範例的一部分。 如需完整的範例,請參閱 逐步解說:建立自訂文字範本主機。
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 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。