Недавно я опубликовал вопрос о веб-сервисе WCF Restful, который я пишу, что мне нужно использовать XBD arbirtrary в качестве входных данных и потоковую форму HTML в качестве выходных данных. После некоторой помощи от других пользователей я решил использовать метод XSD для динамического создания файла C # из XSD с использованием приведенного ниже кода ,,,
CodeNamespace codeNamespace = new CodeNamespace("generated");
XmlCodeExporter codeExporter = new XmlCodeExporter(codeNamespace);
ArrayList maps = new ArrayList();
foreach (XmlSchemaType schemaType in xsd.SchemaTypes.Values)
{
maps.Add(schemaImporter.ImportSchemaType(schemaType.QualifiedName));
}
foreach (XmlSchemaElement schemaElement in xsd.Elements.Values)
{
maps.Add(schemaImporter.ImportTypeMapping(schemaElement.QualifiedName));
}
foreach(XmlTypeMapping map in maps)
{
codeExporter.ExportTypeMapping(map);
}
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CodeParser parser = codeProvider.
using(StringWriter w = new StringWriter())
{
codeProvider.GenerateCodeFromNamespace(codeNamespace, writer, new CodeGeneratorOptions());
writer.Write(w.GetStringBuilder().ToString());
}
Что это делает, это вывод кода для файла C #, который будет представлять введенный XSD. Это где я остановился. Мне сообщили, что теперь я могу использовать отражение для генерации формы HTML из сгенерированного кода C #.
У меня есть пара проблем ... одна из них - сгенерированный код, содержащий несколько частичных классов. Повлияет ли это на использование отражения вообще? Если это не повлияет на это, то каков самый простой способ взять сгенерированный код и начать использовать рефлексию для генерирования нужного мне результата? Я новичок в размышлениях и не знаю об инструментах, которые у меня есть, поэтому, пожалуйста, помогите любым возможным способом. Несмотря на длительность, я включил сгенерированный пример кода из класса, который был создан. Я извиняюсь за длину, но это может помочь увидеть все.
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public partial class Leads {
private LeadsLead[] leadField;
private ulong vidField;
private ulong lidField;
private ulong aidField;
private bool aidFieldSpecified;
private string passwordField;
[System.Xml.Serialization.XmlElementAttribute("Lead")]
public LeadsLead[] Lead { get { return this.leadField; } set { this.leadField = value; } }
[System.Xml.Serialization.XmlAttributeAttribute()]
public ulong vid { get { return this.vidField; } set { this.vidField = value; } }
[System.Xml.Serialization.XmlAttributeAttribute()]
public ulong lid { get { return this.lidField; } set { this.lidField = value; } }
[System.Xml.Serialization.XmlAttributeAttribute()]
public ulong aid { get { return this.aidField; } set { this.aidField = value; } }
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool aidSpecified { get { return this.aidFieldSpecified; } set { this.aidFieldSpecified = value; } }
[System.Xml.Serialization.XmlAttributeAttribute()]
public string password { get { return this.passwordField; } set { this.passwordField = value; } } }
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class LeadsLead {
private string firstNameField;
private string lastNameField;
private string addressField;
private string cityField;
private LeadsLeadState stateField;
private string zipField;
private string emailField;
private string primaryPhoneField;
private string loanAmountField;
private string balanceField;
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool LoanTypeSpecified { get { return this.loanTypeFieldSpecified; } set { this.loanTypeFieldSpecified = value; } }
public string EstimatedValue { get { return this.estimatedValueField; } set { this.estimatedValueField = value; } }
public string LenderDate { get { return this.lenderDateField; } set { this.lenderDateField = value; } }
public string MobilePhone { get { return this.mobilePhoneField; } set { this.mobilePhoneField = value; } }
public bool OptOut { get { return this.optOutField; } set { this.optOutField = value; } }
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool OptOutSpecified { get { return this.optOutFieldSpecified; } set { this.optOutFieldSpecified = value; } }
public string SendComments { get { return this.sendCommentsField; } set { this.sendCommentsField = value; } }
public LeadsLeadVendorID VendorID { get { return this.vendorIDField; } set { this.vendorIDField = value; } }
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool VendorIDSpecified { get { return this.vendorIDFieldSpecified; } set { this.vendorIDFieldSpecified = value; } }
public System.DateTime CallTime { get { return this.callTimeField; } set { this.callTimeField = value; } }
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool CallTimeSpecified { get { return this.callTimeFieldSpecified; } set { this.callTimeFieldSpecified = value; } }
public string AdSource { get { return this.adSourceField; } set { this.adSourceField = value; } }
public LeadsLeadResult Result { get { return this.resultField; } set { this.resultField = value; } }
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool ResultSpecified { get { return this.resultFieldSpecified; } set { this.resultFieldSpecified = value; } }
public decimal Duration { get { return this.durationField; } set { this.durationField = value; } }
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool DurationSpecified { get { return this.durationFieldSpecified; } set { this.durationFieldSpecified = value; } }
public string ReviewStatus { get { return this.reviewStatusField; } set { this.reviewStatusField = value; } }
public string SubID { get { return this.subIDField; } set { this.subIDField = value; } }
public string Borrowers { get { return this.borrowersField; } set { this.borrowersField = value; } }
public string Loans { get { return this.loansField; } set { this.loansField = value; } }
[System.Xml.Serialization.XmlArrayItemAttribute("Driver", IsNullable=false)]
public partial class LeadsLeadDriver {
private string firstNameField;
private string lastNameField;
public string FirstName { get { return this.firstNameField; } set { this.firstNameField = value; } }
public string LastName { get { return this.lastNameField; } set { this.lastNameField = value; } } }
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum LeadsLeadStandardState { AL, AK, AZ, AR, CA, CO, CT, DE, DC, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, PR, NS, Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, [System.Xml.Serialization.XmlEnumAttribute("District of Columbia")] DistrictofColumbia, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, [System.Xml.Serialization.XmlEnumAttribute("New Hampshire")] NewHampshire, [System.Xml.Serialization.XmlEnumAttribute("New Jersey")] NewJersey, [System.Xml.Serialization.XmlEnumAttribute("New Mexico")] NewMexico, [System.Xml.Serialization.XmlEnumAttribute("New York")] NewYork, [System.Xml.Serialization.XmlEnumAttribute("North Carolina")] NorthCarolina, [System.Xml.Serialization.XmlEnumAttribute("North Dakota")] NorthDakota, Ohio, Oklahoma, Oregon, Pennsylvania, [System.Xml.Serialization.XmlEnumAttribute("Rhode Island")] RhodeIsland, [System.Xml.Serialization.XmlEnumAttribute("South Carolina")] SouthCarolina, [System.Xml.Serialization.XmlEnumAttribute("South Dakota")] SouthDakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, [System.Xml.Serialization.XmlEnumAttribute("West Virginia")] WestVirginia, Wisconsin, Wyoming, [System.Xml.Serialization.XmlEnumAttribute("Puerto Rico")] PuertoRico, [System.Xml.Serialization.XmlEnumAttribute("No State")] NoState, }
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public enum LeadsLeadStatus { Pending, Working, Closed, Dead, }