3c1f479b9d
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
409 lines
14 KiB
C#
409 lines
14 KiB
C#
using System;
|
|
using System.Xml;
|
|
using System.Xml.Schema;
|
|
using System.Xml.Serialization;
|
|
using System.Text;
|
|
using System.Collections;
|
|
using System.Globalization;
|
|
|
|
namespace System.Web.Services.Description
|
|
{
|
|
internal class WebReferenceOptionsReader : XmlSerializationReader
|
|
{
|
|
public object ReadRoot_WebReferenceOptions ()
|
|
{
|
|
Reader.MoveToContent();
|
|
if (Reader.LocalName != "webReferenceOptions" || Reader.NamespaceURI != "http://microsoft.com/webReference/")
|
|
throw CreateUnknownNodeException();
|
|
return ReadObject_webReferenceOptions (true, true);
|
|
}
|
|
|
|
public System.Web.Services.Description.WebReferenceOptions ReadObject_webReferenceOptions (bool isNullable, bool checkType)
|
|
{
|
|
System.Web.Services.Description.WebReferenceOptions ob = null;
|
|
if (isNullable && ReadNull()) return null;
|
|
|
|
if (checkType)
|
|
{
|
|
System.Xml.XmlQualifiedName t = GetXsiType();
|
|
if (t == null)
|
|
{ }
|
|
else if (t.Name != "webReferenceOptions" || t.Namespace != "http://microsoft.com/webReference/")
|
|
throw CreateUnknownTypeException(t);
|
|
}
|
|
|
|
ob = new System.Web.Services.Description.WebReferenceOptions ();
|
|
|
|
Reader.MoveToElement();
|
|
|
|
ob.@CodeGenerationOptions = ((System.Xml.Serialization.CodeGenerationOptions) System.Xml.Serialization.CodeGenerationOptions.GenerateOldAsync);
|
|
ob.@Style = ((System.Web.Services.Description.ServiceDescriptionImportStyle) System.Web.Services.Description.ServiceDescriptionImportStyle.Client);
|
|
while (Reader.MoveToNextAttribute())
|
|
{
|
|
if (IsXmlnsAttribute (Reader.Name)) {
|
|
}
|
|
else {
|
|
UnknownNode (ob);
|
|
}
|
|
}
|
|
|
|
Reader.MoveToElement();
|
|
if (Reader.IsEmptyElement) {
|
|
Reader.Skip ();
|
|
return ob;
|
|
}
|
|
|
|
Reader.ReadStartElement();
|
|
Reader.MoveToContent();
|
|
|
|
bool b0=false, b1=false, b2=false, b3=false;
|
|
|
|
while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
|
|
{
|
|
if (Reader.NodeType == System.Xml.XmlNodeType.Element)
|
|
{
|
|
if (Reader.LocalName == "style" && Reader.NamespaceURI == "http://microsoft.com/webReference/" && !b2) {
|
|
b2 = true;
|
|
ob.@Style = GetEnumValue_ServiceDescriptionImportStyle (Reader.ReadElementString ());
|
|
}
|
|
else if (Reader.LocalName == "verbose" && Reader.NamespaceURI == "http://microsoft.com/webReference/" && !b3) {
|
|
b3 = true;
|
|
ob.@Verbose = XmlConvert.ToBoolean (Reader.ReadElementString ());
|
|
}
|
|
else if (Reader.LocalName == "codeGenerationOptions" && Reader.NamespaceURI == "http://microsoft.com/webReference/" && !b0) {
|
|
b0 = true;
|
|
ob.@CodeGenerationOptions = GetEnumValue_CodeGenerationOptions (Reader.ReadElementString ());
|
|
}
|
|
else if (Reader.LocalName == "schemaImporterExtensions" && Reader.NamespaceURI == "http://microsoft.com/webReference/" && !b1) {
|
|
if (((object)ob.@SchemaImporterExtensions) == null)
|
|
throw CreateReadOnlyCollectionException ("System.Collections.Specialized.StringCollection");
|
|
if (Reader.IsEmptyElement) {
|
|
Reader.Skip();
|
|
} else {
|
|
int n4 = 0;
|
|
Reader.ReadStartElement();
|
|
Reader.MoveToContent();
|
|
|
|
while (Reader.NodeType != System.Xml.XmlNodeType.EndElement)
|
|
{
|
|
if (Reader.NodeType == System.Xml.XmlNodeType.Element)
|
|
{
|
|
if (Reader.LocalName == "type" && Reader.NamespaceURI == "http://microsoft.com/webReference/") {
|
|
if (((object)ob.@SchemaImporterExtensions) == null)
|
|
throw CreateReadOnlyCollectionException ("System.Collections.Specialized.StringCollection");
|
|
ob.@SchemaImporterExtensions.Add (Reader.ReadElementString ());
|
|
n4++;
|
|
}
|
|
else UnknownNode (null);
|
|
}
|
|
else UnknownNode (null);
|
|
|
|
Reader.MoveToContent();
|
|
}
|
|
ReadEndElement();
|
|
}
|
|
b1 = true;
|
|
}
|
|
else {
|
|
UnknownNode (ob);
|
|
}
|
|
}
|
|
else
|
|
UnknownNode(ob);
|
|
|
|
Reader.MoveToContent();
|
|
}
|
|
|
|
ReadEndElement();
|
|
|
|
return ob;
|
|
}
|
|
|
|
public System.Web.Services.Description.ServiceDescriptionImportStyle ReadObject_ServiceDescriptionImportStyle (bool isNullable, bool checkType)
|
|
{
|
|
Reader.ReadStartElement ();
|
|
System.Web.Services.Description.ServiceDescriptionImportStyle res = GetEnumValue_ServiceDescriptionImportStyle (Reader.ReadString());
|
|
if (Reader.NodeType != XmlNodeType.None)
|
|
Reader.ReadEndElement ();
|
|
return res;
|
|
}
|
|
|
|
System.Web.Services.Description.ServiceDescriptionImportStyle GetEnumValue_ServiceDescriptionImportStyle (string xmlName)
|
|
{
|
|
switch (xmlName)
|
|
{
|
|
case "client": return System.Web.Services.Description.ServiceDescriptionImportStyle.Client;
|
|
case "server": return System.Web.Services.Description.ServiceDescriptionImportStyle.Server;
|
|
case "serverInterface": return System.Web.Services.Description.ServiceDescriptionImportStyle.ServerInterface;
|
|
default:
|
|
throw CreateUnknownConstantException (xmlName, typeof(System.Web.Services.Description.ServiceDescriptionImportStyle));
|
|
}
|
|
}
|
|
|
|
public System.Xml.Serialization.CodeGenerationOptions ReadObject_CodeGenerationOptions (bool isNullable, bool checkType)
|
|
{
|
|
Reader.ReadStartElement ();
|
|
System.Xml.Serialization.CodeGenerationOptions res = GetEnumValue_CodeGenerationOptions (Reader.ReadString());
|
|
if (Reader.NodeType != XmlNodeType.None)
|
|
Reader.ReadEndElement ();
|
|
return res;
|
|
}
|
|
|
|
System.Xml.Serialization.CodeGenerationOptions GetEnumValue_CodeGenerationOptions (string xmlName)
|
|
{
|
|
xmlName = xmlName.Trim();
|
|
if (xmlName.Length == 0) return (System.Xml.Serialization.CodeGenerationOptions)0;
|
|
System.Xml.Serialization.CodeGenerationOptions sb = (System.Xml.Serialization.CodeGenerationOptions)0;
|
|
string[] enumNames = xmlName.Split (null);
|
|
foreach (string name in enumNames)
|
|
{
|
|
if (name == string.Empty) continue;
|
|
sb |= GetEnumValue_CodeGenerationOptions_Switch (name);
|
|
}
|
|
return sb;
|
|
}
|
|
|
|
System.Xml.Serialization.CodeGenerationOptions GetEnumValue_CodeGenerationOptions_Switch (string xmlName)
|
|
{
|
|
switch (xmlName)
|
|
{
|
|
case "properties": return System.Xml.Serialization.CodeGenerationOptions.GenerateProperties;
|
|
case "newAsync": return System.Xml.Serialization.CodeGenerationOptions.GenerateNewAsync;
|
|
case "oldAsync": return System.Xml.Serialization.CodeGenerationOptions.GenerateOldAsync;
|
|
case "order": return System.Xml.Serialization.CodeGenerationOptions.GenerateOrder;
|
|
case "enableDataBinding": return System.Xml.Serialization.CodeGenerationOptions.EnableDataBinding;
|
|
default:
|
|
throw CreateUnknownConstantException (xmlName, typeof(System.Xml.Serialization.CodeGenerationOptions));
|
|
}
|
|
}
|
|
|
|
protected override void InitCallbacks ()
|
|
{
|
|
}
|
|
|
|
protected override void InitIDs ()
|
|
{
|
|
}
|
|
|
|
}
|
|
|
|
internal class WebReferenceOptionsWriter : XmlSerializationWriter
|
|
{
|
|
const string xmlNamespace = "http://www.w3.org/2000/xmlns/";
|
|
public void WriteRoot_WebReferenceOptions (object o)
|
|
{
|
|
WriteStartDocument ();
|
|
System.Web.Services.Description.WebReferenceOptions ob = (System.Web.Services.Description.WebReferenceOptions) o;
|
|
TopLevelElement ();
|
|
WriteObject_webReferenceOptions (ob, "webReferenceOptions", "http://microsoft.com/webReference/", true, false, true);
|
|
}
|
|
|
|
void WriteObject_webReferenceOptions (System.Web.Services.Description.WebReferenceOptions ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
|
|
{
|
|
if (((object)ob) == null)
|
|
{
|
|
if (isNullable)
|
|
WriteNullTagLiteral(element, namesp);
|
|
return;
|
|
}
|
|
|
|
System.Type type = ob.GetType ();
|
|
if (type == typeof(System.Web.Services.Description.WebReferenceOptions))
|
|
{ }
|
|
else {
|
|
throw CreateUnknownTypeException (ob);
|
|
}
|
|
|
|
if (writeWrappingElem) {
|
|
WriteStartElement (element, namesp, ob);
|
|
}
|
|
|
|
if (needType) WriteXsiType("webReferenceOptions", "http://microsoft.com/webReference/");
|
|
|
|
if (ob.@CodeGenerationOptions != ((System.Xml.Serialization.CodeGenerationOptions) System.Xml.Serialization.CodeGenerationOptions.GenerateOldAsync)) {
|
|
WriteElementString ("codeGenerationOptions", "http://microsoft.com/webReference/", GetEnumValue_CodeGenerationOptions (ob.@CodeGenerationOptions));
|
|
}
|
|
if (ob.@SchemaImporterExtensions != null) {
|
|
WriteStartElement ("schemaImporterExtensions", "http://microsoft.com/webReference/", ob.@SchemaImporterExtensions);
|
|
for (int n5 = 0; n5 < ob.@SchemaImporterExtensions.Count; n5++) {
|
|
WriteElementString ("type", "http://microsoft.com/webReference/", ob.@SchemaImporterExtensions[n5]);
|
|
}
|
|
WriteEndElement (ob.@SchemaImporterExtensions);
|
|
}
|
|
if (ob.@Style != ((System.Web.Services.Description.ServiceDescriptionImportStyle) System.Web.Services.Description.ServiceDescriptionImportStyle.Client)) {
|
|
WriteElementString ("style", "http://microsoft.com/webReference/", GetEnumValue_ServiceDescriptionImportStyle (ob.@Style));
|
|
}
|
|
WriteElementString ("verbose", "http://microsoft.com/webReference/", (ob.@Verbose?"true":"false"));
|
|
if (writeWrappingElem) WriteEndElement (ob);
|
|
}
|
|
|
|
void WriteObject_CodeGenerationOptions (System.Xml.Serialization.CodeGenerationOptions ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
|
|
{
|
|
System.Type type = ob.GetType ();
|
|
if (type == typeof(System.Xml.Serialization.CodeGenerationOptions))
|
|
{ }
|
|
else {
|
|
throw CreateUnknownTypeException (ob);
|
|
}
|
|
|
|
if (writeWrappingElem) {
|
|
WriteStartElement (element, namesp, ob);
|
|
}
|
|
|
|
if (needType) WriteXsiType("CodeGenerationOptions", "http://microsoft.com/webReference/");
|
|
|
|
Writer.WriteString (GetEnumValue_CodeGenerationOptions (ob));
|
|
if (writeWrappingElem) WriteEndElement (ob);
|
|
}
|
|
|
|
static readonly string[] _xmlNamesCodeGenerationOptions = { "properties","newAsync","oldAsync","order","enableDataBinding" };
|
|
static readonly long[] _valuesCodeGenerationOptions = { 1L,2L,4L,8L,16L };
|
|
|
|
string GetEnumValue_CodeGenerationOptions (System.Xml.Serialization.CodeGenerationOptions val)
|
|
{
|
|
switch (val) {
|
|
case System.Xml.Serialization.CodeGenerationOptions.GenerateProperties: return "properties";
|
|
case System.Xml.Serialization.CodeGenerationOptions.GenerateNewAsync: return "newAsync";
|
|
case System.Xml.Serialization.CodeGenerationOptions.GenerateOldAsync: return "oldAsync";
|
|
case System.Xml.Serialization.CodeGenerationOptions.GenerateOrder: return "order";
|
|
case System.Xml.Serialization.CodeGenerationOptions.EnableDataBinding: return "enableDataBinding";
|
|
default:
|
|
if (val.ToString () == "0") return string.Empty;
|
|
return FromEnum ((long) val, _xmlNamesCodeGenerationOptions, _valuesCodeGenerationOptions, typeof (System.Xml.Serialization.CodeGenerationOptions).FullName);
|
|
}
|
|
}
|
|
|
|
void WriteObject_ServiceDescriptionImportStyle (System.Web.Services.Description.ServiceDescriptionImportStyle ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem)
|
|
{
|
|
System.Type type = ob.GetType ();
|
|
if (type == typeof(System.Web.Services.Description.ServiceDescriptionImportStyle))
|
|
{ }
|
|
else {
|
|
throw CreateUnknownTypeException (ob);
|
|
}
|
|
|
|
if (writeWrappingElem) {
|
|
WriteStartElement (element, namesp, ob);
|
|
}
|
|
|
|
if (needType) WriteXsiType("ServiceDescriptionImportStyle", "http://microsoft.com/webReference/");
|
|
|
|
Writer.WriteString (GetEnumValue_ServiceDescriptionImportStyle (ob));
|
|
if (writeWrappingElem) WriteEndElement (ob);
|
|
}
|
|
|
|
string GetEnumValue_ServiceDescriptionImportStyle (System.Web.Services.Description.ServiceDescriptionImportStyle val)
|
|
{
|
|
switch (val) {
|
|
case System.Web.Services.Description.ServiceDescriptionImportStyle.Client: return "client";
|
|
case System.Web.Services.Description.ServiceDescriptionImportStyle.Server: return "server";
|
|
case System.Web.Services.Description.ServiceDescriptionImportStyle.ServerInterface: return "serverInterface";
|
|
default: throw CreateInvalidEnumValueException ((long) val, typeof (System.Web.Services.Description.ServiceDescriptionImportStyle).FullName);
|
|
}
|
|
}
|
|
|
|
protected override void InitCallbacks ()
|
|
{
|
|
}
|
|
|
|
}
|
|
|
|
|
|
internal class WebReferenceOptionsBaseSerializer : System.Xml.Serialization.XmlSerializer
|
|
{
|
|
protected override System.Xml.Serialization.XmlSerializationReader CreateReader () {
|
|
return new WebReferenceOptionsReader ();
|
|
}
|
|
|
|
protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter () {
|
|
return new WebReferenceOptionsWriter ();
|
|
}
|
|
|
|
public override bool CanDeserialize (System.Xml.XmlReader xmlReader) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
internal sealed class webReferenceOptionsSerializer : WebReferenceOptionsBaseSerializer
|
|
{
|
|
protected override void Serialize (object obj, System.Xml.Serialization.XmlSerializationWriter writer) {
|
|
((WebReferenceOptionsWriter)writer).WriteRoot_WebReferenceOptions(obj);
|
|
}
|
|
|
|
protected override object Deserialize (System.Xml.Serialization.XmlSerializationReader reader) {
|
|
return ((WebReferenceOptionsReader)reader).ReadRoot_WebReferenceOptions();
|
|
}
|
|
}
|
|
|
|
internal class WebReferenceOptionsSerializerImplementation : System.Xml.Serialization.XmlSerializerImplementation
|
|
{
|
|
System.Collections.Hashtable readMethods = null;
|
|
System.Collections.Hashtable writeMethods = null;
|
|
System.Collections.Hashtable typedSerializers = null;
|
|
|
|
public override System.Xml.Serialization.XmlSerializationReader Reader {
|
|
get {
|
|
return new WebReferenceOptionsReader();
|
|
}
|
|
}
|
|
|
|
public override System.Xml.Serialization.XmlSerializationWriter Writer {
|
|
get {
|
|
return new WebReferenceOptionsWriter();
|
|
}
|
|
}
|
|
|
|
public override System.Collections.Hashtable ReadMethods {
|
|
get {
|
|
lock (this) {
|
|
if (readMethods == null) {
|
|
readMethods = new System.Collections.Hashtable ();
|
|
readMethods.Add (@"", @"ReadRoot_WebReferenceOptions");
|
|
}
|
|
return readMethods;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override System.Collections.Hashtable WriteMethods {
|
|
get {
|
|
lock (this) {
|
|
if (writeMethods == null) {
|
|
writeMethods = new System.Collections.Hashtable ();
|
|
writeMethods.Add (@"", @"WriteRoot_WebReferenceOptions");
|
|
}
|
|
return writeMethods;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override System.Collections.Hashtable TypedSerializers {
|
|
get {
|
|
lock (this) {
|
|
if (typedSerializers == null) {
|
|
typedSerializers = new System.Collections.Hashtable ();
|
|
typedSerializers.Add (@"", new webReferenceOptionsSerializer());
|
|
}
|
|
return typedSerializers;
|
|
}
|
|
}
|
|
}
|
|
|
|
public override XmlSerializer GetSerializer (Type type)
|
|
{
|
|
switch (type.FullName) {
|
|
case "System.Web.Services.Description.WebReferenceOptions":
|
|
return (XmlSerializer) TypedSerializers [""];
|
|
|
|
}
|
|
return base.GetSerializer (type);
|
|
}
|
|
|
|
public override bool CanSerialize (System.Type type) {
|
|
if (type == typeof(System.Web.Services.Description.WebReferenceOptions)) return true;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|