Получить имя класса в виде строки в C #

c# entity-framework

Вопрос

Есть ли способ взять имя класса и преобразовать его в строку в C #?

Как часть Entity Framework, метод .Include принимает список строк, разделенных точками, для присоединения при выполнении запроса. У меня есть модель класса, к которой я хочу присоединиться, и по причинам рефакторинга и будущего обслуживания кода я хочу иметь возможность безопасности во время компиляции при обращении к этому классу.

Таким образом, есть ли способ, которым я мог бы сделать это:

class Foo
{
}

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

Я не думаю, что я могу сделать GetType () без экземпляра. Есть идеи?

Принятый ответ

Для включения требуется имя свойства , а не имя класса. Следовательно, это имя свойства, которое вы хотите, а не имя его типа. Вы можете получить это с отражением .


Популярные ответы

Вы не можете использовать .GetType() без экземпляра, потому что GetType является методом.

Вы можете получить имя от типа, хотя, как это:

typeof(Foo).Name

И как указал Крис, если вам нужно имя, соответствующее сборке, вы можете использовать

typeof(Foo).AssemblyQualifiedName


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему