在C#中將類的名稱作為字符串獲取

c# entity-framework

有沒有辦法獲取類名並將其轉換為C#中的字符串?

作為實體框架的一部分,.Include方法在執行查詢時接受以點分隔的字符串列表以加入。我有我想要加入的類模型,並且出於重構和未來代碼維護的原因,我希望能夠在引用這個類時具有編譯時的安全性。

那麼,有沒有辦法可以做到這一點:

class Foo
{
}

tblBar.Include ( Foo.GetType().ToString() );

我不認為我可以在沒有實例的情況下執行GetType()。有任何想法嗎?

一般承認的答案

Include需要屬性名稱 ,而不是類名。因此,它是您想要的屬性的名稱,而不是其類型的名稱。 你可以通過反思得到它


熱門答案

您不能在沒有實例的情況下使用.GetType() ,因為GetType是一種方法。

您可以從類型中獲取名稱,如下所示:

typeof(Foo).Name

正如Chris所指出的,如果您需要可以使用的程序集限定名稱

typeof(Foo).AssemblyQualifiedName


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因