Подтвердить что ты не робот

Создание классов из анонимных типов в С#

Существуют ли какие-либо инструменты, которые могут генерировать классы из анонимных типов?

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

4b9b3361

Ответ 1

Это один из refactorings, поддерживаемый Resharper. При вложенных анонимных типах (где один анонимный тип имеет свойства другого анонимного типа), вам просто нужно будет преобразовать внутренние типы, прежде чем вы получите возможность конвертировать внешний.

Ответ 2

Я нашел другой способ, который будет делать это без использования Resharper. Протестировано на VS 2015.

Предположим, у вас есть такой анонимный тип:

return new
{
    Prop = "val"
};

Просто дайте ему имя, вот так

return new AnonType
{
    Prop = "val"
};

и после этого рядом с первой строкой появляется лампочка, и когда вы щелкаете по ней, она показывает вам опции, которые сгенерируют этот класс для вас, где вы хотите.

Здесь вы можете увидеть, о чем я говорю.

Demonstration

Ответ 3

Resharper - конвертировать анонимный в именованный тип

Преобразование анонимных имен в именный тип рефакторинга преобразует анонимный типов для вложенных или именных типов верхнего уровня в рамках текущий метод (локально) или целое решение (глобально). в диалоговое окно, которое предоставляет этот рефакторинг, вы также можете указать должен ли ReSharper генерировать автоматические свойства или свойства с помощью поля поддержки и выбор метода равенства и форматирования переопределение. enter image description here