📄 customerschemaimporterextension.cs
字号:
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Xml.Serialization.Advanced;
namespace SchemaImporterExtensionsLib
{
public sealed class CustomerSchemaImporterExtension : SchemaImporterExtension
{
public override string ImportSchemaType(string name, string ns, XmlSchemaObject context,
XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit,
CodeNamespace mainNamespace,CodeGenerationOptions options, CodeDomProvider codeProvider)
{
if (name.Equals("Customer") && ns.Equals("urn:wrox-com"))
{
CodeTypeDeclaration customer = new CodeTypeDeclaration("Customer");
mainNamespace.Types.Add(customer);
CodeMemberField firstNameField = new CodeMemberField(
new CodeTypeReference(typeof(string)),"_firstName");
customer.Members.Add(firstNameField);
CodeMemberProperty firstNameProperty = new CodeMemberProperty();
firstNameProperty.Attributes = MemberAttributes.Public | MemberAttributes.Final;
firstNameProperty.GetStatements.Add(new CodeMethodReturnStatement(
new CodeFieldReferenceExpression(new
CodeThisReferenceExpression(), "_firstName")));
firstNameProperty.Name = "FirstName";
firstNameProperty.SetStatements.Add(new CodeAssignStatement(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(),"_firstName"),
new CodePropertySetValueReferenceExpression()));
firstNameProperty.Type = new CodeTypeReference(typeof(string));
customer.Members.Add(firstNameProperty);
CodeMemberField lastNameField = new CodeMemberField(
new CodeTypeReference(typeof(string)),"_lastName");
customer.Members.Add(lastNameField);
CodeMemberProperty lastNameProperty = new CodeMemberProperty();
lastNameProperty.Attributes = MemberAttributes.Public | MemberAttributes.Final;
lastNameProperty.GetStatements.Add(new CodeMethodReturnStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(),"_lastName")));
lastNameProperty.Name = "LastName";
lastNameProperty.SetStatements.Add(new CodeAssignStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(),"_lastName"),
new CodePropertySetValueReferenceExpression()));
lastNameProperty.Type = new CodeTypeReference(typeof(string));
customer.Members.Add(lastNameProperty);
return "Customer";
}
return null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -