Конвертировать в память объекты POCO в код на c # для инициализации - PullRequest
2 голосов
/ 10 мая 2010

Существует ли библиотека или пример кода для преобразования объекта POCO c # в памяти в файл кода .cs, который создает этот объект. Пример: объект типа автомобиля в памяти становится:

Car c = new Car 
{ 
     Name = "mazda", 
     Id = 5,
     Passengers = new List<string> { "Bob", "Sally" }
     // etc... recursing to the bottom
};

Я могу предположить, что он может устанавливать только публичные свойства.

Ответы [ 3 ]

1 голос
/ 07 марта 2019

Существует расширение Visual Studio (OmarElabd / ObjectExporter), которое генерирует код инициализатора C # во время отладки. Мне лично нужно было генерировать код C # из объектов в памяти во время выполнения. Вот что возникло из первоначальной проблемы: https://www.nuget.org/packages/ObjectDumper.NET/

ObjectDumper.Dump (obj, DumpStyle.CSharp); возвращает код инициализатора C # из переменной. Выходную строку вы можете просто захотеть записать в файл, используя метод File.WriteAllText.

0 голосов
/ 10 мая 2010

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

Вам нужно будет настроить шаблон частичного кода и попросить библиотечную функцию записать оставшуюся часть шаблона кода, а затем запустить шаблоны для генерации вашего класса .cs, который создает ваши объекты POCO. Не уверен, что это единственный способ сделать это, но я видел, как это работает.

0 голосов
/ 10 мая 2010

Мы использовали двоичную сериализацию для сериализации объектов в файл , но не для чтения .CS файлов.

...