/// <summary> /// Converts this instance to a legacy <see cref="LinqToXsdSettings"/> instance. /// </summary> /// <returns></returns> public LinqToXsdSettings ToLinqToXsdSettings() { var settings = new LinqToXsdSettings(); settings.Load(new XDocument(Untyped)); return(settings); }
/// <summary> /// Creates a new instance of <see cref="LinqToXsdSettings"/>, optionally by loading from an XML file. /// </summary> /// <param name="fromXmlFile">Null or empty value will simply return a default instance.</param> /// <returns></returns> public static LinqToXsdSettings LoadLinqToXsdSettings(string fromXmlFile = null) { var settings = new LinqToXsdSettings(); if (fromXmlFile.IsNotEmpty()) { settings.Load(fromXmlFile); } return(settings); }
public static void GenerateXObjects( XmlSchemaSet set, string csFileName, string configFileName, string assemblyName, bool xmlSerializable, bool nameMangler2) { LinqToXsdSettings configSettings = new LinqToXsdSettings(nameMangler2); if (configFileName != null) { configSettings.Load(configFileName); } configSettings.EnableServiceReference = xmlSerializable; XsdToTypesConverter xsdConverter = new XsdToTypesConverter(configSettings); ClrMappingInfo mapping = xsdConverter.GenerateMapping(set); CodeDomTypesGenerator codeGenerator = new CodeDomTypesGenerator(configSettings); CodeCompileUnit ccu = new CodeCompileUnit(); foreach(var codeNs in codeGenerator.GenerateTypes(mapping)) { ccu.Namespaces.Add(codeNs); } //Write to file CSharpCodeProvider provider = new CSharpCodeProvider(); if (csFileName != string.Empty && csFileName != null) { using (var update = new Update(csFileName, System.Text.Encoding.UTF8)) { provider.GenerateCodeFromCompileUnit( ccu, update.Writer, new CodeGeneratorOptions()); } PrintMessage(csFileName); } if(assemblyName != string.Empty) { var options = new CompilerParameters() { OutputAssembly = assemblyName, IncludeDebugInformation = true, TreatWarningsAsErrors = true, }; options.TempFiles.KeepFiles = true; { var r = options.ReferencedAssemblies; r.Add("System.dll"); r.Add("System.Core.dll"); r.Add("System.Xml.dll"); r.Add("System.Xml.Linq.dll"); r.Add("Xml.Schema.Linq.dll"); } var results = provider.CompileAssemblyFromDom(options, ccu); if (results.Errors.Count > 0) { PrintErrorMessage("compilation error(s): "); for (int i = 0; i < results.Errors.Count; i++) { PrintErrorMessage(results.Errors[i].ToString()); } throw new Exception("compilation error(s)"); } else { PrintMessage( "Generated Assembly: " + results.CompiledAssembly.ToString()); } } }
static void GenerateXObjects( XmlSchemaSet set, string csFileName, string configFileName, string assemblyName, bool xmlSerializable, bool nameMangler2) { LinqToXsdSettings configSettings = new LinqToXsdSettings(nameMangler2); if (configFileName != null) { configSettings.Load(configFileName); } configSettings.EnableServiceReference = xmlSerializable; XsdToTypesConverter xsdConverter = new XsdToTypesConverter(configSettings); ClrMappingInfo mapping = xsdConverter.GenerateMapping(set); CodeDomTypesGenerator codeGenerator = new CodeDomTypesGenerator(configSettings); CodeCompileUnit ccu = new CodeCompileUnit(); // if (mapping != null) //DC foreach(CodeNamespace codeNs in codeGenerator.GenerateTypes(mapping)) { ccu.Namespaces.Add(codeNs); } //Write to file CSharpCodeProvider provider = new CSharpCodeProvider(); if (csFileName != string.Empty) { /* StreamWriter sw = new StreamWriter(csFileName); provider.GenerateCodeFromCompileUnit(ccu, sw, new CodeGeneratorOptions()); sw.Flush(); sw.Close(); * */ using (var update = new Update(csFileName, System.Text.Encoding.UTF8)) { provider.GenerateCodeFromCompileUnit( ccu, update.Writer, new CodeGeneratorOptions()); } PrintMessage(csFileName); } if(assemblyName != string.Empty) { CompilerParameters options = new CompilerParameters(); options.OutputAssembly = assemblyName; options.IncludeDebugInformation = true; options.TreatWarningsAsErrors = true; options.ReferencedAssemblies.Add("System.dll"); options.ReferencedAssemblies.Add("System.Core.dll"); options.ReferencedAssemblies.Add("System.Xml.dll"); options.ReferencedAssemblies.Add("System.Xml.Linq.dll"); options.ReferencedAssemblies.Add("O2_Misc_Microsoft_MPL_Libs.dll"); CompilerResults results = provider.CompileAssemblyFromDom(options, ccu); if (results.Errors.Count > 0) { PrintErrorMessage("compilation error(s): "); for (int i = 0; i < results.Errors.Count; i++) PrintErrorMessage(results.Errors[i].ToString()); } else { PrintMessage("Generated Assembly: " + results.CompiledAssembly.ToString()); } }; }