3 using System
.Xml
.Schema
;
4 using System
.Xml
.Serialization
;
6 using System
.Collections
;
7 using System
.Globalization
;
9 namespace System
.Web
.Services
.Description
11 internal class WebReferenceOptionsReader
: XmlSerializationReader
13 public object ReadRoot_WebReferenceOptions ()
15 Reader
.MoveToContent();
16 if (Reader
.LocalName
!= "webReferenceOptions" || Reader
.NamespaceURI
!= "http://microsoft.com/webReference/")
17 throw CreateUnknownNodeException();
18 return ReadObject_webReferenceOptions (true, true);
21 public System
.Web
.Services
.Description
.WebReferenceOptions
ReadObject_webReferenceOptions (bool isNullable
, bool checkType
)
23 System
.Web
.Services
.Description
.WebReferenceOptions ob
= null;
24 if (isNullable
&& ReadNull()) return null;
28 System
.Xml
.XmlQualifiedName t
= GetXsiType();
31 else if (t
.Name
!= "webReferenceOptions" || t
.Namespace
!= "http://microsoft.com/webReference/")
32 throw CreateUnknownTypeException(t
);
35 ob
= new System
.Web
.Services
.Description
.WebReferenceOptions ();
37 Reader
.MoveToElement();
39 ob
.@CodeGenerationOptions
= ((System
.Xml
.Serialization
.CodeGenerationOptions
) System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateOldAsync
);
40 ob
.@Style
= ((System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
) System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.Client
);
41 while (Reader
.MoveToNextAttribute())
43 if (IsXmlnsAttribute (Reader
.Name
)) {
50 Reader
.MoveToElement();
51 if (Reader
.IsEmptyElement
) {
56 Reader
.ReadStartElement();
57 Reader
.MoveToContent();
59 bool b0
=false, b1
=false, b2
=false, b3
=false;
61 while (Reader
.NodeType
!= System
.Xml
.XmlNodeType
.EndElement
)
63 if (Reader
.NodeType
== System
.Xml
.XmlNodeType
.Element
)
65 if (Reader
.LocalName
== "style" && Reader
.NamespaceURI
== "http://microsoft.com/webReference/" && !b2
) {
67 ob
.@Style
= GetEnumValue_ServiceDescriptionImportStyle (Reader
.ReadElementString ());
69 else if (Reader
.LocalName
== "verbose" && Reader
.NamespaceURI
== "http://microsoft.com/webReference/" && !b3
) {
71 ob
.@Verbose
= XmlConvert
.ToBoolean (Reader
.ReadElementString ());
73 else if (Reader
.LocalName
== "codeGenerationOptions" && Reader
.NamespaceURI
== "http://microsoft.com/webReference/" && !b0
) {
75 ob
.@CodeGenerationOptions
= GetEnumValue_CodeGenerationOptions (Reader
.ReadElementString ());
77 else if (Reader
.LocalName
== "schemaImporterExtensions" && Reader
.NamespaceURI
== "http://microsoft.com/webReference/" && !b1
) {
78 if (((object)ob
.@SchemaImporterExtensions
) == null)
79 throw CreateReadOnlyCollectionException ("System.Collections.Specialized.StringCollection");
80 if (Reader
.IsEmptyElement
) {
84 Reader
.ReadStartElement();
85 Reader
.MoveToContent();
87 while (Reader
.NodeType
!= System
.Xml
.XmlNodeType
.EndElement
)
89 if (Reader
.NodeType
== System
.Xml
.XmlNodeType
.Element
)
91 if (Reader
.LocalName
== "type" && Reader
.NamespaceURI
== "http://microsoft.com/webReference/") {
92 if (((object)ob
.@SchemaImporterExtensions
) == null)
93 throw CreateReadOnlyCollectionException ("System.Collections.Specialized.StringCollection");
94 ob
.@SchemaImporterExtensions
.Add (Reader
.ReadElementString ());
97 else UnknownNode (null);
99 else UnknownNode (null);
101 Reader
.MoveToContent();
114 Reader
.MoveToContent();
122 public System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
ReadObject_ServiceDescriptionImportStyle (bool isNullable
, bool checkType
)
124 Reader
.ReadStartElement ();
125 System
.Web
.Services
.Description
.ServiceDescriptionImportStyle res
= GetEnumValue_ServiceDescriptionImportStyle (Reader
.ReadString());
126 if (Reader
.NodeType
!= XmlNodeType
.None
)
127 Reader
.ReadEndElement ();
131 System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
GetEnumValue_ServiceDescriptionImportStyle (string xmlName
)
135 case "client": return System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.Client
;
136 case "server": return System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.Server
;
137 case "serverInterface": return System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.ServerInterface
;
139 throw CreateUnknownConstantException (xmlName
, typeof(System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
));
143 public System
.Xml
.Serialization
.CodeGenerationOptions
ReadObject_CodeGenerationOptions (bool isNullable
, bool checkType
)
145 Reader
.ReadStartElement ();
146 System
.Xml
.Serialization
.CodeGenerationOptions res
= GetEnumValue_CodeGenerationOptions (Reader
.ReadString());
147 if (Reader
.NodeType
!= XmlNodeType
.None
)
148 Reader
.ReadEndElement ();
152 System
.Xml
.Serialization
.CodeGenerationOptions
GetEnumValue_CodeGenerationOptions (string xmlName
)
154 xmlName
= xmlName
.Trim();
155 if (xmlName
.Length
== 0) return (System
.Xml
.Serialization
.CodeGenerationOptions
)0;
156 System
.Xml
.Serialization
.CodeGenerationOptions sb
= (System
.Xml
.Serialization
.CodeGenerationOptions
)0;
157 string[] enumNames
= xmlName
.Split (null);
158 foreach (string name
in enumNames
)
160 if (name
== string.Empty
) continue;
161 sb
|= GetEnumValue_CodeGenerationOptions_Switch (name
);
166 System
.Xml
.Serialization
.CodeGenerationOptions
GetEnumValue_CodeGenerationOptions_Switch (string xmlName
)
170 case "properties": return System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateProperties
;
171 case "newAsync": return System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateNewAsync
;
172 case "oldAsync": return System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateOldAsync
;
173 case "order": return System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateOrder
;
174 case "enableDataBinding": return System
.Xml
.Serialization
.CodeGenerationOptions
.EnableDataBinding
;
176 throw CreateUnknownConstantException (xmlName
, typeof(System
.Xml
.Serialization
.CodeGenerationOptions
));
180 protected override void InitCallbacks ()
184 protected override void InitIDs ()
190 internal class WebReferenceOptionsWriter
: XmlSerializationWriter
192 const string xmlNamespace
= "http://www.w3.org/2000/xmlns/";
193 public void WriteRoot_WebReferenceOptions (object o
)
195 WriteStartDocument ();
196 System
.Web
.Services
.Description
.WebReferenceOptions ob
= (System
.Web
.Services
.Description
.WebReferenceOptions
) o
;
198 WriteObject_webReferenceOptions (ob
, "webReferenceOptions", "http://microsoft.com/webReference/", true, false, true);
201 void WriteObject_webReferenceOptions (System
.Web
.Services
.Description
.WebReferenceOptions ob
, string element
, string namesp
, bool isNullable
, bool needType
, bool writeWrappingElem
)
203 if (((object)ob
) == null)
206 WriteNullTagLiteral(element
, namesp
);
210 System
.Type type
= ob
.GetType ();
211 if (type
== typeof(System
.Web
.Services
.Description
.WebReferenceOptions
))
214 throw CreateUnknownTypeException (ob
);
217 if (writeWrappingElem
) {
218 WriteStartElement (element
, namesp
, ob
);
221 if (needType
) WriteXsiType("webReferenceOptions", "http://microsoft.com/webReference/");
223 if (ob
.@CodeGenerationOptions
!= ((System
.Xml
.Serialization
.CodeGenerationOptions
) System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateOldAsync
)) {
224 WriteElementString ("codeGenerationOptions", "http://microsoft.com/webReference/", GetEnumValue_CodeGenerationOptions (ob
.@CodeGenerationOptions
));
226 if (ob
.@SchemaImporterExtensions
!= null) {
227 WriteStartElement ("schemaImporterExtensions", "http://microsoft.com/webReference/", ob
.@SchemaImporterExtensions
);
228 for (int n5
= 0; n5
< ob
.@SchemaImporterExtensions
.Count
; n5
++) {
229 WriteElementString ("type", "http://microsoft.com/webReference/", ob
.@SchemaImporterExtensions
[n5
]);
231 WriteEndElement (ob
.@SchemaImporterExtensions
);
233 if (ob
.@Style
!= ((System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
) System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.Client
)) {
234 WriteElementString ("style", "http://microsoft.com/webReference/", GetEnumValue_ServiceDescriptionImportStyle (ob
.@Style
));
236 WriteElementString ("verbose", "http://microsoft.com/webReference/", (ob
.@Verbose
?"true":"false"));
237 if (writeWrappingElem
) WriteEndElement (ob
);
240 void WriteObject_CodeGenerationOptions (System
.Xml
.Serialization
.CodeGenerationOptions ob
, string element
, string namesp
, bool isNullable
, bool needType
, bool writeWrappingElem
)
242 System
.Type type
= ob
.GetType ();
243 if (type
== typeof(System
.Xml
.Serialization
.CodeGenerationOptions
))
246 throw CreateUnknownTypeException (ob
);
249 if (writeWrappingElem
) {
250 WriteStartElement (element
, namesp
, ob
);
253 if (needType
) WriteXsiType("CodeGenerationOptions", "http://microsoft.com/webReference/");
255 Writer
.WriteString (GetEnumValue_CodeGenerationOptions (ob
));
256 if (writeWrappingElem
) WriteEndElement (ob
);
259 static readonly string[] _xmlNamesCodeGenerationOptions
= { "properties","newAsync","oldAsync","order","enableDataBinding" }
;
260 static readonly long[] _valuesCodeGenerationOptions
= { 1L,2L,4L,8L,16L }
;
262 string GetEnumValue_CodeGenerationOptions (System
.Xml
.Serialization
.CodeGenerationOptions val
)
265 case System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateProperties
: return "properties";
266 case System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateNewAsync
: return "newAsync";
267 case System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateOldAsync
: return "oldAsync";
268 case System
.Xml
.Serialization
.CodeGenerationOptions
.GenerateOrder
: return "order";
269 case System
.Xml
.Serialization
.CodeGenerationOptions
.EnableDataBinding
: return "enableDataBinding";
271 if (val
.ToString () == "0") return string.Empty
;
272 return FromEnum ((long) val
, _xmlNamesCodeGenerationOptions
, _valuesCodeGenerationOptions
, typeof (System
.Xml
.Serialization
.CodeGenerationOptions
).FullName
);
276 void WriteObject_ServiceDescriptionImportStyle (System
.Web
.Services
.Description
.ServiceDescriptionImportStyle ob
, string element
, string namesp
, bool isNullable
, bool needType
, bool writeWrappingElem
)
278 System
.Type type
= ob
.GetType ();
279 if (type
== typeof(System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
))
282 throw CreateUnknownTypeException (ob
);
285 if (writeWrappingElem
) {
286 WriteStartElement (element
, namesp
, ob
);
289 if (needType
) WriteXsiType("ServiceDescriptionImportStyle", "http://microsoft.com/webReference/");
291 Writer
.WriteString (GetEnumValue_ServiceDescriptionImportStyle (ob
));
292 if (writeWrappingElem
) WriteEndElement (ob
);
295 string GetEnumValue_ServiceDescriptionImportStyle (System
.Web
.Services
.Description
.ServiceDescriptionImportStyle val
)
298 case System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.Client
: return "client";
299 case System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.Server
: return "server";
300 case System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
.ServerInterface
: return "serverInterface";
301 default: throw CreateInvalidEnumValueException ((long) val
, typeof (System
.Web
.Services
.Description
.ServiceDescriptionImportStyle
).FullName
);
305 protected override void InitCallbacks ()
312 internal class WebReferenceOptionsBaseSerializer
: System
.Xml
.Serialization
.XmlSerializer
314 protected override System
.Xml
.Serialization
.XmlSerializationReader
CreateReader () {
315 return new WebReferenceOptionsReader ();
318 protected override System
.Xml
.Serialization
.XmlSerializationWriter
CreateWriter () {
319 return new WebReferenceOptionsWriter ();
322 public override bool CanDeserialize (System
.Xml
.XmlReader xmlReader
) {
327 internal sealed class webReferenceOptionsSerializer
: WebReferenceOptionsBaseSerializer
329 protected override void Serialize (object obj
, System
.Xml
.Serialization
.XmlSerializationWriter writer
) {
330 ((WebReferenceOptionsWriter
)writer
).WriteRoot_WebReferenceOptions(obj
);
333 protected override object Deserialize (System
.Xml
.Serialization
.XmlSerializationReader reader
) {
334 return ((WebReferenceOptionsReader
)reader
).ReadRoot_WebReferenceOptions();
338 internal class WebReferenceOptionsSerializerImplementation
: System
.Xml
.Serialization
.XmlSerializerImplementation
340 System
.Collections
.Hashtable readMethods
= null;
341 System
.Collections
.Hashtable writeMethods
= null;
342 System
.Collections
.Hashtable typedSerializers
= null;
344 public override System
.Xml
.Serialization
.XmlSerializationReader Reader
{
346 return new WebReferenceOptionsReader();
350 public override System
.Xml
.Serialization
.XmlSerializationWriter Writer
{
352 return new WebReferenceOptionsWriter();
356 public override System
.Collections
.Hashtable ReadMethods
{
359 if (readMethods
== null) {
360 readMethods
= new System
.Collections
.Hashtable ();
361 readMethods
.Add (@"", @"ReadRoot_WebReferenceOptions");
368 public override System
.Collections
.Hashtable WriteMethods
{
371 if (writeMethods
== null) {
372 writeMethods
= new System
.Collections
.Hashtable ();
373 writeMethods
.Add (@"", @"WriteRoot_WebReferenceOptions");
380 public override System
.Collections
.Hashtable TypedSerializers
{
383 if (typedSerializers
== null) {
384 typedSerializers
= new System
.Collections
.Hashtable ();
385 typedSerializers
.Add (@"", new webReferenceOptionsSerializer());
387 return typedSerializers
;
392 public override XmlSerializer
GetSerializer (Type type
)
394 switch (type
.FullName
) {
395 case "System.Web.Services.Description.WebReferenceOptions":
396 return (XmlSerializer
) TypedSerializers
[""];
399 return base.GetSerializer (type
);
402 public override bool CanSerialize (System
.Type type
) {
403 if (type
== typeof(System
.Web
.Services
.Description
.WebReferenceOptions
)) return true;