Я делаю нечто подобное (частичные классы), где у меня есть тот, который генерируется всегда, но пользовательский будет генерироваться, только если он не существует. Этот второй создается как начальный класс для настроек. Я выведу два файла примерно так:
- MyClass.generated.cs
- MyClass.cs
MyClass.cs никогда не будет воссоздан, если он не существует. MyClass.generated.cs всегда будет пересоздан.
Я использую T4toolbox , чтобы сделать это, Олег Сыч на самом деле сделал это довольно легко.
Вы можете посмотреть некоторые образцы шаблонов T4, которые я построил здесь . В частности, посмотрите на этот , это хороший пример для сгенерированных частичных классов, где нужно каждый раз создавать его, и он создается только в том случае, если его не существует.
Главное, на что нужно обратить внимание, это строка в коде:
var requestBaseMessageCustom = new MessageTemplate(rootNamespace, serviceName + "Request");
requestBaseMessageCustom.Output.File = "Messages/" + serviceName + "Request.cs";
requestBaseMessageCustom.Output.PreserveExistingFile = true;
requestBaseMessageCustom.Render();
Обратите внимание на свойство с именем PreserveExistingFile
, это ключ.