C#の文字列としてクラスの名前を取得する

c# entity-framework

質問

クラス名を取得し、それをC#の文字列に変換する方法はありますか?

Entity Frameworkの一部として、.Includeメソッドは、クエリの実行時に結合する文字列のドット区切りリストを受け取ります。参加したいもののクラスモデルがあり、リファクタリングと将来のコードメンテナンスのために、このクラスを参照するときにコンパイル時の安全性を確保できるようにしたいです。

したがって、私がこれを行うことができる方法があります:

class Foo
{
}

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

インスタンスなしでGetType()を実行できるとは思わない。何か案は?

受け入れられた回答

Includeにはクラス名ではなくプロパティ名が必要です。したがって、それはあなたが望むプロパティの名前であり、そのタイプの名前ではありません。 あなたは反射でそれを得ることができます


人気のある回答

GetTypeはメソッドなので、インスタンスなしでは.GetType()を使用できません。

このようにタイプから名前を得ることができます:

typeof(Foo).Name

そしてクリスによって指摘されたように、あなたがあなたが使用できるアセンブリ修飾名を必要とするならば

typeof(Foo).AssemblyQualifiedName


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ