С# Project имеет автоматически сгенерированные классы, но что автоматически сгенерировал их?

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

В настоящее время есть несколько файлов классов со следующими сверху:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.1433
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System.Xml.Serialization;

// 
// This source code was auto-generated by xsd, Version=2.0.50727.1432.
// 

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

Ответ 1

Это Инструмент определения схемы XML. Что вы хотите очистить?

Обратите внимание, что одна из операций, выполняемых Xsd.exe, - это "XSD для классов", что и вызвало ваши файлы классов:

XSD для классов
Создает классы времени выполнения из файла схемы XSD. Сгенерированные классы могут использоваться вместе с System.Xml.Serialization.XmlSerializer для чтения и записи XML-кода, который следует за схемой.

Вы должны иметь возможность изменять исходные файлы XSD, а затем повторно запускать Xsd.exe, чтобы изменить вывод, сохраняя при этом совместимость с самим exe.

Ответ 2

XSD.exe сгенерировал их. Это инструмент в .Net SDK, который принимает схему XSD и генерирует сериализуемые классы, соответствующие схеме.

Отметьте шаг "Предварительная сборка" в свойствах проекта. Бьюсь об заклад, вы найдете вызов xsd.exe. Если нет, это может быть директива, определенная в файле .csproj(MSBuild). Вы точно знаете, что они генерируются во время выполнения? Или они были созданы вручную и зарегистрированы?

Если я правильно помню, генерируемые классы являются частичными, поэтому вы можете добавлять функциональные возможности через частичные классы... но вы не можете изменять сами классы, если они сгенерированы во время сборки.

Если вы хотите изменить классы, вам необходимо изменить файл XSD, который приложение использует для генерации файла.