public static void SaveToFile(ProjectDefinaton definaton, string fileName)
{
var genPath = definaton.GenerationPath;
var patPath = definaton.CodeGenSettings.CodeGenPatternFile;
try
{
// make relative
definaton.CodeGenSettings.CodeGenPatternFile =
Common.AppVarPathMakeRelative(definaton.CodeGenSettings.CodeGenPatternFile);
definaton.GenerationPath = Common.ProjectPathMakeRelative(definaton.GenerationPath, fileName);
// save
XmlSerializer saver = new XmlSerializer(typeof(ProjectDefinaton));
using (StreamWriter writer = new StreamWriter(fileName))
saver.Serialize(writer, definaton);
}
finally
{
// restore
definaton.CodeGenSettings.CodeGenPatternFile = patPath;
definaton.GenerationPath = genPath;
}
}