2017-10-17 107 views
2

我正試圖爲任何給定的類檢索單個文件路徑。例如,我在下面的文件路徑類AuthorizeOverrideBalancingPopup.cs:如何返回C#類文件路徑

C:\研發\ POM \ PageObjectModel \ PageObjects \面板\ AuthorizeOverrideBalancingPopup.cs

是否有任何C#方法,我可以使用爲了返回完整的文件路徑?看起來大多數其他類似的問題都返回了IDE的目錄,而不是類的本身,它位於完全不同的目錄中。

+0

我不明白你的問題。您在一個項目中有一些代碼可以掃描另一個項目中的代碼以查找特定的類,並且它應該返回該類所在文件的絕對路徑。 – mason

+3

也許你可以解釋爲什麼你想這樣做,可能有更好的方法來解決問題 – Dale

+0

我認爲你的'.cs'文件將在編譯項目時被編譯成一個'.dll'文件 - 所以確定每個類的文件路徑的效用可能會丟失。 – alex

回答

6

您可以使用CallerFilePath屬性:

static void Main(string[] args) 
{ 
    Console.WriteLine(GetPath()); 
    Console.Read(); 
} 

static string GetPath([CallerFilePath]string fileName = null) 
{ 
    return fileName; 
} 
+0

這將返回我正在查找的內容。謝謝@logix。 – JOberloh

2

你的程序的某處運行,其中不存在這些文件。它們被編譯成exe文件,並且不會隨代碼「發貨」。

這裏的其他答案指的是編譯時的代碼(請參閱MSDN),並且在目標機器上執行該文件時不會在那裏。 (雖然也許這就是你想要的?)根據您的評論(「到再能湊類名」)

使用

編輯this.GetType().Nametypeof(Class1).Namenameof(Class1) [從C#6 ]

+0

您的編輯也會返回我正在尋找的部分,我非常感謝您的幫助。謝謝@ispiro! – JOberloh

相關問題