共用方式為


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

參數

傳回值

型別: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 安全性

請參閱

參考

ITextTemplatingEngineHost 介面

Microsoft.VisualStudio.TextTemplating 命名空間