⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 customerschemaimporterextension.cs

📁 《ASP.NET 2.0 XML 高级编程(第3版)》 《ASP.NET 2.0 XML 高级编程(第3版)》
💻 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 + -