Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/System.Web.Services')
-rwxr-xr-xmcs/class/System.Web.Services/.cvsignore8
-rw-r--r--mcs/class/System.Web.Services/ChangeLog53
-rwxr-xr-xmcs/class/System.Web.Services/Mono.System.Web.Services.csproj869
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Configuration/ChangeLog6
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionAttribute.cs77
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPointAttribute.cs44
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPrefixAttribute.cs50
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Binding.cs80
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/BindingCollection.cs92
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog289
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/DocumentableItem.cs42
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/FaultBinding.cs52
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/FaultBindingCollection.cs87
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/HttpAddressBinding.cs42
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/HttpBinding.cs44
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/HttpOperationBinding.cs42
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlEncodedBinding.cs24
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlReplacementBinding.cs24
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Import.cs63
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ImportCollection.cs75
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/InputBinding.cs41
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Message.cs86
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MessageBinding.cs51
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MessageCollection.cs88
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MessagePart.cs73
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MessagePartCollection.cs86
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimeContentBinding.cs52
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimeMultipartRelatedBinding.cs41
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimePart.cs41
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimePartCollection.cs64
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextBinding.cs43
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatch.cs126
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatchCollection.cs70
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/MimeXmlBinding.cs42
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Operation.cs96
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationBinding.cs86
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationBindingCollection.cs75
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationCollection.cs75
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationFault.cs15
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationFaultCollection.cs87
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationFlow.cs19
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationInput.cs16
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessage.cs65
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessageCollection.cs130
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OperationOutput.cs13
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/OutputBinding.cs41
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Port.cs73
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/PortCollection.cs88
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/PortType.cs62
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/PortTypeCollection.cs87
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs201
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs170
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Service.cs69
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceCollection.cs90
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescription.cs260
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionBaseCollection.cs80
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionCollection.cs121
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtension.cs65
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs154
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportStyle.cs15
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportWarnings.cs20
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImporter.cs76
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionReflector.cs56
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapAddressBinding.cs42
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapBinding.cs61
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingStyle.cs21
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingUse.cs21
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapBodyBinding.cs76
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionImporter.cs44
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionReflector.cs42
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapFaultBinding.cs60
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderBinding.cs89
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderFaultBinding.cs82
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapOperationBinding.cs56
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolImporter.cs111
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs70
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/SoapTransportImporter.cs44
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Description/Types.cs49
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog61
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs107
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/ContractSearchPattern.cs47
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientDocumentCollection.cs66
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs138
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientReferenceCollection.cs67
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResult.cs62
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResultCollection.cs62
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocument.cs93
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentLinksPattern.cs47
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentReference.cs99
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentSearchPattern.cs47
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryExceptionDictionary.cs69
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReference.cs77
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReferenceCollection.cs62
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryRequestHandler.cs49
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoverySearchPattern.cs33
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/DynamicDiscoveryDocument.cs62
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/ExcludePathInfo.cs46
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/SchemaReference.cs105
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/SoapBinding.cs54
-rwxr-xr-xmcs/class/System.Web.Services/System.Web.Services.Discovery/XmlSchemaSearchPattern.cs47
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/AnyReturnReader.cs49
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog202
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterReader.cs36
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterWriter.cs52
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpGetClientProtocol.cs37
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpMethodAttribute.cs50
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpPostClientProtocol.cs37
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpServerProtocol.cs76
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSimpleClientProtocol.cs53
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs104
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodInfo.cs176
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodTypes.cs16
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/MatchAttribute.cs64
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeFormatter.cs57
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterReader.cs29
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterWriter.cs66
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnReader.cs30
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnWriter.cs22
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/NopReturnReader.cs49
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/PatternMatcher.cs35
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/ServerProtocol.cs110
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMessage.cs78
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMethod.cs27
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentMethodAttribute.cs102
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentServiceAttribute.cs67
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapException.cs91
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtension.cs46
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtensionAttribute.cs34
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeader.cs78
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderAttribute.cs52
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderCollection.cs69
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderDirection.cs18
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderException.cs39
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHttpClientProtocol.cs58
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs106
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessageStage.cs18
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapParameterStyle.cs17
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcMethodAttribute.cs86
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcServiceAttribute.cs38
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerMessage.cs80
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerProtocol.cs69
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServiceRoutingStyle.cs16
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapUnknownHeader.cs41
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/TextReturnReader.cs46
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlEncodedParameterWriter.cs66
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterReader.cs36
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterWriter.cs35
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/ValueCollectionParameterReader.cs61
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientAsyncResult.cs71
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientProtocol.cs140
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs69
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandlerFactory.cs41
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnReader.cs53
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnWriter.cs45
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services.build38
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/ChangeLog67
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/TODOAttribute.cs32
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/WebMethodAttribute.cs96
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/WebService.cs72
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/WebServiceAttribute.cs54
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/WebServiceBindingAttribute.cs67
-rw-r--r--mcs/class/System.Web.Services/System.Web.Services/WebServicesDescriptionAttribute.cs33
-rw-r--r--mcs/class/System.Web.Services/Test/.cvsignore1
-rw-r--r--mcs/class/System.Web.Services/Test/AllTests.cs24
-rw-r--r--mcs/class/System.Web.Services/Test/ChangeLog10
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/AllTests.cs22
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/ChangeLog5
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs80
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/AllTests.cs22
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ChangeLog5
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ContractReferenceTest.cs55
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services/AllTests.cs23
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services/ChangeLog6
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services/WebMethodAttributeTest.cs54
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services/WebServiceAttributeTest.cs50
-rw-r--r--mcs/class/System.Web.Services/Test/System.Web.Services_test.build35
-rw-r--r--mcs/class/System.Web.Services/list153
-rw-r--r--mcs/class/System.Web.Services/makefile.gnu13
178 files changed, 12000 insertions, 0 deletions
diff --git a/mcs/class/System.Web.Services/.cvsignore b/mcs/class/System.Web.Services/.cvsignore
new file mode 100755
index 00000000000..3145502e989
--- /dev/null
+++ b/mcs/class/System.Web.Services/.cvsignore
@@ -0,0 +1,8 @@
+*.dll
+*.suo
+*.csproj.user
+bin
+obj
+.makefrag
+.response
+library-deps.stamp
diff --git a/mcs/class/System.Web.Services/ChangeLog b/mcs/class/System.Web.Services/ChangeLog
new file mode 100644
index 00000000000..e46ae007acf
--- /dev/null
+++ b/mcs/class/System.Web.Services/ChangeLog
@@ -0,0 +1,53 @@
+2002-08-24 Tim Coleman <tim@timcoleman.com>
+ * list:
+ New files added to build.
+
+2002-08-23 Tim Coleman <tim@timcoleman.com>
+ * list:
+ New files added to build.
+
+2002-08-07 Tim Coleman <tim@timcoleman.com>
+ * System.Web.Services.build:
+ Added "test" target to build.
+ Added "clean" target to build.
+ * Test:
+ New test suites added.
+
+2002-08-06 Tim Coleman <tim@timcoleman.com>
+ * list: Added System.Web.Services.Protocols/ServerProtocol.cs
+
+2002-07-29 Dave Bettin <javabettin@yahoo.com>
+ * list: added new Discovery classes
+ * System.Web.Services.Discovery: added stubs
+ * .cvsignore: added
+ * Mono.System.Web.Services: added VS.net project for assembly
+
+2002-07-25 Tim Coleman <tim@timcoleman.com>
+ * list: add new classes
+
+2002-07-24 Tim Coleman <tim@timcoleman.com>
+ * list:
+ Added System.Web.Services.Description/SoapProtocolReflector.cs
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * makefile.gnu:
+ * list:
+ Modifications to make this library buildable on
+ linux.
+
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * list: Added new files from System.Web.Services.Protocols
+ and System.Web.Services.Configuration
+
+2002-07-19 Tim Coleman <tim@timcoleman.com>
+ * list: Added
+
+2002-07-19 Tim Coleman <tim@timcoleman.com>
+ * System.Web.Services.build: added
+ * System.Web.Services:
+ * System.Web.Services.Configuration:
+ * System.Web.Services.Description:
+ * System.Web.Services.Discovery:
+ * System.Web.Services.Protocols:
+ New directories added
diff --git a/mcs/class/System.Web.Services/Mono.System.Web.Services.csproj b/mcs/class/System.Web.Services/Mono.System.Web.Services.csproj
new file mode 100755
index 00000000000..bc69dceffd2
--- /dev/null
+++ b/mcs/class/System.Web.Services/Mono.System.Web.Services.csproj
@@ -0,0 +1,869 @@
+<VisualStudioProject>
+ <CSHARP
+ ProjectType = "Local"
+ ProductVersion = "7.0.9466"
+ SchemaVersion = "1.0"
+ ProjectGuid = "{1E24995F-861C-4FCB-BE59-C7B518F02F64}"
+ >
+ <Build>
+ <Settings
+ ApplicationIcon = ""
+ AssemblyKeyContainerName = ""
+ AssemblyName = "System.Web.Services"
+ AssemblyOriginatorKeyFile = ""
+ DefaultClientScript = "JScript"
+ DefaultHTMLPageLayout = "Grid"
+ DefaultTargetSchema = "IE50"
+ DelaySign = "false"
+ OutputType = "Library"
+ RootNamespace = "System.Web.Servces"
+ StartupObject = ""
+ >
+ <Config
+ Name = "Debug"
+ AllowUnsafeBlocks = "false"
+ BaseAddress = "285212672"
+ CheckForOverflowUnderflow = "false"
+ ConfigurationOverrideFile = ""
+ DefineConstants = "DEBUG;TRACE"
+ DocumentationFile = ""
+ DebugSymbols = "true"
+ FileAlignment = "4096"
+ IncrementalBuild = "true"
+ Optimize = "false"
+ OutputPath = "bin\Debug\"
+ RegisterForComInterop = "false"
+ RemoveIntegerChecks = "false"
+ TreatWarningsAsErrors = "false"
+ WarningLevel = "4"
+ />
+ <Config
+ Name = "Release"
+ AllowUnsafeBlocks = "false"
+ BaseAddress = "285212672"
+ CheckForOverflowUnderflow = "false"
+ ConfigurationOverrideFile = ""
+ DefineConstants = "TRACE"
+ DocumentationFile = ""
+ DebugSymbols = "false"
+ FileAlignment = "4096"
+ IncrementalBuild = "false"
+ Optimize = "true"
+ OutputPath = "bin\Release\"
+ RegisterForComInterop = "false"
+ RemoveIntegerChecks = "false"
+ TreatWarningsAsErrors = "false"
+ WarningLevel = "4"
+ />
+ </Settings>
+ <References>
+ <Reference
+ Name = "System.Web"
+ AssemblyName = "System.Web"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Web.dll"
+ />
+ <Reference
+ Name = "System.EnterpriseServices"
+ AssemblyName = "System.EnterpriseServices"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.EnterpriseServices.dll"
+ />
+ <Reference
+ Name = "System"
+ AssemblyName = "System"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
+ />
+ <Reference
+ Name = "System.XML"
+ AssemblyName = "System.Xml"
+ HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
+ />
+ </References>
+ </Build>
+ <Files>
+ <Include>
+ <File
+ RelPath = "ChangeLog"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "list"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "makefile.gnu"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services.build"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services\ChangeLog"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services\TODOAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services\WebMethodAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services\WebService.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services\WebService.resx"
+ DependentUpon = "WebService.cs"
+ BuildAction = "EmbeddedResource"
+ />
+ <File
+ RelPath = "System.Web.Services\WebServiceAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services\WebServiceBindingAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services\WebServicesDescriptionAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Configuration\ChangeLog"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services.Configuration\XmlFormatExtensionAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Configuration\XmlFormatExtensionPointAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Configuration\XmlFormatExtensionPrefixAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Binding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\BindingCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ChangeLog"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\DocumentableItem.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\FaultBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\FaultBindingCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\HttpAddressBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\HttpBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\HttpOperationBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\HttpUrlEncodedBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\HttpUrlReplacementBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Import.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ImportCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\InputBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Message.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MessageBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MessageCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MessagePart.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MessagePartCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimeContentBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimeMultipartRelatedBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimePart.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimePartCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimeTextBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimeTextMatch.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimeTextMatchCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\MimeXmlBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Operation.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationBindingCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationFault.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationFaultCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationFlow.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationInput.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationMessage.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationMessageCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OperationOutput.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\OutputBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Port.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\PortCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\PortType.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\PortTypeCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ProtocolImporter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ProtocolReflector.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Service.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescription.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionBaseCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionFormatExtension.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionFormatExtensionCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionImporter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionImportStyle.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionImportWarnings.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\ServiceDescriptionReflector.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapAddressBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapBindingStyle.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapBindingUse.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapBodyBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapExtensionImporter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapExtensionReflector.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapFaultBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapHeaderBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapHeaderFaultBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapOperationBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapProtocolImporter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapProtocolReflector.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\SoapTransportImporter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Description\Types.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\ChangeLog"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\ContractReference.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\ContractSearchPattern.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryClientDocumentCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryClientReferenceCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryClientResult.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryClientResultCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryDocument.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryDocumentLinksPattern.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryDocumentReference.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryDocumentSearchPattern.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryExceptionDictionary.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryReference.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryReferenceCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoveryRequestHandler.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DiscoverySearchPattern.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\DynamicDiscoveryDocument.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\ExcludePathInfo.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\SchemaReference.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\SoapBinding.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Discovery\XmlSchemaSearchPattern.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\AnyReturnReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\ChangeLog"
+ BuildAction = "None"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HtmlFormParameterReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HtmlFormParameterWriter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HttpGetClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HttpMethodAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HttpPostClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HttpSimpleClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\HttpWebClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\LogicalMethodInfo.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\LogicalMethodTypes.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\MatchAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\MimeFormatter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\MimeParameterReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\MimeParameterWriter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\MimeReturnReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\NopReturnReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\PatternMatcher.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapClientMessage.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapClientMethod.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapDocumentMethodAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapDocumentServiceAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapException.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapExtension.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapExtensionAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapHeader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapHeaderAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapHeaderCollection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapHeaderDirection.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapHeaderException.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapHttpClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapMessage.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapMessageStage.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapParameterStyle.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapRpcMethodAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapRpcServiceAttribute.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapServerMessage.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapServerProtocol.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapServiceRoutingStyle.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\SoapUnknownHeader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\TextReturnReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\UrlEncodedParameterWriter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\UrlParameterReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\UrlParameterWriter.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\ValueCollectionParameterReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\WebClientAsyncResult.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\WebClientProtocol.cs"
+ SubType = "Component"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\WebServiceHandlerFactory.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "System.Web.Services.Protocols\XmlReturnReader.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ </Include>
+ </Files>
+ </CSHARP>
+</VisualStudioProject>
+
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Configuration/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Configuration/ChangeLog
new file mode 100644
index 00000000000..b91825974fc
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Configuration/ChangeLog
@@ -0,0 +1,6 @@
+2002-07-21 Tim Coleman <tim@timcoleman.com>
+ * ChangeLog:
+ * XmlFormatExtensionAttribute.cs:
+ * XmlFormatExtensionPointAttribute.cs:
+ * XmlFormatExtensionPrefixAttribute.cs:
+ New files added
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionAttribute.cs
new file mode 100644
index 00000000000..eda21c22cec
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionAttribute.cs
@@ -0,0 +1,77 @@
+ //
+// System.Web.Services.Configuration.XmlFormatExtensionAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Configuration {
+ [AttributeUsage (AttributeTargets.Class)]
+ public sealed class XmlFormatExtensionAttribute : Attribute {
+
+ #region Fields
+
+ string elementName;
+ string ns;
+ Type[] extensionPoints;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public XmlFormatExtensionAttribute ()
+ {
+ }
+
+ public XmlFormatExtensionAttribute (string elementName, string ns, Type extensionPoint1)
+ : this (elementName, ns, new Type[1] {extensionPoint1})
+ {
+ }
+
+ public XmlFormatExtensionAttribute (string elementName, string ns, Type[] extensionPoints)
+ : this ()
+ {
+ this.elementName = elementName;
+ this.ns = ns;
+ this.extensionPoints = extensionPoints;
+ }
+
+ public XmlFormatExtensionAttribute (string elementName, string ns, Type extensionPoint1, Type extensionPoint2)
+ : this (elementName, ns, new Type[2] {extensionPoint1, extensionPoint2})
+ {
+ }
+
+ public XmlFormatExtensionAttribute (string elementName, string ns, Type extensionPoint1, Type extensionPoint2, Type extensionPoint3)
+ : this (elementName, ns, new Type[3] {extensionPoint1, extensionPoint2, extensionPoint3})
+ {
+ }
+
+ public XmlFormatExtensionAttribute (string elementName, string ns, Type extensionPoint1, Type extensionPoint2, Type extensionPoint3, Type extensionPoint4)
+ : this (elementName, ns, new Type[4] {extensionPoint1, extensionPoint2, extensionPoint3, extensionPoint4})
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string ElementName {
+ get { return elementName; }
+ set { elementName = value; }
+ }
+
+ public Type[] ExtensionPoints {
+ get { return extensionPoints; }
+ set { extensionPoints = value; }
+ }
+
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPointAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPointAttribute.cs
new file mode 100644
index 00000000000..f7cac2e032f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPointAttribute.cs
@@ -0,0 +1,44 @@
+ //
+// System.Web.Services.Configuration.XmlFormatExtensionPointAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Configuration {
+ [AttributeUsage (AttributeTargets.Class)]
+ public sealed class XmlFormatExtensionPointAttribute : Attribute {
+
+ #region Fields
+
+ bool allowElements;
+ string memberName;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public XmlFormatExtensionPointAttribute (string memberName)
+ {
+ allowElements = false; // FIXME
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public bool AllowElements {
+ get { return allowElements; }
+ set { allowElements = value; }
+ }
+
+ public string MemberName {
+ get { return memberName; }
+ set { memberName = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPrefixAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPrefixAttribute.cs
new file mode 100644
index 00000000000..91ed4038e60
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Configuration/XmlFormatExtensionPrefixAttribute.cs
@@ -0,0 +1,50 @@
+ //
+// System.Web.Services.Configuration.XmlFormatExtensionPrefixAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Configuration {
+ [AttributeUsage (AttributeTargets.Class)]
+ public sealed class XmlFormatExtensionPrefixAttribute : Attribute {
+
+ #region Fields
+
+ string prefix;
+ string ns;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public XmlFormatExtensionPrefixAttribute ()
+ {
+ }
+
+ public XmlFormatExtensionPrefixAttribute (string prefix, string ns)
+ : this ()
+ {
+ this.prefix = prefix;
+ this.ns = ns;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string Prefix {
+ get { return prefix; }
+ set { prefix = value; }
+ }
+
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Binding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Binding.cs
new file mode 100644
index 00000000000..9b7206f596e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Binding.cs
@@ -0,0 +1,80 @@
+//
+// System.Web.Services.Description.Binding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class Binding : DocumentableItem {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+ string name;
+ OperationBindingCollection operations;
+ ServiceDescription serviceDescription;
+ XmlQualifiedName type;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Binding ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ name = String.Empty;
+ operations = new OperationBindingCollection (this);
+ serviceDescription = null;
+ type = XmlQualifiedName.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlElement ("operation")]
+ public OperationBindingCollection Operations {
+ get { return operations; }
+ }
+
+ public ServiceDescription ServiceDescription {
+ get { return serviceDescription; }
+ }
+
+ [XmlAttribute ("type")]
+ public XmlQualifiedName Type {
+ get { return type; }
+ set { type = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (ServiceDescription serviceDescription)
+ {
+ this.serviceDescription = serviceDescription;
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/BindingCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/BindingCollection.cs
new file mode 100644
index 00000000000..257bda99c6a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/BindingCollection.cs
@@ -0,0 +1,92 @@
+//
+// System.Web.Services.Description.BindingCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class BindingCollection : ServiceDescriptionBaseCollection {
+
+ #region Fields
+
+ ServiceDescription serviceDescription;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ internal BindingCollection (ServiceDescription serviceDescription)
+ : base (serviceDescription)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Binding this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (Binding) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public Binding this [string name] {
+ get { return this[IndexOf ((Binding) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (Binding binding)
+ {
+ Insert (Count, binding);
+ return (Count - 1);
+ }
+
+ public bool Contains (Binding binding)
+ {
+ return List.Contains (binding);
+ }
+
+ public void CopyTo (Binding[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is Binding))
+ throw new InvalidCastException ();
+ return ((Binding) value).Name;
+ }
+
+ public int IndexOf (Binding binding)
+ {
+ return List.IndexOf (binding);
+ }
+
+ public void Insert (int index, Binding binding)
+ {
+ List.Insert (index, binding);
+ }
+
+ public void Remove (Binding binding)
+ {
+ List.Remove (binding);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((Binding) value).SetParent ((ServiceDescription) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
new file mode 100644
index 00000000000..779d19a55c9
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ChangeLog
@@ -0,0 +1,289 @@
+2002-08-20 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescription.cs:
+ Add ServiceDescription.ServiceDescriptionSerializer
+ class.
+ * ServiceDescriptionFormatExtensionCollection.cs:
+ Remove reference to "parent".
+
+2002-08-19 Tim Coleman <tim@timcoleman.com>
+ * BindingCollection.cs:
+ Use base constructor, remove SetParent call
+ * FaultBindingCollection.cs:
+ * ImportCollection.cs:
+ * MessageCollection.cs:
+ * MessagePartCollection.cs:
+ * OperationBindingCollection.cs:
+ * OperationCollection.cs:
+ * OperationFaultCollection.cs:
+ * PortCollection.cs:
+ * PortTypeCollection.cs:
+ * ServiceCollection.cs:
+ * ServiceDescriptionFormatExtensionCollection.cs:
+ Use base constructor
+ * ServiceDescriptionCollection.cs:
+ Use base constructor, Remove SetParent method
+ * ServiceDescriptionBaseCollection.cs:
+ Make parent object private as according to
+ class status page.
+ * OperationMessageCollection.cs:
+ Use base constructor
+ Remove excess break's to avoid compiler warning
+ Remove TODO attribute (confirmed default retval)
+
+2002-08-15 Tim Coleman <tim@timcoleman.com>
+ * FaultBindingCollection.cs:
+ * ImportCollection.cs:
+ * MessageCollection.cs:
+ * MessagePartCollection.cs:
+ * OperationBindingCollection.cs:
+ * OperationCollection.cs:
+ * OperationFaultCollection.cs:
+ * OperationMessageCollection.cs:
+ * PortCollection.cs:
+ * PortTypeCollection.cs:
+ * ServiceCollection.cs:
+ * ServiceDescriptionFormatExtensionCollection.cs:
+ Use parent from ServiceDescriptionBaseCollection
+ * ServiceDescriptionCollection.cs:
+ Use parent from ServiceDescriptionBaseCollection
+ Implement SetParent () method
+ * ServiceDescriptionBaseCollection.cs:
+ Add "parent" object.
+ Add SetParent call to OnSet() and OnInsert ()
+
+2002-08-12 Tim Coleman <tim@timcoleman.com>
+ * Operation.cs:
+ Fix ParameterOrderString in case ParameterOrder is
+ null.
+ * BindingCollection.cs:
+ Remove Table handling on insert/delete/indexer
+ because it is handled in base class.
+ * ServiceDescriptionBaseCollection.cs:
+ Only add an element to the hashtable if its GetKey ()
+ method does not return null.
+
+2002-08-09 Tim Coleman <tim@timcoleman.com>
+ * BindingCollection.cs:
+ * ServiceDescriptionCollection.cs:
+ Implement Set indexer
+ * FaultBindingCollection.cs:
+ * MessageCollection.cs:
+ * MessagePartCollection.cs:
+ * OperationFaultCollection.cs:
+ * PortCollection.cs:
+ * PortTypeCollection.cs:
+ * ServiceCollection.cs:
+ Implement Set indexer, code cleanup
+ * Message.cs:
+ Implement FindPartByName ()
+ * OperationMessageCollection.cs:
+ Alter OnSet () method
+ * ServiceDescriptionBaseCollection.cs:
+ Implement some methods.
+ * ServiceDescriptionFormatExtensionCollection.cs:
+ Implement Find (), FindAll (), OnValidate () methods
+
+
+2002-08-06 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescription.cs:
+ Add namespace definitions when serializing.
+ * HttpBinding.cs:
+ Change namespace definition (wsdl was spelt wsld)
+
+2002-08-06 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescription.cs:
+ Change the XmlElement name from "type" to "types" for
+ the Types object
+
+2002-08-06 Tim Coleman <tim@timcoleman.com>
+ * ServerProtocol.cs:
+ Add new class as implied by class statuc page.
+ SoapServerProtocol is derived from this.
+ * SoapServerProtocol.cs:
+ Change base class to ServerProtocol.
+ * SoapClientMethod.cs:
+ This class should not be sealed.
+
+2002-08-03 Tim Coleman <tim@timcoleman.com>
+ * SoapProtocolReflector.cs:
+ Removed SoapBinding property and made the class
+ not sealed to agree with class reference page.
+
+2002-08-03 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescriptionBaseCollection.cs:
+ Removed some NotImplementedException()'s so that
+ it runs.
+
+2002-07-26 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescription.cs:
+ Changed the creation of the XmlSerializer after
+ consulting the System.Xml.Serialization namespace
+ and trying to serialize a document. Now works somewhat!
+
+2002-07-25 Tim Coleman <tim@timcoleman.com>
+ * OperationMessageCollection.cs:
+ Some implementation of this class after consulting a
+ WSDL reference. Now validates the inputs.
+
+2002-07-24 Tim Coleman <tim@timcoleman.com>
+ * ProtocolImporter.cs:
+ * ProtocolReflector.cs:
+ Some implementation of these classes. MonoTODO's begone!
+ * SoapProtocolImporter.cs:
+ Changed description to literal string "Soap"
+ * SoapProtocolReflector.cs:
+ Added a new class based on guesswork and conjecture.
+
+2002-07-24 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescription.cs:
+ Implement Read/Write methods for serialization/
+ deserialization.
+
+2002-07-23 Tim Coleman <tim@timcoleman.com>
+ * ServiceDescription.cs:
+ Add XmlIgnore attribute to ServiceDescriptions property
+ * OperationFlow.cs:
+ * ServiceDescriptionImportWarnings.cs:
+ Explicitly set values in enumeration to match
+ .NET.
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * Binding.cs:
+ * BindingCollection.cs:
+ * DocumentableItem.cs:
+ * FaultBinding.cs:
+ * FaultBindingCollection.cs:
+ * HttpAddressBinding.cs:
+ * HttpBinding.cs:
+ * HttpOperationBinding.cs:
+ * HttpUrlEncodedBinding.cs:
+ * HttpUrlReplacementBinding.cs:
+ * Import.cs:
+ * ImportCollection.cs:
+ * InputBinding.cs:
+ * Message.cs:
+ * MessageBinding.cs:
+ * MessageCollection.cs:
+ * MessagePart.cs:
+ * MessagePartCollection.cs:
+ * MimeContentBinding.cs:
+ * MimeMultipartRelatedBinding.cs:
+ * MimePart.cs:
+ * MimePartCollection.cs:
+ * MimeTextBinding.cs:
+ * MimeTextMatch.cs:
+ * MimeTextMatchCollection.cs:
+ * MimeXmlBinding.cs:
+ * Operation.cs:
+ * OperationBinding.cs:
+ * OperationBindingCollection.cs:
+ * OperationCollection.cs:
+ * OperationFaultCollection.cs:
+ * OperationFlow.cs:
+ * OperationMessage.cs:
+ * OperationMessageCollection.cs:
+ * OutputBinding.cs:
+ * Port.cs:
+ * PortCollection.cs:
+ * PortType.cs:
+ * PortTypeCollection.cs:
+ * ProtocolImporter.cs:
+ * Service.cs:
+ * ServiceCollection.cs:
+ * ServiceDescription.cs:
+ * ServiceDescriptionBaseCollection.cs:
+ * ServiceDescriptionCollection.cs:
+ * ServiceDescriptionFormatExtension.cs:
+ * ServiceDescriptionFormatExtensionCollection.cs:
+ * ServiceDescriptionImportWarnings.cs:
+ * SoapAddressBinding.cs:
+ * SoapBinding.cs:
+ * SoapBindingStyle.cs:
+ * SoapBindingUse.cs:
+ * SoapBodyBinding.cs:
+ * SoapExtensionImporter.cs:
+ * SoapExtensionReflector.cs:
+ * SoapFaultBinding.cs:
+ * SoapHeaderBinding.cs:
+ * SoapHeaderFaultBinding.cs:
+ * SoapOperationBinding.cs:
+ * SoapTransportImporter.cs:
+ * Types.cs:
+ 1. Add missing attributes as determined by reflection
+ 2. Fix protection levels where appropriate
+ 3. Add missing items where appropriate
+ Basically, this was a change to remove all the X's from
+ the project status page for this namespace :)
+
+2002-07-19 Tim Coleman <tim@timcoleman.com>
+ * Binding.cs:
+ * BindingCollection.cs:
+ * ChangeLog:
+ * DocumentableItem.cs:
+ * FaultBinding.cs:
+ * FaultBindingCollection.cs:
+ * HttpAddressBinding.cs:
+ * HttpBinding.cs:
+ * HttpOperationBinding.cs:
+ * HttpUrlEncodedBinding.cs:
+ * HttpUrlReplacementBinding.cs:
+ * Import.cs:
+ * ImportCollection.cs:
+ * InputBinding.cs:
+ * Message.cs:
+ * MessageBinding.cs:
+ * MessageCollection.cs:
+ * MessagePart.cs:
+ * MessagePartCollection.cs:
+ * MimeContentBinding.cs:
+ * MimeMultipartRelatedBinding.cs:
+ * MimePart.cs:
+ * MimePartCollection.cs:
+ * MimeTextBinding.cs:
+ * MimeTextMatch.cs:
+ * MimeTextMatchCollection.cs:
+ * MimeXmlBinding.cs:
+ * Operation.cs:
+ * OperationBinding.cs:
+ * OperationBindingCollection.cs:
+ * OperationCollection.cs:
+ * OperationFault.cs:
+ * OperationFaultCollection.cs:
+ * OperationFlow.cs:
+ * OperationInput.cs:
+ * OperationMessage.cs:
+ * OperationMessageCollection.cs:
+ * OperationOutput.cs:
+ * OutputBinding.cs:
+ * Port.cs:
+ * PortCollection.cs:
+ * PortType.cs:
+ * PortTypeCollection.cs:
+ * ProtocolImporter.cs:
+ * ProtocolReflector.cs:
+ * Service.cs:
+ * ServiceCollection.cs:
+ * ServiceDescription.cs:
+ * ServiceDescriptionBaseCollection.cs:
+ * ServiceDescriptionCollection.cs:
+ * ServiceDescriptionFormatExtension.cs:
+ * ServiceDescriptionFormatExtensionCollection.cs:
+ * ServiceDescriptionImportStyle.cs:
+ * ServiceDescriptionImportWarnings.cs:
+ * ServiceDescriptionImporter.cs:
+ * ServiceDescriptionReflector.cs:
+ * SoapAddressBinding.cs:
+ * SoapBinding.cs:
+ * SoapBindingStyle.cs:
+ * SoapBindingUse.cs:
+ * SoapBodyBinding.cs:
+ * SoapExtensionImporter.cs:
+ * SoapExtensionReflector.cs:
+ * SoapFaultBinding.cs:
+ * SoapHeaderBinding.cs:
+ * SoapHeaderFaultBinding.cs:
+ * SoapOperationBinding.cs:
+ * SoapProtocolImporter.cs:
+ * SoapTransportImporter.cs:
+ * Types.cs:
+ Initial implementation
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/DocumentableItem.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/DocumentableItem.cs
new file mode 100644
index 00000000000..8c4e2a78f3c
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/DocumentableItem.cs
@@ -0,0 +1,42 @@
+//
+// System.Web.Services.Description.DocumentableItem.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public abstract class DocumentableItem {
+
+ #region Fields
+
+ string documentation;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected DocumentableItem ()
+ {
+ documentation = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlElement ("documentation")]
+ [DefaultValue ("")]
+ public string Documentation {
+ get { return documentation; }
+ set { documentation = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/FaultBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/FaultBinding.cs
new file mode 100644
index 00000000000..423a08060b2
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/FaultBinding.cs
@@ -0,0 +1,52 @@
+//
+// System.Web.Services.Description.FaultBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class FaultBinding : MessageBinding {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+ OperationBinding operationBinding;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public FaultBinding ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ operationBinding = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public override ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (OperationBinding operationBinding)
+ {
+ this.operationBinding = operationBinding;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/FaultBindingCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/FaultBindingCollection.cs
new file mode 100644
index 00000000000..fe885c1bd4e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/FaultBindingCollection.cs
@@ -0,0 +1,87 @@
+//
+// System.Web.Services.Description.FaultBindingCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class FaultBindingCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal FaultBindingCollection (OperationBinding operationBinding)
+ : base (operationBinding)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public FaultBinding this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (FaultBinding) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public FaultBinding this [string name] {
+ get { return this [IndexOf ((FaultBinding) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (FaultBinding bindingOperationFault)
+ {
+ Insert (Count, bindingOperationFault);
+ return (Count - 1);
+ }
+
+ public bool Contains (FaultBinding bindingOperationFault)
+ {
+ return List.Contains (bindingOperationFault);
+ }
+
+ public void CopyTo (FaultBinding[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is FaultBinding))
+ throw new InvalidCastException ();
+
+ return ((FaultBinding) value).Name;
+ }
+
+ public int IndexOf (FaultBinding bindingOperationFault)
+ {
+ return List.IndexOf (bindingOperationFault);
+ }
+
+ public void Insert (int index, FaultBinding bindingOperationFault)
+ {
+ List.Insert (index, bindingOperationFault);
+ }
+
+ public void Remove (FaultBinding bindingOperationFault)
+ {
+ List.Remove (bindingOperationFault);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((FaultBinding) value).SetParent ((OperationBinding) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/HttpAddressBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpAddressBinding.cs
new file mode 100644
index 00000000000..b35eb111bf8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpAddressBinding.cs
@@ -0,0 +1,42 @@
+//
+// System.Web.Services.Description.HttpAddressBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("address", "http://schemas.xmlsoap.org/wsdl/http/", typeof (Port))]
+ public sealed class HttpAddressBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string location;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public HttpAddressBinding ()
+ {
+ location = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("location")]
+ public string Location {
+ get { return location; }
+ set { location = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/HttpBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpBinding.cs
new file mode 100644
index 00000000000..fe5adf056a9
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpBinding.cs
@@ -0,0 +1,44 @@
+//
+// System.Web.Services.Description.HttpBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("binding", "http://schemas.xmlsoap.org/wsdl/http/", typeof (Binding))]
+ [XmlFormatExtensionPrefix ("http", "http://schemas.xmlsoap.org/wsdl/http/")]
+ public sealed class HttpBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ public const string Namespace = "http://schemas.xmlsoap.org/wsdl/http/";
+ string verb;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public HttpBinding ()
+ {
+ verb = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("verb", DataType = "NMTOKEN")]
+ public string Verb {
+ get { return verb; }
+ set { verb = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/HttpOperationBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpOperationBinding.cs
new file mode 100644
index 00000000000..0115dbb0b61
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpOperationBinding.cs
@@ -0,0 +1,42 @@
+//
+// System.Web.Services.Description.HttpOperationBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("operation", "http://schemas.xmlsoap.org/wsdl/http/", typeof (OperationBinding))]
+ public sealed class HttpOperationBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string location;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public HttpOperationBinding ()
+ {
+ location = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("location")]
+ public string Location {
+ get { return location; }
+ set { location = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlEncodedBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlEncodedBinding.cs
new file mode 100644
index 00000000000..4ce0e0fe4f9
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlEncodedBinding.cs
@@ -0,0 +1,24 @@
+//
+// System.Web.Services.Description.HttpUrlEncodedBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("urlEncoded", "http://schemas.xmlsoap.org/wsdl/http/", typeof (InputBinding))]
+ public sealed class HttpUrlEncodedBinding : ServiceDescriptionFormatExtension {
+
+ #region Constructors
+
+ public HttpUrlEncodedBinding ()
+ {
+ }
+
+ #endregion // Constructors
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlReplacementBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlReplacementBinding.cs
new file mode 100644
index 00000000000..9414c8cbd46
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/HttpUrlReplacementBinding.cs
@@ -0,0 +1,24 @@
+//
+// System.Web.Services.Description.HttpUrlReplacementBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("urlReplacement", "http://schemas.xmlsoap.org/wsdl/http/", typeof (InputBinding))]
+ public sealed class HttpUrlReplacementBinding : ServiceDescriptionFormatExtension {
+
+ #region Constructors
+
+ public HttpUrlReplacementBinding ()
+ {
+ }
+
+ #endregion // Constructors
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Import.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Import.cs
new file mode 100644
index 00000000000..8c36325bf19
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Import.cs
@@ -0,0 +1,63 @@
+//
+// System.Web.Services.Description.Import.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class Import : DocumentableItem {
+
+ #region Fields
+
+ string location;
+ string ns;
+ ServiceDescription serviceDescription;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Import ()
+ {
+ location = String.Empty;
+ ns = String.Empty;
+ serviceDescription = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("location")]
+ public string Location {
+ get { return location; }
+ set { location = value; }
+ }
+
+ [XmlAttribute ("namespace")]
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ public ServiceDescription ServiceDescription {
+ get { return serviceDescription; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (ServiceDescription serviceDescription)
+ {
+ this.serviceDescription = serviceDescription;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ImportCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ImportCollection.cs
new file mode 100644
index 00000000000..a1cfd6eb14f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ImportCollection.cs
@@ -0,0 +1,75 @@
+//
+// System.Web.Services.Description.ImportCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class ImportCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal ImportCollection (ServiceDescription serviceDescription)
+ : base (serviceDescription)
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public Import this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (Import) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (Import import)
+ {
+ Insert (Count, import);
+ return (Count - 1);
+ }
+
+ public bool Contains (Import import)
+ {
+ return List.Contains (import);
+ }
+
+ public void CopyTo (Import[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (Import import)
+ {
+ return List.IndexOf (import);
+ }
+
+ public void Insert (int index, Import import)
+ {
+ List.Insert (index, import);
+ }
+
+ public void Remove (Import import)
+ {
+ List.Remove (import);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((Import) value).SetParent ((ServiceDescription) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/InputBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/InputBinding.cs
new file mode 100644
index 00000000000..d8b9483b2b1
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/InputBinding.cs
@@ -0,0 +1,41 @@
+//
+// System.Web.Services.Description.InputBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class InputBinding : MessageBinding {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public InputBinding ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public override ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Message.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Message.cs
new file mode 100644
index 00000000000..3d812ee2c8d
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Message.cs
@@ -0,0 +1,86 @@
+//
+// System.Web.Services.Description.Message.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+using System.Web.Services;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class Message : DocumentableItem {
+
+ #region Fields
+
+ string name;
+ MessagePartCollection parts;
+ ServiceDescription serviceDescription;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Message ()
+ {
+ name = String.Empty;
+ parts = new MessagePartCollection (this);
+ serviceDescription = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlElement ("part")]
+ public MessagePartCollection Parts {
+ get { return parts; }
+ }
+
+ public ServiceDescription ServiceDescription {
+ get { return serviceDescription; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public MessagePart FindPartByName (string partName)
+ {
+ return parts [partName];
+ }
+
+ public MessagePart[] FindPartsByName (string[] partNames)
+ {
+ ArrayList searchResults = new ArrayList ();
+
+ foreach (string partName in partNames)
+ searchResults.Add (FindPartByName (partName));
+
+ int count = searchResults.Count;
+
+ if (count == 0)
+ throw new ArgumentException ();
+
+ MessagePart[] returnValue = new MessagePart[count];
+ searchResults.CopyTo (returnValue);
+ return returnValue;
+ }
+
+ internal void SetParent (ServiceDescription serviceDescription)
+ {
+ this.serviceDescription = serviceDescription;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MessageBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MessageBinding.cs
new file mode 100644
index 00000000000..6488901d9ff
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MessageBinding.cs
@@ -0,0 +1,51 @@
+//
+// System.Web.Services.Description.MessageBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public abstract class MessageBinding : DocumentableItem {
+
+ #region Fields
+
+ string name;
+ OperationBinding operationBinding;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected MessageBinding ()
+ {
+ name = String.Empty;
+ operationBinding = new OperationBinding ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public abstract ServiceDescriptionFormatExtensionCollection Extensions {
+ get;
+ }
+
+ [XmlAttribute ("name", DataType = "NMTOKEN")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public OperationBinding OperationBinding {
+ get { return operationBinding; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MessageCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MessageCollection.cs
new file mode 100644
index 00000000000..1ba2bcf0afc
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MessageCollection.cs
@@ -0,0 +1,88 @@
+//
+// System.Web.Services.Description.MessageCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class MessageCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal MessageCollection (ServiceDescription serviceDescription)
+ : base (serviceDescription)
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public Message this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (Message) List [index];
+ }
+ set { List [index] = value; }
+ }
+
+ public Message this [string name] {
+ get { return this [IndexOf ((Message) Table [name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (Message message)
+ {
+ Insert (Count, message);
+ return (Count - 1);
+ }
+
+ public bool Contains (Message message)
+ {
+ return List.Contains (message);
+ }
+
+ public void CopyTo (Message[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is Message))
+ throw new InvalidCastException ();
+
+ return ((Message) value).Name;
+ }
+
+ public int IndexOf (Message message)
+ {
+ return List.IndexOf (message);
+ }
+
+ public void Insert (int index, Message message)
+ {
+ List.Insert (index, message);
+ }
+
+ public void Remove (Message message)
+ {
+ List.Remove (message);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((Message) value).SetParent ((ServiceDescription) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MessagePart.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MessagePart.cs
new file mode 100644
index 00000000000..8b6923807f3
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MessagePart.cs
@@ -0,0 +1,73 @@
+//
+// System.Web.Services.Description.MessagePart.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class MessagePart : DocumentableItem {
+
+ #region Fields
+
+ XmlQualifiedName element;
+ Message message;
+ string name;
+ XmlQualifiedName type;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MessagePart ()
+ {
+ element = XmlQualifiedName.Empty;
+ message = null;
+ name = String.Empty;
+ type = XmlQualifiedName.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("element")]
+ public XmlQualifiedName Element {
+ get { return element; }
+ set { element = value; }
+ }
+
+ public Message Message {
+ get { return message; }
+ }
+
+ [XmlAttribute ("name", DataType = "NMTOKEN")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlAttribute ("type")]
+ public XmlQualifiedName Type {
+ get { return type; }
+ set { type = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (Message message)
+ {
+ this.message = message;
+ }
+
+ #endregion // Methods
+
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MessagePartCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MessagePartCollection.cs
new file mode 100644
index 00000000000..6f35c6d9ef4
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MessagePartCollection.cs
@@ -0,0 +1,86 @@
+//
+// System.Web.Services.Description.MessagePartCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class MessagePartCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal MessagePartCollection (Message message)
+ : base (message)
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public MessagePart this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (MessagePart) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public MessagePart this [string name] {
+ get { return this [IndexOf ((MessagePart) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (MessagePart messagePart)
+ {
+ Insert (Count, messagePart);
+ return (Count - 1);
+ }
+
+ public bool Contains (MessagePart messagePart)
+ {
+ return List.Contains (messagePart);
+ }
+
+ public void CopyTo (MessagePart[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is MessagePart))
+ throw new InvalidCastException ();
+ return ((MessagePart) value).Name;
+ }
+
+ public int IndexOf (MessagePart messagePart)
+ {
+ return List.IndexOf (messagePart);
+ }
+
+ public void Insert (int index, MessagePart messagePart)
+ {
+ List.Insert (index, messagePart);
+ }
+
+ public void Remove (MessagePart messagePart)
+ {
+ List.Remove (messagePart);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((MessagePart) value).SetParent ((Message) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimeContentBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeContentBinding.cs
new file mode 100644
index 00000000000..6c1871f0002
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeContentBinding.cs
@@ -0,0 +1,52 @@
+//
+// System.Web.Services.Description.MimeContentBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPrefix ("mime", "http://schemas.xmlsoap.org/wsdl/mime/")]
+ [XmlFormatExtension ("content", "http://schemas.xmlsoap.org/wsdl/mime/", typeof (InputBinding), typeof (OutputBinding))]
+ public sealed class MimeContentBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ public const string Namespace = "http://schemas.xmlsoap.org/wsdl/mime/";
+ string part;
+ string type;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MimeContentBinding ()
+ {
+ part = String.Empty;
+ type = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("part", DataType = "NMTOKEN")]
+ public string Part {
+ get { return part; }
+ set { part = value; }
+ }
+
+ [XmlAttribute ("type")]
+ public string Type {
+ get { return type; }
+ set { type = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimeMultipartRelatedBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeMultipartRelatedBinding.cs
new file mode 100644
index 00000000000..625638a4e7f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeMultipartRelatedBinding.cs
@@ -0,0 +1,41 @@
+//
+// System.Web.Services.Description.MimeMultipartRelatedBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("multipartRelated", "http://schemas.xmlsoap.org/wsdl/mime/", typeof (InputBinding), typeof (OutputBinding))]
+ public sealed class MimeMultipartRelatedBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ MimePartCollection parts;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MimeMultipartRelatedBinding ()
+ {
+ parts = new MimePartCollection ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlElement ("parts")]
+ public MimePartCollection Parts {
+ get { return parts; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimePart.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimePart.cs
new file mode 100644
index 00000000000..9723912f4a3
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimePart.cs
@@ -0,0 +1,41 @@
+//
+// System.Web.Services.Description.MimePart.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class MimePart : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MimePart ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimePartCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimePartCollection.cs
new file mode 100644
index 00000000000..fefe85c9304
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimePartCollection.cs
@@ -0,0 +1,64 @@
+//
+// System.Web.Services.Description.MimePartCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Description {
+ public sealed class MimePartCollection : CollectionBase {
+
+ #region Properties
+
+ public MimePart this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (MimePart) List[index];
+ }
+ set { List[index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (MimePart mimePart)
+ {
+ Insert (Count, mimePart);
+ return (Count - 1);
+ }
+
+ public bool Contains (MimePart mimePart)
+ {
+ return List.Contains (mimePart);
+ }
+
+ public void CopyTo (MimePart[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (MimePart mimePart)
+ {
+ return List.IndexOf (mimePart);
+ }
+
+ public void Insert (int index, MimePart mimePart)
+ {
+ List.Insert (index, mimePart);
+ }
+
+ public void Remove (MimePart mimePart)
+ {
+ List.Remove (mimePart);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextBinding.cs
new file mode 100644
index 00000000000..9ce4fd4945d
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextBinding.cs
@@ -0,0 +1,43 @@
+//
+// System.Web.Services.Description.MimeTextBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("text", "http://microsoft.com/wsdl/mime/textMatching/", typeof (InputBinding), typeof (OutputBinding), typeof (MimePart))]
+ [XmlFormatExtensionPrefix ("tm", "http://microsoft.com/wsdl/mime/textMatching/")]
+ public sealed class MimeTextBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ public const string Namespace = "http://microsoft.com/wsdl/mime/textMatching/";
+ MimeTextMatchCollection matches;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MimeTextBinding ()
+ {
+ matches = new MimeTextMatchCollection ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlElement ("match", typeof (MimeTextMatch))]
+ public MimeTextMatchCollection Matches {
+ get { return matches; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatch.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatch.cs
new file mode 100644
index 00000000000..87c9b20122d
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatch.cs
@@ -0,0 +1,126 @@
+//
+// System.Web.Services.Description.MimeTextMatch.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class MimeTextMatch {
+
+ #region Fields
+
+ int capture;
+ int group;
+ bool ignoreCase;
+ MimeTextMatchCollection matches;
+ string name;
+ string pattern;
+ int repeats;
+ string type;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MimeTextMatch ()
+ {
+ capture = 0;
+ group = 1;
+ ignoreCase = false;
+ matches = null;
+ name = String.Empty;
+ pattern = String.Empty;
+ repeats = 1;
+ type = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue (0)]
+ [XmlAttribute ("capture")]
+ public int Capture {
+ get { return capture; }
+ set {
+ if (value < 0)
+ throw new ArgumentException ();
+ capture = value;
+ }
+ }
+
+ [DefaultValue (1)]
+ [XmlAttribute ("group")]
+ public int Group {
+ get { return group; }
+ set {
+ if (value < 0)
+ throw new ArgumentException ();
+ group = value;
+ }
+ }
+
+ [XmlAttribute ("ignoreCase")]
+ public bool IgnoreCase {
+ get { return ignoreCase; }
+ set { ignoreCase = value; }
+ }
+
+ [XmlElement ("match")]
+ public MimeTextMatchCollection Matches {
+ get { return matches; }
+ }
+
+ [XmlAttribute ("name")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlAttribute ("pattern")]
+ public string Pattern {
+ get { return pattern; }
+ set { pattern = value; }
+ }
+
+ [XmlIgnore]
+ public int Repeats {
+ get { return repeats; }
+ set {
+ if (value < 0)
+ throw new ArgumentException ();
+ repeats = value;
+ }
+ }
+
+ [DefaultValue ("1")]
+ [XmlAttribute ("repeats")]
+ public string RepeatsString {
+ get { return Repeats.ToString (); }
+ set { Repeats = Int32.Parse (value); }
+ }
+
+ [XmlAttribute ("type")]
+ public string Type {
+ get { return type; }
+ set { type = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (MimeTextMatchCollection matches)
+ {
+ this.matches = matches;
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatchCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatchCollection.cs
new file mode 100644
index 00000000000..59dd634a017
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeTextMatchCollection.cs
@@ -0,0 +1,70 @@
+//
+// System.Web.Services.Description.MimeTextMatchCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Description {
+ public sealed class MimeTextMatchCollection : CollectionBase {
+
+ #region Properties
+
+ public MimeTextMatch this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (MimeTextMatch) List [index];
+ }
+ set { List[index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (MimeTextMatch match)
+ {
+ Insert (Count, match);
+ return (Count - 1);
+ }
+
+ public bool Contains (MimeTextMatch match)
+ {
+ return List.Contains (match);
+ }
+
+ public void CopyTo (MimeTextMatch[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (MimeTextMatch match)
+ {
+ return List.IndexOf (match);
+ }
+
+ public void Insert (int index, MimeTextMatch match)
+ {
+ SetParent (match, this);
+ List.Insert (index, match);
+ }
+
+ public void Remove (MimeTextMatch match)
+ {
+ List.Remove (match);
+ }
+
+ private void SetParent (object value, object parent)
+ {
+ ((MimeTextMatch) value).SetParent ((MimeTextMatchCollection) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/MimeXmlBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeXmlBinding.cs
new file mode 100644
index 00000000000..93859fdaa1f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/MimeXmlBinding.cs
@@ -0,0 +1,42 @@
+//
+// System.Web.Services.Description.MimeXmlBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("mimeXml", "http://schemas.xmlsoap.org/wsdl/mime/", typeof (MimePart), typeof (InputBinding), typeof (OutputBinding))]
+ public sealed class MimeXmlBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string part;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public MimeXmlBinding ()
+ {
+ part = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("part", DataType = "NMTOKEN")]
+ public string Part {
+ get { return part; }
+ set { part = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Operation.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Operation.cs
new file mode 100644
index 00000000000..2823503f126
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Operation.cs
@@ -0,0 +1,96 @@
+//
+// System.Web.Services.Description.Operation.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class Operation : DocumentableItem {
+
+ #region Fields
+
+ OperationFaultCollection faults;
+ OperationMessageCollection messages;
+ string name;
+ string[] parameterOrder;
+ PortType portType;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Operation ()
+ {
+ faults = new OperationFaultCollection (this);
+ messages = new OperationMessageCollection (this);
+ name = String.Empty;
+ parameterOrder = null;
+ portType = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlElement ("fault")]
+ public OperationFaultCollection Faults {
+ get { return faults; }
+ }
+
+ [XmlElement ("output", typeof (OperationOutput))]
+ [XmlElement ("input", typeof (OperationInput))]
+ public OperationMessageCollection Messages {
+ get { return messages; }
+ }
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlIgnore]
+ public string[] ParameterOrder {
+ get { return parameterOrder; }
+ set { parameterOrder = value; }
+ }
+
+ [DefaultValue ("")]
+ [XmlAttribute ("parameterOrder")]
+ public string ParameterOrderString {
+ get {
+ if (parameterOrder == null)
+ return String.Empty;
+ return String.Join (" ", parameterOrder);
+ }
+ set { ParameterOrder = value.Split (' '); }
+ }
+
+ public PortType PortType {
+ get { return portType; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public bool IsBoundBy (OperationBinding operationBinding)
+ {
+ return (operationBinding.Name == Name);
+ }
+
+ internal void SetParent (PortType portType)
+ {
+ this.portType = portType;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationBinding.cs
new file mode 100644
index 00000000000..0bdb5e9579a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationBinding.cs
@@ -0,0 +1,86 @@
+//
+// System.Web.Services.Description.OperationBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class OperationBinding : DocumentableItem {
+
+ #region Fields
+
+ Binding binding;
+ ServiceDescriptionFormatExtensionCollection extensions;
+ FaultBindingCollection faults;
+ InputBinding input;
+ string name;
+ OutputBinding output;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public OperationBinding ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ faults = new FaultBindingCollection (this);
+ input = null;
+ name = String.Empty;
+ output = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Binding Binding {
+ get { return binding; }
+ }
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ [XmlElement ("fault")]
+ public FaultBindingCollection Faults {
+ get { return faults; }
+ }
+
+ [XmlElement ("input")]
+ public InputBinding Input {
+ get { return input; }
+ set { input = value; }
+ }
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlElement ("output")]
+ public OutputBinding Output {
+ get { return output; }
+ set { output= value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (Binding binding)
+ {
+ this.binding = binding;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationBindingCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationBindingCollection.cs
new file mode 100644
index 00000000000..f81a409a6a9
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationBindingCollection.cs
@@ -0,0 +1,75 @@
+//
+// System.Web.Services.Description.OperationBindingCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class OperationBindingCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal OperationBindingCollection (Binding binding)
+ : base (binding)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public OperationBinding this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (OperationBinding) List[index];
+ }
+ set { List[index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (OperationBinding bindingOperation)
+ {
+ Insert (Count, bindingOperation);
+ return (Count - 1);
+ }
+
+ public bool Contains (OperationBinding bindingOperation)
+ {
+ return List.Contains (bindingOperation);
+ }
+
+ public void CopyTo (OperationBinding[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (OperationBinding bindingOperation)
+ {
+ return List.IndexOf (bindingOperation);
+ }
+
+ public void Insert (int index, OperationBinding bindingOperation)
+ {
+ List.Insert (index, bindingOperation);
+ }
+
+ public void Remove (OperationBinding bindingOperation)
+ {
+ List.Remove (bindingOperation);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((OperationBinding) value).SetParent ((Binding) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationCollection.cs
new file mode 100644
index 00000000000..a92cf343db5
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationCollection.cs
@@ -0,0 +1,75 @@
+//
+// System.Web.Services.Description.OperationCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class OperationCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal OperationCollection (PortType portType)
+ : base (portType)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Operation this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (Operation) List[index];
+ }
+ set { List[index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (Operation operation)
+ {
+ Insert (Count, operation);
+ return (Count - 1);
+ }
+
+ public bool Contains (Operation operation)
+ {
+ return List.Contains (operation);
+ }
+
+ public void CopyTo (Operation[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (Operation operation)
+ {
+ return List.IndexOf (operation);
+ }
+
+ public void Insert (int index, Operation operation)
+ {
+ List.Insert (index, operation);
+ }
+
+ public void Remove (Operation operation)
+ {
+ List.Remove (operation);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((Operation) value).SetParent ((PortType) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFault.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFault.cs
new file mode 100644
index 00000000000..f4055dbf5a4
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFault.cs
@@ -0,0 +1,15 @@
+//
+// System.Web.Services.Description.OperationFault.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Description {
+ public sealed class OperationFault : OperationMessage {
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFaultCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFaultCollection.cs
new file mode 100644
index 00000000000..492c1d1caf6
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFaultCollection.cs
@@ -0,0 +1,87 @@
+//
+// System.Web.Services.Description.OperationFaultCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class OperationFaultCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal OperationFaultCollection (Operation operation)
+ : base (operation)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public OperationFault this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ return (OperationFault) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public OperationFault this [string name] {
+ get { return this [IndexOf ((OperationFault) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (OperationFault operationFaultMessage)
+ {
+ Insert (Count, operationFaultMessage);
+ return (Count - 1);
+ }
+
+ public bool Contains (OperationFault operationFaultMessage)
+ {
+ return List.Contains (operationFaultMessage);
+ }
+
+ public void CopyTo (OperationFault[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is OperationFault))
+ throw new InvalidCastException ();
+
+ return ((OperationFault) value).Name;
+ }
+
+ public int IndexOf (OperationFault operationFaultMessage)
+ {
+ return List.IndexOf (operationFaultMessage);
+ }
+
+ public void Insert (int index, OperationFault operationFaultMessage)
+ {
+ List.Insert (index, operationFaultMessage);
+ }
+
+ public void Remove (OperationFault operationFaultMessage)
+ {
+ List.Remove (operationFaultMessage);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((OperationFault) value).SetParent ((Operation) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFlow.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFlow.cs
new file mode 100644
index 00000000000..a3c517aa24b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationFlow.cs
@@ -0,0 +1,19 @@
+//
+// System.Web.Services.Description.OperationFlow.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ [Serializable]
+ public enum OperationFlow {
+ None = 0x0,
+ Notification = 0x2,
+ OneWay = 0x1,
+ RequestResponse = 0x3,
+ SolicitResponse = 0x4
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationInput.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationInput.cs
new file mode 100644
index 00000000000..4df8f046678
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationInput.cs
@@ -0,0 +1,16 @@
+//
+// System.Web.Services.Description.OperationInput.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Xml;
+
+namespace System.Web.Services.Description {
+ public sealed class OperationInput : OperationMessage {
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessage.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessage.cs
new file mode 100644
index 00000000000..e24f045131a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessage.cs
@@ -0,0 +1,65 @@
+//
+// System.Web.Services.Description.OperationMessage.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public abstract class OperationMessage : DocumentableItem {
+
+ #region Fields
+
+ XmlQualifiedName message;
+ string name;
+ Operation operation;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected OperationMessage ()
+ {
+ message = null;
+ name = String.Empty;
+ operation = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("message")]
+ public XmlQualifiedName Message {
+ get { return message; }
+ set { message = value; }
+ }
+
+ [XmlAttribute ("name", DataType = "NMTOKEN")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public Operation Operation {
+ get { return operation; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (Operation operation)
+ {
+ this.operation = operation;
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessageCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessageCollection.cs
new file mode 100644
index 00000000000..86aefe85c2e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationMessageCollection.cs
@@ -0,0 +1,130 @@
+//
+// System.Web.Services.Description.OperationMessageCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Description {
+ public sealed class OperationMessageCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal OperationMessageCollection (Operation operation)
+ : base (operation)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public OperationFlow Flow {
+ get {
+ switch (Count) {
+ case 1:
+ if (this[0] is OperationInput)
+ return OperationFlow.OneWay;
+ else
+ return OperationFlow.Notification;
+ case 2:
+ if (this[0] is OperationInput)
+ return OperationFlow.RequestResponse;
+ else
+ return OperationFlow.SolicitResponse;
+ }
+ return OperationFlow.None;
+ }
+ }
+
+ public OperationInput Input {
+ get {
+ foreach (object message in List)
+ if (message is OperationInput)
+ return (OperationInput) message;
+ return null;
+ }
+ }
+
+ public OperationMessage this [int index] {
+ get { return (OperationMessage) List[index]; }
+ set { List[index] = value; }
+ }
+
+ public OperationOutput Output {
+ get {
+ foreach (object message in List)
+ if (message is OperationOutput)
+ return (OperationOutput) message;
+ return null;
+ }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (OperationMessage operationMessage)
+ {
+ Insert (Count, operationMessage);
+ return (Count - 1);
+ }
+
+ public bool Contains (OperationMessage operationMessage)
+ {
+ return List.Contains (operationMessage);
+ }
+
+ public void CopyTo (OperationMessage[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (OperationMessage operationMessage)
+ {
+ return List.IndexOf (operationMessage);
+ }
+
+ public void Insert (int index, OperationMessage operationMessage)
+ {
+ List.Insert (index, operationMessage);
+ }
+
+ protected override void OnInsert (int index, object value)
+ {
+ if (Count > 2 || value.GetType () == this [0].GetType ())
+ throw new InvalidOperationException ("The operation object can only contain one input and one output message.");
+ }
+
+ protected override void OnSet (int index, object oldValue, object newValue)
+ {
+ if (oldValue.GetType () != newValue.GetType ())
+ throw new InvalidOperationException ("The message types of the old and new value are not the same.");
+ base.OnSet (index, oldValue, newValue);
+ }
+
+ protected override void OnValidate (object value)
+ {
+ if (value == null)
+ throw new NullReferenceException ("The message object is a null reference.");
+ if (!(value is OperationInput || value is OperationOutput))
+ throw new ArgumentException ("The message object is not an input or an output message.");
+ }
+
+ public void Remove (OperationMessage operationMessage)
+ {
+ List.Remove (operationMessage);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((OperationMessage) value).SetParent ((Operation) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OperationOutput.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationOutput.cs
new file mode 100644
index 00000000000..7c7ac0f9acc
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OperationOutput.cs
@@ -0,0 +1,13 @@
+//
+// System.Web.Services.Description.OperationOutput.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class OperationOutput : OperationMessage {
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/OutputBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/OutputBinding.cs
new file mode 100644
index 00000000000..d1dacc2cbd2
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/OutputBinding.cs
@@ -0,0 +1,41 @@
+//
+// System.Web.Services.Description.OutputBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class OutputBinding : MessageBinding {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public OutputBinding ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public override ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Port.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Port.cs
new file mode 100644
index 00000000000..cdd86d9885e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Port.cs
@@ -0,0 +1,73 @@
+//
+// System.Web.Services.Description.Port.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class Port : DocumentableItem {
+
+ #region Fields
+
+ XmlQualifiedName binding;
+ ServiceDescriptionFormatExtensionCollection extensions;
+ string name;
+ Service service;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Port ()
+ {
+ binding = null;
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ name = String.Empty;
+ service = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("binding")]
+ public XmlQualifiedName Binding {
+ get { return binding; }
+ set { binding = value; }
+ }
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public Service Service {
+ get { return service; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (Service service)
+ {
+ this.service = service;
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/PortCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/PortCollection.cs
new file mode 100644
index 00000000000..b7061c8430b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/PortCollection.cs
@@ -0,0 +1,88 @@
+//
+// System.Web.Services.Description.PortCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class PortCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal PortCollection (Service service)
+ : base (service)
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public Port this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (Port) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public Port this [string name] {
+ get { return this [IndexOf ((Port) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (Port port)
+ {
+ Insert (Count, port);
+ return (Count - 1);
+ }
+
+ public bool Contains (Port port)
+ {
+ return List.Contains (port);
+ }
+
+ public void CopyTo (Port[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is Port))
+ throw new InvalidCastException ();
+
+ return ((Port) value).Name;
+ }
+
+ public int IndexOf (Port port)
+ {
+ return List.IndexOf (port);
+ }
+
+ public void Insert (int index, Port port)
+ {
+ List.Insert (index, port);
+ }
+
+ public void Remove (Port port)
+ {
+ List.Remove (port);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((Port) value).SetParent ((Service) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/PortType.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/PortType.cs
new file mode 100644
index 00000000000..c5f9205484c
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/PortType.cs
@@ -0,0 +1,62 @@
+//
+// System.Web.Services.Description.PortType.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class PortType : DocumentableItem {
+
+ #region Fields
+
+ string name;
+ OperationCollection operations;
+ ServiceDescription serviceDescription;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public PortType ()
+ {
+ name = String.Empty;
+ operations = new OperationCollection (this);
+ serviceDescription = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlElement ("operation")]
+ public OperationCollection Operations {
+ get { return operations; }
+ }
+
+ public ServiceDescription ServiceDescription {
+ get { return serviceDescription; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (ServiceDescription serviceDescription)
+ {
+ this.serviceDescription = serviceDescription;
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/PortTypeCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/PortTypeCollection.cs
new file mode 100644
index 00000000000..427a72e215d
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/PortTypeCollection.cs
@@ -0,0 +1,87 @@
+//
+// System.Web.Services.Description.PortTypeCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public sealed class PortTypeCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal PortTypeCollection (ServiceDescription serviceDescription)
+ : base (serviceDescription)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public PortType this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (PortType) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public PortType this [string name] {
+ get { return this [IndexOf ((PortType) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (PortType portType)
+ {
+ Insert (Count, portType);
+ return (Count - 1);
+ }
+
+ public bool Contains (PortType portType)
+ {
+ return List.Contains (portType);
+ }
+
+ public void CopyTo (PortType[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is PortType))
+ throw new InvalidCastException ();
+ return ((PortType) value).Name;
+ }
+
+ public int IndexOf (PortType portType)
+ {
+ return List.IndexOf (portType);
+ }
+
+ public void Insert (int index, PortType portType)
+ {
+ List.Insert (index, portType);
+ }
+
+ public void Remove (PortType portType)
+ {
+ List.Remove (portType);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((PortType) value).SetParent ((ServiceDescription) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs
new file mode 100644
index 00000000000..f37547f788b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolImporter.cs
@@ -0,0 +1,201 @@
+//
+// System.Web.Services.Description.ProtocolImporter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.CodeDom;
+using System.Web.Services;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public abstract class ProtocolImporter {
+
+ #region Fields
+
+ XmlSchemas abstractSchemas;
+ Binding binding;
+ string className;
+ CodeIdentifiers classNames;
+ CodeNamespace codeNamespace;
+ CodeTypeDeclaration codeTypeDeclaration;
+ XmlSchemas concreteSchemas;
+ Message inputMessage;
+ string methodName;
+ Operation operation;
+ OperationBinding operationBinding;
+ Message outputMessage;
+ Port port;
+ PortType portType;
+ string protocolName;
+ XmlSchemas schemas;
+ Service service;
+ ServiceDescriptionCollection serviceDescriptions;
+ ServiceDescriptionImportStyle style;
+ ServiceDescriptionImportWarnings warnings;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ protected ProtocolImporter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public XmlSchemas AbstractSchemas {
+ get { return abstractSchemas; }
+ }
+
+ public Binding Binding {
+ get { return binding; }
+ }
+
+ public string ClassName {
+ get { return className; }
+ }
+
+ public CodeIdentifiers ClassNames {
+ get { return classNames; }
+ }
+
+ public CodeNamespace CodeNamespace {
+ get { return codeNamespace; }
+ }
+
+ public CodeTypeDeclaration CodeTypeDeclaration {
+ get { return codeTypeDeclaration; }
+ }
+
+ public XmlSchemas ConcreteSchemas {
+ get { return concreteSchemas; }
+ }
+
+ public Message InputMessage {
+ get { return inputMessage; }
+ }
+
+ public string MethodName {
+ get { return methodName; }
+ }
+
+ public Operation Operation {
+ get { return operation; }
+ }
+
+ public OperationBinding OperationBinding {
+ get { return operationBinding; }
+ }
+
+ public Message OutputMessage {
+ get { return outputMessage; }
+ }
+
+ public Port Port {
+ get { return port; }
+ }
+
+ public PortType PortType {
+ get { return portType; }
+ }
+
+ public abstract string ProtocolName {
+ get;
+ }
+
+ public XmlSchemas Schemas {
+ get { return schemas; }
+ }
+
+ public Service Service {
+ get { return service; }
+ }
+
+ public ServiceDescriptionCollection ServiceDescriptions {
+ get { return serviceDescriptions; }
+ }
+
+ public ServiceDescriptionImportStyle Style {
+ get { return style; }
+ }
+
+ public ServiceDescriptionImportWarnings Warnings {
+ get { return warnings; }
+ set { warnings = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public void AddExtensionWarningComments (CodeCommentStatementCollection comments, ServiceDescriptionFormatExtensionCollection extensions)
+ {
+ throw new NotImplementedException ();
+ }
+
+ protected abstract CodeTypeDeclaration BeginClass ();
+
+ [MonoTODO]
+ protected virtual void BeginNamespace ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected virtual void EndClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected virtual void EndNamespace ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ protected abstract CodeMemberMethod GenerateMethod ();
+ protected abstract bool IsBindingSupported ();
+ protected abstract bool IsOperationFlowSupported (OperationFlow flow);
+
+ [MonoTODO]
+ public Exception OperationBindingSyntaxException (string text)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public Exception OperationSyntaxException (string text)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void UnsupportedBindingWarning (string text)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void UnsupportedOperationBindingWarning (string text)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void UnsupportedOperationWarning (string text)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs
new file mode 100644
index 00000000000..ad7b209387b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ProtocolReflector.cs
@@ -0,0 +1,170 @@
+//
+// System.Web.Services.Description.ProtocolReflector.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Web.Services.Protocols;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public abstract class ProtocolReflector {
+
+ #region Fields
+
+ Binding binding;
+ string defaultNamespace;
+ MessageCollection headerMessages;
+ Message inputMessage;
+ LogicalMethodInfo method;
+ WebMethodAttribute methodAttribute;
+ LogicalMethodInfo[] methods;
+ Operation operation;
+ OperationBinding operationBinding;
+ Message outputMessage;
+ Port port;
+ PortType portType;
+ string protocolName;
+ XmlReflectionImporter reflectionImporter;
+ XmlSchemaExporter schemaExporter;
+ XmlSchemas schemas;
+ Service service;
+ ServiceDescription serviceDescription;
+ ServiceDescriptionCollection serviceDescriptions;
+ Type serviceType;
+ string serviceUrl;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ protected ProtocolReflector ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Binding Binding {
+ get { return binding; }
+ }
+
+ public string DefaultNamespace {
+ get { return defaultNamespace; }
+ }
+
+ public MessageCollection HeaderMessages {
+ get { return headerMessages; }
+ }
+
+ public Message InputMessage {
+ get { return inputMessage; }
+ }
+
+ public LogicalMethodInfo Method {
+ get { return method; }
+ }
+
+ public WebMethodAttribute MethodAttribute {
+ get { return methodAttribute; }
+ }
+
+ public LogicalMethodInfo[] Methods {
+ get { return methods; }
+ }
+
+ public Operation Operation {
+ get { return operation; }
+ }
+
+ public OperationBinding OperationBinding {
+ get { return operationBinding; }
+ }
+
+ public Message OutputMessage {
+ get { return outputMessage; }
+ }
+
+ public Port Port {
+ get { return port; }
+ }
+
+ public PortType PortType {
+ get { return portType; }
+ }
+
+ public abstract string ProtocolName {
+ get;
+ }
+
+ public XmlReflectionImporter ReflectionImporter {
+ get { return reflectionImporter; }
+ }
+
+ public XmlSchemaExporter SchemaExporter {
+ get { return schemaExporter; }
+ }
+
+ public XmlSchemas Schemas {
+ get { return schemas; }
+ }
+
+ public Service Service {
+ get { return service; }
+ }
+
+ public ServiceDescription ServiceDescription {
+ get { return serviceDescription; }
+ }
+
+ public ServiceDescriptionCollection ServiceDescriptions {
+ get { return serviceDescriptions; }
+ }
+
+ public Type ServiceType {
+ get { return serviceType; }
+ }
+
+ public string ServiceUrl {
+ get { return serviceUrl; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected virtual void BeginClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected virtual void EndClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ public ServiceDescription GetServiceDescription (string ns)
+ {
+ return serviceDescriptions [ns];
+ }
+
+ protected abstract bool ReflectMethod ();
+
+ [MonoTODO]
+ protected virtual string ReflectMethodBinding ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Service.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Service.cs
new file mode 100644
index 00000000000..a214bd0531a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Service.cs
@@ -0,0 +1,69 @@
+//
+// System.Web.Services.Description.Service.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class Service : DocumentableItem {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+ string name;
+ PortCollection ports;
+ ServiceDescription serviceDescription;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Service ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ name = String.Empty;
+ ports = new PortCollection (this);
+ serviceDescription = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ [XmlAttribute ("name", DataType = "NCName")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlElement ("port")]
+ public PortCollection Ports {
+ get { return ports; }
+ }
+
+ public ServiceDescription ServiceDescription {
+ get { return serviceDescription; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (ServiceDescription serviceDescription)
+ {
+ this.serviceDescription = serviceDescription;
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceCollection.cs
new file mode 100644
index 00000000000..fa781e6ce8b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceCollection.cs
@@ -0,0 +1,90 @@
+//
+// System.Web.Services.Description.ServiceCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Description {
+ public sealed class ServiceCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ internal ServiceCollection (ServiceDescription serviceDescription)
+ : base (serviceDescription)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Service this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (Service) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public Service this [string name] {
+ get { return this [IndexOf ((Service) Table[name])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (Service service)
+ {
+ Insert (Count, service);
+ return (Count - 1);
+ }
+
+ public bool Contains (Service service)
+ {
+ return List.Contains (service);
+ }
+
+ public void CopyTo (Service[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is Service))
+ throw new InvalidCastException ();
+
+ return ((Service) value).Name;
+ }
+
+ public int IndexOf (Service service)
+ {
+ return List.IndexOf (service);
+ }
+
+ public void Insert (int index, Service service)
+ {
+ List.Insert (index, service);
+ }
+
+ public void Remove (Service service)
+ {
+ List.Remove (service);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((Service) value).SetParent ((ServiceDescription) parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescription.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescription.cs
new file mode 100644
index 00000000000..737324c5acd
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescription.cs
@@ -0,0 +1,260 @@
+//
+// System.Web.Services.Description.ServiceDescription.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web.Services;
+using System.Web.Services.Configuration;
+using System.Xml;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ [XmlRoot ("definitions", Namespace = "http://schemas.xmlsoap.org/wsdl/")]
+ public sealed class ServiceDescription : DocumentableItem {
+
+ #region Fields
+
+ public const string Namespace = "http://schemas.xmlsoap.org/wsdl/";
+
+ BindingCollection bindings;
+ ServiceDescriptionFormatExtensionCollection extensions;
+ ImportCollection imports;
+ MessageCollection messages;
+ string name;
+ PortTypeCollection portTypes;
+ string retrievalUrl;
+ ServiceDescriptionCollection serviceDescriptions;
+ ServiceCollection services;
+ string targetNamespace;
+ Types types;
+ static ServiceDescriptionSerializer serializer;
+ XmlSerializerNamespaces ns;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ static ServiceDescription ()
+ {
+ serializer = new ServiceDescriptionSerializer ();
+ }
+
+ [MonoTODO ("Move namespaces to subtype, use ServiceDescriptionSerializer")]
+ public ServiceDescription ()
+ {
+ bindings = new BindingCollection (this);
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ imports = new ImportCollection (this);
+ messages = new MessageCollection (this);
+ name = String.Empty;
+ portTypes = new PortTypeCollection (this);
+
+ serviceDescriptions = null;
+ services = new ServiceCollection (this);
+ targetNamespace = String.Empty;
+ types = null;
+
+ ns = new XmlSerializerNamespaces ();
+ ns.Add ("soap", SoapBinding.Namespace);
+ ns.Add ("s", XmlSchema.Namespace);
+ ns.Add ("http", HttpBinding.Namespace);
+ ns.Add ("mime", MimeContentBinding.Namespace);
+ ns.Add ("tm", MimeTextBinding.Namespace);
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlElement ("binding")]
+ public BindingCollection Bindings {
+ get { return bindings; }
+ }
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ [XmlElement ("import")]
+ public ImportCollection Imports {
+ get { return imports; }
+ }
+
+ [XmlElement ("message")]
+ public MessageCollection Messages {
+ get { return messages; }
+ }
+
+ [XmlAttribute ("name", DataType = "NMTOKEN")]
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ [XmlElement ("portType")]
+ public PortTypeCollection PortTypes {
+ get { return portTypes; }
+ }
+
+ [XmlIgnore]
+ public string RetrievalUrl {
+ get { return retrievalUrl; }
+ set { retrievalUrl = value; }
+ }
+
+ [XmlIgnore]
+ public static XmlSerializer Serializer {
+ get { return serializer; }
+ }
+
+ [XmlIgnore]
+ public ServiceDescriptionCollection ServiceDescriptions {
+ get {
+ if (serviceDescriptions == null)
+ throw new NullReferenceException ();
+ return serviceDescriptions;
+ }
+ }
+
+ [XmlElement ("service")]
+ public ServiceCollection Services {
+ get { return services; }
+ }
+
+ [XmlAttribute ("targetNamespace")]
+ public string TargetNamespace {
+ get { return targetNamespace; }
+ set { targetNamespace = value; }
+ }
+
+ [XmlElement ("types")]
+ public Types Types {
+ get { return types; }
+ set { types = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public static bool CanRead (XmlReader reader)
+ {
+ return serializer.CanDeserialize (reader);
+ }
+
+ public static ServiceDescription Read (Stream stream)
+ {
+ return (ServiceDescription) serializer.Deserialize (stream);
+ }
+
+ public static ServiceDescription Read (string fileName)
+ {
+ return Read (new FileStream (fileName, FileMode.Open));
+ }
+
+ public static ServiceDescription Read (TextReader textReader)
+ {
+ return (ServiceDescription) serializer.Deserialize (textReader);
+ }
+
+ public static ServiceDescription Read (XmlReader reader)
+ {
+ return (ServiceDescription) serializer.Deserialize (reader);
+ }
+
+ public void Write (Stream stream)
+ {
+
+ serializer.Serialize (stream, this, ns);
+ }
+
+ public void Write (string fileName)
+ {
+ Write (new FileStream (fileName, FileMode.Create));
+ }
+
+ public void Write (TextWriter writer)
+ {
+ serializer.Serialize (writer, this, ns);
+ }
+
+ public void Write (XmlWriter writer)
+ {
+ serializer.Serialize (writer, this, ns);
+ }
+
+ internal void SetParent (ServiceDescriptionCollection serviceDescriptions)
+ {
+ this.serviceDescriptions = serviceDescriptions;
+ }
+
+ #endregion
+
+ internal class ServiceDescriptionSerializer : XmlSerializer {
+
+ #region Fields
+
+ XmlSerializerNamespaces ns;
+
+ #endregion
+
+ #region Constructors
+
+ [MonoTODO]
+ public ServiceDescriptionSerializer ()
+ : base (typeof (ServiceDescription), ServiceDescription.Namespace)
+ {
+ ns = new XmlSerializerNamespaces ();
+ ns.Add ("soap", SoapBinding.Namespace);
+ ns.Add ("s", XmlSchema.Namespace);
+ ns.Add ("http", HttpBinding.Namespace);
+ ns.Add ("mime", MimeContentBinding.Namespace);
+ ns.Add ("tm", MimeTextBinding.Namespace);
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override bool CanDeserialize (XmlReader reader)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override XmlSerializationReader CreateReader ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override XmlSerializationWriter CreateWriter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override object Deserialize (XmlSerializationReader reader)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void Serialize (object serviceDescription, XmlSerializationWriter writer)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionBaseCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionBaseCollection.cs
new file mode 100644
index 00000000000..187bb762c5c
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionBaseCollection.cs
@@ -0,0 +1,80 @@
+//
+// System.Web.Services.Description.ServiceDescriptionBaseCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+using System.Web.Services;
+
+namespace System.Web.Services.Description {
+ public abstract class ServiceDescriptionBaseCollection : CollectionBase {
+
+ #region Fields
+
+ Hashtable table = new Hashtable ();
+ object parent;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ internal ServiceDescriptionBaseCollection (object parent)
+ {
+ this.parent = parent;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ protected virtual IDictionary Table {
+ get { return table; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ protected virtual string GetKey (object value)
+ {
+ return null;
+ }
+
+ protected override void OnClear ()
+ {
+ Table.Clear ();
+ }
+
+ protected override void OnInsertComplete (int index, object value)
+ {
+ if (GetKey (value) != null)
+ Table [GetKey (value)] = value;
+ SetParent (value, parent);
+ }
+
+ protected override void OnRemove (int index, object value)
+ {
+ if (GetKey (value) != null)
+ Table.Remove (GetKey (value));
+ }
+
+ protected override void OnSet (int index, object oldValue, object newValue)
+ {
+ if (GetKey (oldValue) != null)
+ Table.Remove (GetKey (oldValue));
+ if (GetKey (newValue) != null)
+ Table [GetKey (newValue)] = newValue;
+ SetParent (newValue, parent);
+ }
+
+ protected virtual void SetParent (object value, object parent)
+ {
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionCollection.cs
new file mode 100644
index 00000000000..d152d5f8167
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionCollection.cs
@@ -0,0 +1,121 @@
+//
+// System.Web.Services.Description.ServiceDescriptionCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Xml;
+
+namespace System.Web.Services.Description {
+ public sealed class ServiceDescriptionCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ public ServiceDescriptionCollection ()
+ : base (null)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public ServiceDescription this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return (ServiceDescription) List[index];
+ }
+ set { List [index] = value; }
+ }
+
+ public ServiceDescription this [string ns] {
+ get { return this[IndexOf ((ServiceDescription) Table[ns])]; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (ServiceDescription serviceDescription)
+ {
+ Insert (Count, serviceDescription);
+ return (Count - 1);
+ }
+
+ public bool Contains (ServiceDescription serviceDescription)
+ {
+ return List.Contains (serviceDescription);
+ }
+
+ public void CopyTo (ServiceDescription[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public Binding GetBinding (XmlQualifiedName name)
+ {
+ foreach (object value in List)
+ foreach (Binding binding in ((ServiceDescription) value).Bindings)
+ if (binding.Name == name.Name)
+ return binding;
+ throw new Exception ();
+ }
+
+ protected override string GetKey (object value)
+ {
+ if (!(value is ServiceDescription))
+ throw new InvalidCastException ();
+ return ((ServiceDescription) value).TargetNamespace;
+ }
+
+ public Message GetMessage (XmlQualifiedName name)
+ {
+ foreach (object value in List)
+ foreach (Message message in ((ServiceDescription) value).Messages)
+ if (message.Name == name.Name)
+ return message;
+ throw new Exception ();
+ }
+
+ public PortType GetPortType (XmlQualifiedName name)
+ {
+ foreach (object value in List)
+ foreach (PortType portType in ((ServiceDescription) value).PortTypes)
+ if (portType.Name == name.Name)
+ return portType;
+ throw new Exception ();
+ }
+
+ public Service GetService (XmlQualifiedName name)
+ {
+ foreach (object value in List)
+ foreach (Service service in ((ServiceDescription) value).Services)
+ if (service.Name == name.Name)
+ return service;
+ throw new Exception ();
+ }
+
+ public int IndexOf (ServiceDescription serviceDescription)
+ {
+ return List.IndexOf (serviceDescription);
+ }
+
+ public void Insert (int index, ServiceDescription serviceDescription)
+ {
+ List.Insert (index, serviceDescription);
+ }
+
+ public void Remove (ServiceDescription serviceDescription)
+ {
+ List.Remove (serviceDescription);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtension.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtension.cs
new file mode 100644
index 00000000000..e8d51b50b67
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtension.cs
@@ -0,0 +1,65 @@
+//
+// System.Web.Services.Description.ServiceDescriptionFormatExtension.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public abstract class ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ bool handled;
+ object parent;
+ bool required;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected ServiceDescriptionFormatExtension ()
+ {
+ handled = false;
+ parent = null;
+ required = false;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public bool Handled {
+ get { return handled; }
+ set { handled = value; }
+ }
+
+ public object Parent {
+ get { return parent; }
+ }
+
+ [DefaultValue (false)]
+ [XmlAttribute ("required", Namespace = "http://schemas.xmlsoap.org/wsdl/")]
+ public bool Required {
+ get { return required; }
+ set { required = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ internal void SetParent (object value)
+ {
+ parent = value;
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs
new file mode 100644
index 00000000000..6363c90891f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs
@@ -0,0 +1,154 @@
+//
+// System.Web.Services.Description.ServiceDescriptionFormatExtensionCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+using System.Web.Services;
+using System.Xml;
+
+namespace System.Web.Services.Description {
+ public sealed class ServiceDescriptionFormatExtensionCollection : ServiceDescriptionBaseCollection {
+
+ #region Constructors
+
+ public ServiceDescriptionFormatExtensionCollection (object parent)
+ : base (parent)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public object this [int index] {
+ get {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+
+ return List[index];
+ }
+ set { List[index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (object extension)
+ {
+ Insert (Count, extension);
+ return (Count - 1);
+ }
+
+ public bool Contains (object extension)
+ {
+ return List.Contains (extension);
+ }
+
+ public void CopyTo (object[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public object Find (Type type)
+ {
+ foreach (object value in List)
+ if (value.GetType () == type)
+ return value;
+ return null;
+ }
+
+ public XmlElement Find (string name, string ns)
+ {
+ XmlElement xmlElement;
+ foreach (object value in List)
+ if (value is XmlElement) {
+ xmlElement = (value as XmlElement);
+ if (xmlElement.Name == name && xmlElement.NamespaceURI == ns)
+ return xmlElement;
+ }
+ return null;
+ }
+
+ public object[] FindAll (Type type)
+ {
+ ArrayList searchResults = new ArrayList ();
+ foreach (object value in List)
+ if (value.GetType () == type)
+ searchResults.Add (value);
+ object[] returnValue = new object [searchResults.Count];
+
+ if (searchResults.Count > 0)
+ searchResults.CopyTo (returnValue);
+
+ return returnValue;
+ }
+
+ public XmlElement[] FindAll (string name, string ns)
+ {
+ ArrayList searchResults = new ArrayList ();
+ XmlElement xmlElement;
+
+ foreach (object value in List)
+ if (value is XmlElement) {
+ xmlElement = (value as XmlElement);
+ if (xmlElement.Name == name && xmlElement.NamespaceURI == ns)
+ searchResults.Add (xmlElement);
+ }
+
+ XmlElement[] returnValue = new XmlElement [searchResults.Count];
+
+ if (searchResults.Count > 0)
+ searchResults.CopyTo (returnValue);
+
+ return returnValue;
+ }
+
+ public int IndexOf (object extension)
+ {
+ return List.IndexOf (extension);
+ }
+
+ public void Insert (int index, object extension)
+ {
+ List.Insert (index, extension);
+ }
+
+ [MonoTODO]
+ public bool IsHandled (object item)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public bool IsRequired (object item)
+ {
+ throw new NotImplementedException ();
+ }
+
+ protected override void OnValidate (object value)
+ {
+ if (value == null)
+ throw new ArgumentNullException ();
+ if (!(value is XmlElement || value is ServiceDescriptionFormatExtension))
+ throw new ArgumentException ();
+ }
+
+ public void Remove (object extension)
+ {
+ List.Remove (extension);
+ }
+
+ protected override void SetParent (object value, object parent)
+ {
+ ((ServiceDescriptionFormatExtension) value).SetParent (parent);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportStyle.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportStyle.cs
new file mode 100644
index 00000000000..5bcb9026908
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportStyle.cs
@@ -0,0 +1,15 @@
+//
+// System.Web.Services.Description.ServiceDescriptionImportStyle.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public enum ServiceDescriptionImportStyle {
+ Client,
+ Server
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportWarnings.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportWarnings.cs
new file mode 100644
index 00000000000..5e4c329724a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImportWarnings.cs
@@ -0,0 +1,20 @@
+//
+// System.Web.Services.Description.ServiceDescriptionImportWarnings.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ [Serializable]
+ public enum ServiceDescriptionImportWarnings {
+ NoCodeGenerated = 0x1,
+ NoMethodsGenerated = 0x20,
+ OptionalExtensionsIgnored = 0x2,
+ RequiredExtensionsIgnored = 0x4,
+ UnsupportedBindingsIgnored = 0x10,
+ UnsupportedOperationsIgnored = 0x8
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImporter.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImporter.cs
new file mode 100644
index 00000000000..491fb3a85a8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionImporter.cs
@@ -0,0 +1,76 @@
+//
+// System.Web.Services.Description.ServiceDescriptionImporter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.CodeDom;
+using System.Web.Services;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public class ServiceDescriptionImporter {
+
+ #region Fields
+
+ string protocolName;
+ XmlSchemas schemas;
+ ServiceDescriptionCollection serviceDescriptions;
+ ServiceDescriptionImportStyle style;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public ServiceDescriptionImporter ()
+ {
+ protocolName = String.Empty;
+ schemas = new XmlSchemas ();
+ serviceDescriptions = new ServiceDescriptionCollection ();
+ style = ServiceDescriptionImportStyle.Client;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string ProtocolName {
+ get { return protocolName; }
+ set { protocolName = value; }
+ }
+
+ public XmlSchemas Schemas {
+ get { return schemas; }
+ }
+
+ public ServiceDescriptionCollection ServiceDescriptions {
+ get { return serviceDescriptions; }
+ }
+
+ public ServiceDescriptionImportStyle Style {
+ get { return style; }
+ set { style = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public void AddServiceDescription (ServiceDescription serviceDescription, string appSettingUrlKey, string appSettingBaseUrl)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public ServiceDescriptionImportWarnings Import (CodeNamespace codeNamespace, CodeCompileUnit codeCompileUnit)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionReflector.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionReflector.cs
new file mode 100644
index 00000000000..d270f209823
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/ServiceDescriptionReflector.cs
@@ -0,0 +1,56 @@
+//
+// System.Web.Services.Description.ServiceDescriptionReflector.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public class ServiceDescriptionReflector {
+
+ #region Fields
+
+ XmlSchemas schemas;
+ ServiceDescriptionCollection serviceDescriptions;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public ServiceDescriptionReflector ()
+ {
+ schemas = new XmlSchemas ();
+ serviceDescriptions = new ServiceDescriptionCollection ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public XmlSchemas Schemas {
+ get { return schemas; }
+ }
+
+ public ServiceDescriptionCollection ServiceDescriptions {
+ get { return serviceDescriptions; }
+ }
+
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public void Reflect (Type type, string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapAddressBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapAddressBinding.cs
new file mode 100644
index 00000000000..82a3a3dca0e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapAddressBinding.cs
@@ -0,0 +1,42 @@
+//
+// System.Web.Services.Description.SoapAddressBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("address", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (Port))]
+ public sealed class SoapAddressBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string location;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapAddressBinding ()
+ {
+ location = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("location")]
+ public string Location {
+ get { return location; }
+ set { location = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBinding.cs
new file mode 100644
index 00000000000..05f24f0c741
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBinding.cs
@@ -0,0 +1,61 @@
+//
+// System.Web.Services.Description.SoapBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPrefix ("soap", "http://schemas.xmlsoap.org/wsdl/soap/")]
+ [XmlFormatExtension ("binding", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (Binding))]
+ // FIXME: this won't compile!
+ // [XmlFormatExtensionPrefix ("soapenc", "http://schemas.xmlsoap.org/soap/encoding/")]
+ public sealed class SoapBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ public const string HttpTransport = "http://schemas.xmlsoap.org/soap/http/";
+ public const string Namespace = "http://schemas.xmlsoap.org/wsdl/soap/";
+
+ SoapBindingStyle style;
+ string transport;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapBinding ()
+ {
+ style = SoapBindingStyle.Document;
+ transport = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ // LAMESPEC: .NET says that the default value is SoapBindingStyle.Document but
+ // reflection shows this attribute is SoapBindingStyle.Default
+
+ [DefaultValue (SoapBindingStyle.Default)]
+ [XmlAttribute ("style")]
+ public SoapBindingStyle Style {
+ get { return style; }
+ set { style = value; }
+ }
+
+ [XmlAttribute ("transport")]
+ public string Transport {
+ get { return transport; }
+ set { transport = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingStyle.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingStyle.cs
new file mode 100644
index 00000000000..3812cd8622e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingStyle.cs
@@ -0,0 +1,21 @@
+//
+// System.Web.Services.Description.SoapBindingStyle.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public enum SoapBindingStyle {
+ [XmlIgnore]
+ Default,
+ [XmlEnum ("document")]
+ Document,
+ [XmlEnum ("rpc")]
+ Rpc
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingUse.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingUse.cs
new file mode 100644
index 00000000000..d04bd50414f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBindingUse.cs
@@ -0,0 +1,21 @@
+//
+// System.Web.Services.Description.SoapBindingUse.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public enum SoapBindingUse {
+ [XmlIgnore]
+ Default,
+ [XmlEnum ("encoded")]
+ Encoded,
+ [XmlEnum ("literal")]
+ Literal
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBodyBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBodyBinding.cs
new file mode 100644
index 00000000000..963f9d2e4de
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapBodyBinding.cs
@@ -0,0 +1,76 @@
+//
+// System.Web.Services.Description.SoapBodyBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("body", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (InputBinding), typeof (OutputBinding), typeof (MimePart))]
+ public sealed class SoapBodyBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string encoding;
+ string ns;
+ string[] parts;
+ SoapBindingUse use;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapBodyBinding ()
+ {
+ encoding = String.Empty;
+ ns = String.Empty;
+ parts = null;
+ use = SoapBindingUse.Default;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue ("")]
+ [XmlAttribute ("encodingStyle")]
+ public string Encoding {
+ get { return encoding; }
+ set { encoding = value; }
+ }
+
+ [DefaultValue ("")]
+ [XmlAttribute ("namespace")]
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ [XmlIgnore]
+ public string[] Parts {
+ get { return parts; }
+ set { parts = value; }
+ }
+
+ [XmlAttribute ("parts", DataType = "NMTOKENS")]
+ public string PartsString {
+ get { return String.Join (" ", Parts); }
+ set { Parts = value.Split (' '); }
+ }
+
+ [DefaultValue (SoapBindingUse.Default)]
+ [XmlAttribute ("use")]
+ public SoapBindingUse Use {
+ get { return use; }
+ set { use = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionImporter.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionImporter.cs
new file mode 100644
index 00000000000..ce33bc68906
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionImporter.cs
@@ -0,0 +1,44 @@
+//
+// System.Web.Services.Description.SoapExtensionImporter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.CodeDom;
+
+namespace System.Web.Services.Description {
+ public abstract class SoapExtensionImporter {
+
+ #region Fields
+
+ SoapProtocolImporter importContext;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected SoapExtensionImporter ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public SoapProtocolImporter ImportContext {
+ get { return importContext; }
+ set { importContext = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public abstract void ImportMethod (CodeAttributeDeclarationCollection metadata);
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionReflector.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionReflector.cs
new file mode 100644
index 00000000000..9eb0e34af41
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapExtensionReflector.cs
@@ -0,0 +1,42 @@
+//
+// System.Web.Services.Description.SoapExtensionReflector.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public abstract class SoapExtensionReflector {
+
+ #region Fields
+
+ ProtocolReflector reflectionContext;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected SoapExtensionReflector ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public ProtocolReflector ReflectionContext {
+ get { return reflectionContext; }
+ set { reflectionContext = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public abstract void ReflectMethod ();
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapFaultBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapFaultBinding.cs
new file mode 100644
index 00000000000..a67e4219de8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapFaultBinding.cs
@@ -0,0 +1,60 @@
+//
+// System.Web.Services.Description.SoapFaultBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("fault", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (FaultBinding))]
+ public sealed class SoapFaultBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string encoding;
+ string ns;
+ SoapBindingUse use;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapFaultBinding ()
+ {
+ encoding = String.Empty;
+ ns = String.Empty;
+ use = SoapBindingUse.Default;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("encodingStyle")]
+ public string Encoding {
+ get { return encoding; }
+ set { encoding = value; }
+ }
+
+ [XmlAttribute ("namespace")]
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ [DefaultValue (SoapBindingUse.Default)]
+ [XmlAttribute ("use")]
+ public SoapBindingUse Use {
+ get { return use; }
+ set { use = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderBinding.cs
new file mode 100644
index 00000000000..74bfd6c90eb
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderBinding.cs
@@ -0,0 +1,89 @@
+//
+// System.Web.Services.Description.SoapHeaderBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Web.Services;
+using System.Web.Services.Configuration;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("header", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (InputBinding), typeof (OutputBinding))]
+ public sealed class SoapHeaderBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string encoding;
+ bool mapToProperty;
+ XmlQualifiedName message;
+ string ns;
+ string part;
+ SoapBindingUse use;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public SoapHeaderBinding ()
+ {
+ encoding = String.Empty;
+ mapToProperty = false; // FIXME: is this right?
+ message = XmlQualifiedName.Empty;
+ ns = String.Empty;
+ part = String.Empty;
+ use = SoapBindingUse.Default;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue ("")]
+ [XmlAttribute ("encodingStyle")]
+ public string Encoding {
+ get { return encoding; }
+ set { encoding = value; }
+ }
+
+ [XmlIgnore]
+ public bool MapToProperty {
+ get { return mapToProperty; }
+ set { mapToProperty = value; }
+ }
+
+ [XmlAttribute ("message")]
+ public XmlQualifiedName Message {
+ get { return message; }
+ set { message = value; }
+ }
+
+ [DefaultValue ("")]
+ [XmlAttribute ("namespace")]
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ [XmlAttribute ("part", DataType = "NMTOKEN")]
+ public string Part {
+ get { return part; }
+ set { part = value; }
+ }
+
+ [DefaultValue (SoapBindingUse.Default)]
+ [XmlAttribute ("use")]
+ public SoapBindingUse Use {
+ get { return use; }
+ set { use = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderFaultBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderFaultBinding.cs
new file mode 100644
index 00000000000..e33bcc685c0
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapHeaderFaultBinding.cs
@@ -0,0 +1,82 @@
+//
+// System.Web.Services.Description.SoapHeaderFaultBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("headerfault", "http://schemas.xmlsoap.org/wsdl/soap/", typeof (InputBinding), typeof (OutputBinding))]
+ public sealed class SoapHeaderFaultBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string encoding;
+ bool mapToProperty;
+ XmlQualifiedName message;
+ string ns;
+ string part;
+ SoapBindingUse use;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public SoapHeaderFaultBinding ()
+ {
+ encoding = String.Empty;
+ mapToProperty = false; // FIXME: is this right?
+ message = XmlQualifiedName.Empty;
+ ns = String.Empty;
+ part = String.Empty;
+ use = SoapBindingUse.Default;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue ("")]
+ [XmlAttribute ("encodingStyle")]
+ public string Encoding {
+ get { return encoding; }
+ set { encoding = value; }
+ }
+
+ [XmlAttribute ("message")]
+ public XmlQualifiedName Message {
+ get { return message; }
+ set { message = value; }
+ }
+
+ [DefaultValue ("")]
+ [XmlAttribute ("namespace")]
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ [XmlAttribute ("part", DataType = "NMTOKEN")]
+ public string Part {
+ get { return part; }
+ set { part = value; }
+ }
+
+ [DefaultValue (SoapBindingUse.Default)]
+ [XmlAttribute ("use")]
+ public SoapBindingUse Use {
+ get { return use; }
+ set { use = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapOperationBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapOperationBinding.cs
new file mode 100644
index 00000000000..81492c78049
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapOperationBinding.cs
@@ -0,0 +1,56 @@
+//
+// System.Web.Services.Description.SoapOperationBinding.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Web.Services.Configuration;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtension ("operation", "http://schema.xmlsoap.org/wsdl/soap/", typeof (OperationBinding))]
+ public sealed class SoapOperationBinding : ServiceDescriptionFormatExtension {
+
+ #region Fields
+
+ string soapAction;
+ SoapBindingStyle style;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapOperationBinding ()
+ {
+ soapAction = String.Empty;
+ style = SoapBindingStyle.Document;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute ("soapAction")]
+ public string SoapAction {
+ get { return soapAction; }
+ set { soapAction = value; }
+ }
+
+ // LAMESPEC: .NET Documentation says that the default value for this property is
+ // SoapBindingStyle.Document (see constructor), but reflection shows that this
+ // attribute value is SoapBindingStyle.Default
+
+ [DefaultValue (SoapBindingStyle.Default)]
+ [XmlAttribute ("style")]
+ public SoapBindingStyle Style {
+ get { return style; }
+ set { style = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolImporter.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolImporter.cs
new file mode 100644
index 00000000000..f9982eeed20
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolImporter.cs
@@ -0,0 +1,111 @@
+//
+// System.Web.Services.Description.SoapProtocolImporter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.CodeDom;
+using System.Web.Services;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ public sealed class SoapProtocolImporter : ProtocolImporter {
+
+ #region Fields
+
+ SoapBinding soapBinding;
+ SoapCodeExporter soapExporter;
+ SoapSchemaImporter soapImporter;
+ XmlCodeExporter xmlExporter;
+ XmlSchemaImporter xmlImporter;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public SoapProtocolImporter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string ProtocolName {
+ get { return "Soap"; }
+ }
+
+ public SoapBinding SoapBinding {
+ get { return soapBinding; }
+ }
+
+ public SoapCodeExporter SoapExporter {
+ get { return soapExporter; }
+ }
+
+ public SoapSchemaImporter SoapImporter {
+ get { return soapImporter; }
+ }
+
+ public XmlCodeExporter XmlExporter {
+ get { return xmlExporter; }
+ }
+
+ public XmlSchemaImporter XmlImporter {
+ get { return xmlImporter; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected override CodeTypeDeclaration BeginClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void BeginNamespace ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void EndClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void EndNamespace ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override CodeMemberMethod GenerateMethod ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override bool IsBindingSupported ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override bool IsOperationFlowSupported (OperationFlow flow)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs
new file mode 100644
index 00000000000..cc7fbe03af7
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapProtocolReflector.cs
@@ -0,0 +1,70 @@
+//
+// System.Web.Services.Description.SoapProtocolReflector.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Web.Services.Protocols;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [MonoTODO ("This class is based on conjecture and guesswork.")]
+ internal class SoapProtocolReflector : ProtocolReflector {
+
+ #region Fields
+
+ SoapBinding soapBinding;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public SoapProtocolReflector ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string ProtocolName {
+ get { return "Soap"; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected override void BeginClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void EndClass ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override bool ReflectMethod ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override string ReflectMethodBinding ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/SoapTransportImporter.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapTransportImporter.cs
new file mode 100644
index 00000000000..22d76ed9978
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/SoapTransportImporter.cs
@@ -0,0 +1,44 @@
+//
+// System.Web.Services.Description.SoapTransportImporter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Description {
+ public abstract class SoapTransportImporter {
+
+ #region Fields
+
+ SoapProtocolImporter importContext;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected SoapTransportImporter ()
+ {
+ importContext = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public SoapProtocolImporter ImportContext {
+ get { return importContext; }
+ set { importContext = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public abstract void ImportClass ();
+ public abstract bool IsSupportedTransport (string transport);
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Description/Types.cs b/mcs/class/System.Web.Services/System.Web.Services.Description/Types.cs
new file mode 100644
index 00000000000..6f19742f9f6
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Description/Types.cs
@@ -0,0 +1,49 @@
+//
+// System.Web.Services.Description.Types.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Configuration;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Description {
+ [XmlFormatExtensionPoint ("Extensions")]
+ public sealed class Types : DocumentableItem {
+
+ #region Fields
+
+ ServiceDescriptionFormatExtensionCollection extensions;
+ XmlSchemas schemas;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public Types ()
+ {
+ extensions = new ServiceDescriptionFormatExtensionCollection (this);
+ schemas = new XmlSchemas ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public ServiceDescriptionFormatExtensionCollection Extensions {
+ get { return extensions; }
+ }
+
+ [XmlElement ("schema", typeof (XmlSchema), Namespace = "http://www.w3.org/2001/XMLSchema")]
+ public XmlSchemas Schemas {
+ get { return schemas; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog
new file mode 100755
index 00000000000..5f4f2cbda07
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ChangeLog
@@ -0,0 +1,61 @@
+2002-08-19 Tim Coleman <tim@timcoleman.com>
+ * DiscoveryClientProtocol.cs:
+ Added ResolveAll () stub.
+ * DiscoveryDocument.cs:
+ Added XmlRoot attribute to class.
+ * DiscoveryClientDocumentCollection.cs:
+ * DiscoveryClientReferenceCollection.cs:
+ * DiscoveryClientResultCollection.cs:
+ * DiscoveryReferenceCollection.cs:
+ Implementation of these classes.
+
+2002-08-04 Dave Bettin <javabettin@yahoo.com>
+ * ContractSearchPattern.cs
+ * DiscoveryClientDocumentCollection.cs
+ * DiscoveryClientProtocol.cs
+ * DiscoveryClientResult.cs
+ * DiscoveryDocument.cs
+ * DiscoveryDocumentLinksPattern.cs
+ * DiscoveryDocumentReference.cs
+ * DiscoveryDocumentSearchPattern.cs
+ * DiscoveryReference.cs
+ * DiscoveryRequestHandler.cs
+ * DiscoverySearchPattern.cs
+ * DynamicDiscoveryDocument.cs
+ * SchemaReference.cs
+ * SoapBinding.cs
+ * XmlSchemaSearchPattern.cs
+ [ Added attributes and some basic implementation]
+
+2002-08-03 Tim Coleman <tim@timcoleman.com>
+ * DiscoveryDocument.cs:
+ Added XmlIgnore attribute to References property
+ * DiscoveryDocumentReference.cs:
+ Implemented Ref/Url properties and added XmlIgnore
+ attributes.
+
+2002-07-28 Dave Bettin <javabettin@yahoo.com>
+ * ContractReference.cs
+ * ContractSearchPattern.cs
+ * DiscoveryClientDocumentCollection.cs
+ * DiscoveryClientProtocol.cs
+ * DiscoveryClientReferenceCollection.cs
+ * DiscoveryClientResultCollection.cs
+ * DiscoveryClientResult.cs
+ * DiscoveryDocument.cs
+ * DiscoveryDocumentLinksPattern.cs
+ * DiscoveryDocumentReference.cs
+ * DiscoveryDocumentSearchPattern.cs
+ * DiscoveryExceptionDictionary.cs
+ * DiscoveryReferenceCollection.cs
+ * DiscoveryReference.cs
+ * DiscoveryRequestHandler.cs
+ * DiscoverySearchPattern.cs
+ * DynamicDiscoveryDocument.cs
+ * ExcludePathInfo.cs
+ * SchemaReference.cs
+ * SoapBinding.cs
+ * XmlSchemaSearchPattern.cs
+ [ Added stubs]
+
+
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs
new file mode 100755
index 00000000000..39cfbc54397
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractReference.cs
@@ -0,0 +1,107 @@
+//
+// System.Web.Services.Discovery.ContractReference.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.IO;
+using System.Web.Services.Description;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+
+ [XmlRootAttribute("contractRef", Namespace="https://schemas.xmlsoap.org/disco/scl/", IsNullable=true)]
+ public class ContractReference : DiscoveryReference {
+
+ #region Fields
+
+ public const string Namespace = "http://schemas.xmlsoap.org/disco/scl/";
+
+ private ServiceDescription contract;
+ private string defaultFilename;
+ private string docRef;
+ private string href;
+ private string url;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public ContractReference ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public ContractReference (string href) : this()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public ContractReference (string href, string docRef) : this(href)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public ServiceDescription Contract {
+ get { return contract; }
+ }
+
+ [XmlIgnore]
+ public override string DefaultFilename {
+ get { return defaultFilename; }
+ }
+
+ [XmlAttribute("docRef")]
+ public string DocRef {
+ get { return docRef; }
+ set { docRef = value; }
+ }
+
+ [XmlAttribute("ref")]
+ public string Ref {
+ get { return href; }
+ set { href = value; }
+ }
+
+ [XmlIgnore]
+ public override string Url {
+ get { return url;}
+ set { url = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override object ReadDocument (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected internal override void Resolve (string contentType, Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void WriteDocument (object document, Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractSearchPattern.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractSearchPattern.cs
new file mode 100755
index 00000000000..87a5d25a927
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ContractSearchPattern.cs
@@ -0,0 +1,47 @@
+//
+// System.Web.Services.Protocols.ContractSearchPattern.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+namespace System.Web.Services.Discovery {
+ public sealed class ContractSearchPattern : DiscoverySearchPattern {
+
+ #region Fields
+
+ private string pattern = "*.asmx";
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public ContractSearchPattern ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string Pattern {
+ get { return pattern; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override DiscoveryReference GetDiscoveryReference (string filename)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientDocumentCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientDocumentCollection.cs
new file mode 100755
index 00000000000..3d4e77ee2c4
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientDocumentCollection.cs
@@ -0,0 +1,66 @@
+//
+// System.Web.Services.Discovery.DiscoveryClientDocumentCollection.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Dave Bettin, 2002
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryClientDocumentCollection : DictionaryBase {
+
+ #region Constructors
+
+ public DiscoveryClientDocumentCollection ()
+ : base ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public object this [string url] {
+ get { return InnerHashtable [url]; }
+ set {
+ if (url == null)
+ throw new ArgumentNullException ();
+ InnerHashtable [url] = value;
+ }
+ }
+
+ public ICollection Keys {
+ get { return InnerHashtable.Keys; }
+ }
+
+ public ICollection Values {
+ get { return InnerHashtable.Values; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public void Add (string url, object value)
+ {
+ InnerHashtable [url] = value;
+ }
+
+ public bool Contains (string url)
+ {
+ return InnerHashtable.Contains (url);
+ }
+
+ public void Remove (string url)
+ {
+ InnerHashtable.Remove (url);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs
new file mode 100755
index 00000000000..622222c19d8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientProtocol.cs
@@ -0,0 +1,138 @@
+//
+// System.Web.Services.Protocols.DiscoveryClientProtocol.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.Collections;
+using System.IO;
+using System.Web.Services.Protocols;
+
+namespace System.Web.Services.Discovery {
+ public class DiscoveryClientProtocol : HttpWebClientProtocol {
+
+ #region Fields
+
+ private IList additionalInformation;
+ private DiscoveryClientDocumentCollection documents;
+ private DiscoveryExceptionDictionary errors;
+ private DiscoveryClientReferenceCollection references;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryClientProtocol ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public IList AdditionalInformation {
+ get { return additionalInformation; }
+ }
+
+ public DiscoveryClientDocumentCollection Documents {
+ get { return documents; }
+ }
+
+ public DiscoveryExceptionDictionary Errors {
+ get { return errors; }
+ }
+
+ public DiscoveryClientReferenceCollection References {
+ get { return references; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public DiscoveryDocument Discover (string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public DiscoveryDocument DiscoverAny (string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public Stream Download (ref string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public Stream Download (ref string url, ref string contentType)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public DiscoveryClientResultCollection ReadAll (string topLevelFilename)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void ResolveAll ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void ResolveOneLevel ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public DiscoveryClientResultCollection WriteAll (string directory, string topLevelFilename)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+
+ #region Classes
+
+ public sealed class DiscoveryClientResultsFile {
+
+ #region Fields
+
+ private DiscoveryClientResultCollection results;
+
+ #endregion // Fields
+
+ #region Contructors
+
+ [MonoTODO]
+ public DiscoveryClientResultsFile ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public DiscoveryClientResultCollection Results {
+ get { return results; }
+ }
+
+ #endregion // Properties
+ }
+ #endregion // Classes
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientReferenceCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientReferenceCollection.cs
new file mode 100755
index 00000000000..a98ec112022
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientReferenceCollection.cs
@@ -0,0 +1,67 @@
+//
+// System.Web.Services.Protocols.DiscoveryClientReferenceCollection.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Dave Bettin, 2002
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryClientReferenceCollection : DictionaryBase {
+
+ #region Constructors
+
+ public DiscoveryClientReferenceCollection ()
+ : base ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public DiscoveryReference this [string url] {
+ get { return (DiscoveryReference) InnerHashtable [url]; }
+ set { InnerHashtable [url] = value; }
+ }
+
+ public ICollection Keys {
+ get { return InnerHashtable.Keys; }
+ }
+
+ public ICollection Values {
+ get { return InnerHashtable.Values; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public void Add (DiscoveryReference value)
+ {
+ Add (value.Url, value);
+ }
+
+ public void Add (string url, DiscoveryReference value)
+ {
+ InnerHashtable [url] = value;
+ }
+
+ public bool Contains (string url)
+ {
+ return InnerHashtable.Contains (url);
+ }
+
+ public void Remove (string url)
+ {
+ InnerHashtable.Remove (url);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResult.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResult.cs
new file mode 100755
index 00000000000..77aa4b0cd3a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResult.cs
@@ -0,0 +1,62 @@
+//
+// System.Web.Services.Disocvery.DiscoveryClientResult.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryClientResult {
+
+ #region Fields
+
+ private string filename;
+ private string referenceTypeName;
+ private string url;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryClientResult ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public DiscoveryClientResult (Type referenceType, string url, string filename) : this()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute("filename")]
+ public string Filename {
+ get { return filename; }
+ set { filename = value; }
+ }
+
+ [XmlAttribute("referenceType")]
+ public string ReferenceTypeName {
+ get { return referenceTypeName; }
+ set { referenceTypeName = value; }
+ }
+
+ [XmlAttribute("url")]
+ public string Url {
+ get { return url; }
+ set { url = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResultCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResultCollection.cs
new file mode 100755
index 00000000000..8f93bb0d24b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryClientResultCollection.cs
@@ -0,0 +1,62 @@
+//
+// System.Web.Services.Protocols.DiscoveryClientResultCollection.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Dave Bettin, 2002
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryClientResultCollection : CollectionBase {
+
+ #region Constructors
+
+ public DiscoveryClientResultCollection ()
+ : base ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public DiscoveryClientResult this [int i] {
+ get {
+ if (i < 0 || i >= Count)
+ throw new ArgumentOutOfRangeException ();
+ return (DiscoveryClientResult) InnerList [i];
+ }
+ set {
+ if (i < 0 || i >= Count)
+ throw new ArgumentOutOfRangeException ();
+ InnerList [i] = value;
+ }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (DiscoveryClientResult value)
+ {
+ return InnerList.Add (value);
+ }
+
+ public bool Contains (DiscoveryClientResult value)
+ {
+ return InnerList.Contains (value);
+ }
+
+ public void Remove (DiscoveryClientResult value)
+ {
+ InnerList.Remove (value);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocument.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocument.cs
new file mode 100755
index 00000000000..35a7010b08f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocument.cs
@@ -0,0 +1,93 @@
+//
+// System.Web.Services.Protocols.DiscoveryDocument.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Dave Bettin, 2002
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+using System.IO;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+ [XmlRoot ("discovery", Namespace = "http://schemas.xmlsoap.org/disco/")]
+ public sealed class DiscoveryDocument {
+
+ #region Fields
+
+ public const string Namespace = "http://schema.xmlsoap.org/disco/";
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryDocument ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public IList References {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public static bool CanRead (XmlReader xmlReader)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static DiscoveryDocument Read (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static DiscoveryDocument Read (TextReader textReader)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static DiscoveryDocument Read (XmlReader xmlReader)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void Write (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void Write (TextWriter textWriter)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void Write (XmlWriter xmlWriter)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentLinksPattern.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentLinksPattern.cs
new file mode 100755
index 00000000000..19621b26d4b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentLinksPattern.cs
@@ -0,0 +1,47 @@
+//
+// System.Web.Services.Protocols.DiscoveryDocumentLinksPattern.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+namespace System.Web.Services.Discovery {
+ public class DiscoveryDocumentLinksPattern : DiscoverySearchPattern {
+
+ #region Fields
+
+ private string pattern = "*.disco";
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryDocumentLinksPattern ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string Pattern {
+ get { return pattern; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override DiscoveryReference GetDiscoveryReference (string filename)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentReference.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentReference.cs
new file mode 100755
index 00000000000..9d18e39118d
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentReference.cs
@@ -0,0 +1,99 @@
+//
+// System.Web.Services.Discovery.DiscoveryDocumentReference.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Dave Bettin, 2002
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web.Services.Description;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+
+ [XmlRootAttribute("discoveryRef", Namespace="http://schemas.xmlsoap.org/disco/", IsNullable=true)]
+ public sealed class DiscoveryDocumentReference : DiscoveryReference {
+
+ #region Fields
+
+ private DiscoveryDocument document;
+ private string defaultFilename;
+ private string href;
+ private string url;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryDocumentReference ()
+ {
+ href = String.Empty;
+ }
+
+ public DiscoveryDocumentReference (string href) : this ()
+ {
+ this.href = href;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public DiscoveryDocument Document {
+ get { return Document; }
+ }
+
+ [XmlIgnore]
+ public override string DefaultFilename {
+ get { return defaultFilename; }
+ }
+
+ [XmlAttribute("ref")]
+ public string Ref {
+ get { return href; }
+ set { href = value; }
+ }
+
+ [XmlIgnore]
+ public override string Url {
+ get { return url; }
+ set { url = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override object ReadDocument (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected internal override void Resolve (string contentType, Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void ResolveAll ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void WriteDocument (object document, Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentSearchPattern.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentSearchPattern.cs
new file mode 100755
index 00000000000..97024add9d2
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryDocumentSearchPattern.cs
@@ -0,0 +1,47 @@
+//
+// System.Web.Services.Discovery.DiscoveryDocumentSearchPattern.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryDocumentSearchPattern : DiscoverySearchPattern {
+
+ #region Fields
+
+ private string pattern = "*.vsdisco";
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryDocumentSearchPattern ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string Pattern {
+ get { return pattern; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override DiscoveryReference GetDiscoveryReference (string filename)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryExceptionDictionary.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryExceptionDictionary.cs
new file mode 100755
index 00000000000..5e2cc93237a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryExceptionDictionary.cs
@@ -0,0 +1,69 @@
+//
+// System.Web.Services.Protocols.DiscoveryExceptionDictionary.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryExceptionDictionary : DictionaryBase {
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryExceptionDictionary ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Exception this[string url] {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+
+ [MonoTODO]
+ set { throw new NotImplementedException (); }
+ }
+
+ public ICollection Keys {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ICollection Values {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public void Add (string url, Exception value)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public bool Contains (string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void Remove (string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReference.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReference.cs
new file mode 100755
index 00000000000..e68d9fa6cf8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReference.cs
@@ -0,0 +1,77 @@
+//
+// System.Web.Services.Discovery.DiscoveryReference.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.IO;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+ public abstract class DiscoveryReference {
+
+ #region Fields
+
+ private string defaultFilename;
+ private DiscoveryClientProtocol clientProtocol;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ protected DiscoveryReference ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public DiscoveryClientProtocol ClientProtocol {
+ get { return clientProtocol; }
+ set { clientProtocol = value; }
+
+ }
+
+ [XmlIgnore]
+ public virtual string DefaultFilename {
+ get { return defaultFilename; }
+ }
+
+ [XmlIgnore]
+ public abstract string Url {
+ get;
+ set;
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected static string FilenameFromUrl (string url)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public abstract object ReadDocument (Stream stream);
+
+ [MonoTODO]
+ public void Resolve ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ protected internal abstract void Resolve (string contentType, Stream stream);
+
+ public abstract void WriteDocument (object document, Stream stream);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReferenceCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReferenceCollection.cs
new file mode 100755
index 00000000000..ec81f3dadfc
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryReferenceCollection.cs
@@ -0,0 +1,62 @@
+//
+// System.Web.Services.Protocols.DiscoveryReferenceCollection.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Dave Bettin, 2002
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryReferenceCollection : CollectionBase {
+
+ #region Constructors
+
+ public DiscoveryReferenceCollection ()
+ : base ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public DiscoveryReference this [int i] {
+ get {
+ if (i < 0 || i >= Count)
+ throw new ArgumentOutOfRangeException ();
+ return (DiscoveryReference) InnerList [i];
+ }
+ set {
+ if (i < 0 || i >= Count)
+ throw new ArgumentOutOfRangeException ();
+ InnerList [i] = value;
+ }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (DiscoveryReference value)
+ {
+ return InnerList.Add (value);
+ }
+
+ public bool Contains (DiscoveryReference value)
+ {
+ return InnerList.Contains (value);
+ }
+
+ public void Remove (DiscoveryReference value)
+ {
+ InnerList.Remove (value);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryRequestHandler.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryRequestHandler.cs
new file mode 100755
index 00000000000..564a3b3ae8c
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoveryRequestHandler.cs
@@ -0,0 +1,49 @@
+//
+// System.Web.Services.Discovery.DiscoveryRequestHandler.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.Web;
+
+namespace System.Web.Services.Discovery {
+ public sealed class DiscoveryRequestHandler : IHttpHandler {
+
+ #region Fields
+
+ private bool isReusable = true;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DiscoveryRequestHandler ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public bool IsReusable {
+ get { return isReusable; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public void ProcessRequest (HttpContext context)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoverySearchPattern.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoverySearchPattern.cs
new file mode 100755
index 00000000000..d2ae0944ea6
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DiscoverySearchPattern.cs
@@ -0,0 +1,33 @@
+//
+// System.Web.Services.Discovery.DiscoverySearchPattern.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+namespace System.Web.Services.Discovery {
+ public abstract class DiscoverySearchPattern {
+
+ #region Constructors
+
+ protected DiscoverySearchPattern () {}
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public abstract string Pattern {
+ get;
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public abstract DiscoveryReference GetDiscoveryReference (string filename);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/DynamicDiscoveryDocument.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DynamicDiscoveryDocument.cs
new file mode 100755
index 00000000000..e16e251d06e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/DynamicDiscoveryDocument.cs
@@ -0,0 +1,62 @@
+//
+// System.Web.Services.Discovery.DynamicDiscoveryDocument.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.IO;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+
+ [XmlRootAttribute("dynamicDiscovery", Namespace="urn:schemas-dynamicdiscovery:disco.2000-03-17", IsNullable=true)]
+ public sealed class DynamicDiscoveryDocument {
+
+ #region Fields
+
+ public const string Namespace = "urn:schemas-dynamicdiscovery:disco.2000-03-17";
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public DynamicDiscoveryDocument ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlElement("exclude", typeof(ExcludePathInfo))]
+ public ExcludePathInfo[] ExcludePaths {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ [MonoTODO]
+ set { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public static DynamicDiscoveryDocument Load (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void Write (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/ExcludePathInfo.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ExcludePathInfo.cs
new file mode 100755
index 00000000000..e86bdd09b4e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/ExcludePathInfo.cs
@@ -0,0 +1,46 @@
+//
+// System.Web.Services.Discovery.ExcludePathInfo.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+ public sealed class ExcludePathInfo {
+
+ #region Fields
+
+ private string path;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public ExcludePathInfo ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ public ExcludePathInfo (string path) : this()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute("path")]
+ public string Path {
+ get { return path; }
+ set { path = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/SchemaReference.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/SchemaReference.cs
new file mode 100755
index 00000000000..e5109ceaa19
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/SchemaReference.cs
@@ -0,0 +1,105 @@
+//
+// System.Web.Services.Discovery.SchemaReference.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+
+using System.ComponentModel;
+using System.IO;
+using System.Xml.Schema;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+
+ [XmlRootAttribute("schemaRef", Namespace="http://schemas/xmlsoap.org/disco/schema/", IsNullable=true)]
+ public sealed class SchemaReference : DiscoveryReference {
+
+ #region Fields
+
+ public const string Namespace = "http://schemas/xmlsoap.org/disco/schema/";
+
+ private string defaultFilename;
+ private string href;
+ private string url;
+ private string targetNamespace;
+ private XmlSchema schema;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public SchemaReference ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public SchemaReference (string href) : this()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public override string DefaultFilename {
+ get { return defaultFilename; }
+ }
+
+ [XmlAttribute("ref")]
+ public string Ref {
+ get { return href; }
+ set { href = value; }
+ }
+
+ [XmlIgnore]
+ public override string Url {
+ get { return url; }
+ set { url = value; }
+ }
+
+ [DefaultValue("")]
+ [XmlAttribute("targetNamespace")]
+ public string TargetNamespace {
+ get { return targetNamespace; }
+ set { targetNamespace = targetNamespace; }
+ }
+
+ [XmlIgnore]
+ public XmlSchema Schema {
+ get { return schema; }
+
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override object ReadDocument (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected internal override void Resolve (string contentType, Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void WriteDocument (object document, Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/SoapBinding.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/SoapBinding.cs
new file mode 100755
index 00000000000..c91e356e3e6
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/SoapBinding.cs
@@ -0,0 +1,54 @@
+//
+// System.Web.Services.Discovery.SoapBinding.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Discovery {
+
+ [XmlRootAttribute("soap", Namespace="http://schemas/xmlsoap.org/disco/schema/soap/", IsNullable=true)]
+ public sealed class SoapBinding {
+
+ #region Fields
+
+ public const string Namespace = "http://schemas/xmlsoap.org/disco/schema/soap/";
+
+ private string address;
+ private XmlQualifiedName binding;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public SoapBinding ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlAttribute("address")]
+ public string Address {
+ get { return address; }
+ set { address = value; }
+ }
+
+ [XmlAttribute("binding")]
+ public XmlQualifiedName Binding {
+ get { return binding; }
+ set { binding = value; }
+ }
+
+ #endregion // Properties
+
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Discovery/XmlSchemaSearchPattern.cs b/mcs/class/System.Web.Services/System.Web.Services.Discovery/XmlSchemaSearchPattern.cs
new file mode 100755
index 00000000000..f597a6d478a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Discovery/XmlSchemaSearchPattern.cs
@@ -0,0 +1,47 @@
+//
+// System.Web.Services.Discovery.XmlSchemaSearchPattern.cs
+//
+// Author:
+// Dave Bettin (javabettin@yahoo.com)
+//
+// Copyright (C) Dave Bettin, 2002
+//
+
+namespace System.Web.Services.Discovery {
+ public sealed class XmlSchemaSearchPattern : DiscoverySearchPattern {
+
+ #region Fields
+
+ private string pattern = "*.xsd";
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public XmlSchemaSearchPattern ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string Pattern {
+ get { return pattern; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override DiscoveryReference GetDiscoveryReference (string filename)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/AnyReturnReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/AnyReturnReader.cs
new file mode 100644
index 00000000000..698e60ea252
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/AnyReturnReader.cs
@@ -0,0 +1,49 @@
+//
+// System.Web.Services.Protocols.AnyReturnReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class AnyReturnReader : MimeReturnReader {
+
+ #region Constructors
+
+ [MonoTODO]
+ public AnyReturnReader ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object o)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object Read (WebResponse response, Stream responseStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
new file mode 100644
index 00000000000..a4470557837
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
@@ -0,0 +1,202 @@
+2002-08-24 Tim Coleman <tim@timcoleman.com>
+ * HttpServerProtocol.cs:
+ * WebServiceHandler.cs:
+ Some commented code added, from analysing
+ an exception trace.
+ * MimeReturnWriter.cs:
+ * XmlReturnWriter.cs:
+ New stubs added.
+
+2002-08-23 Tim Coleman <tim@timcoleman.com>
+ * ServerProtocol.cs:
+ * SoapServerProtocol.cs:
+ More cleanup, comparison with class status.
+ * WebServiceHandler.cs:
+ * HttpServerProtocol.cs:
+ New stubs added.
+
+2002-08-15 Tim Coleman <tim@timcoleman.com>
+ * ServerProtocol.cs:
+ * SoapServerProtocol.cs:
+ Some more implementation.
+
+2002-08-06 Tim Coleman <tim@timcoleman.com>
+ * ServerProtocol.cs:
+ Add new class as implied by class statuc page.
+ SoapServerProtocol is derived from this.
+ * SoapServerProtocol.cs:
+ Change base class to ServerProtocol. Add some
+ properties shown by class status page.
+ * SoapClientMethod.cs:
+ This class should not be sealed. Add some
+ fields shown by the class status page.
+
+2002-07-25 Tim Coleman <tim@timcoleman.com>
+ * SoapClientMethod.cs:
+ * SoapServerProtocol.cs:
+ Add new internal classes as discovered.
+ * SoapClientMessage.cs:
+ * SoapMessage.cs:
+ * SoapServerMessage.cs:
+ * WebClientAsyncResult.cs:
+ Add internal constructor, as found on class
+ status page; modify some properties.
+
+2002-07-23 Tim Coleman <tim@timcoleman.com>
+ * SoapException.cs: modified constructors to
+ call base class correctly.
+ * WebClientAsyncResult: some implementation
+
+2002-07-23 Tim Coleman <tim@timcoleman.com>
+ * HttpGetClientProtocol.cs:
+ * HttpPostClientProtocol.cs
+ Implemented the GetWebRequest method
+ * HttpSimpleClientProtocol:
+ Some implementation of the EndInvoke method
+ * HttpWebClientProtocol.cs:
+ Set the UserAgent string appropriately
+ Implemented the GetWebRequest method
+ Implemented the GetWebResponse methods
+ * SoapHttpClientProtocol.cs:
+ Removed unused fields
+ Implemented the GetWebRequest method
+ * SoapMessage.cs:
+ Implemented the EnsureStage method
+ * WebClientProtocol.cs:
+ Added a static constructor to construct the cache
+ Implemented the Abort method
+ Implemented the AddToCache, GetFromCache methods
+ Implemented the GetWebRequest method
+ Implemented the GetWebResponse methods
+
+2002-07-23 Tim Coleman <tim@timcoleman.com>
+ * LogicalMethodTypes.cs:
+ * SoapHeaderDirection.cs:
+ * SoapMessageStage.cs:
+ * SoapParameterStyle.cs:
+ * SoapServiceRoutingStyle.cs:
+ Explicitly define values in enum to match
+ .NET.
+ * SoapMessage.cs:
+ Removed constructor which should not be present.
+ * SoapException.cs:
+ Made protected fields private as they should
+ be.
+ * SoapHeaderException.cs:
+ Modifications to constructors to propertly
+ call base class constructor
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * SoapHeaderException.cs:
+ Fixed name error in constructor
+ * SoapUnknownHeader.cs:
+ Added reference to System.Xml.Serialization
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * SoapHeaderException.cs:
+ New file added
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * AnyReturnReader.cs:
+ * HtmlFormParameterReader.cs :
+ * HtmlFormParameterWriter.cs :
+ * HttpGetClientProtocol.cs :
+ * HttpMethodAttribute.cs :
+ * HttpPostClientProtocol.cs :
+ * HttpSimpleClientProtocol.cs :
+ * HttpWebClientProtocol.cs :
+ * LogicalMethodInfo.cs :
+ * LogicalMethodTypes.cs :
+ * MatchAttribute.cs :
+ * MimeFormatter.cs :
+ * MimeParameterReader.cs :
+ * MimeParameterWriter.cs :
+ * MimeReturnReader.cs :
+ * NopReturnReader.cs :
+ * PatternMatcher.cs :
+ * SoapClientMessage.cs :
+ * SoapDocumentMethodAttribute.cs :
+ * SoapDocumentServiceAttribute.cs :
+ * SoapException.cs :
+ * SoapExtension.cs :
+ * SoapExtensionAttribute.cs :
+ * SoapHeader.cs :
+ * SoapHeaderAttribute.cs :
+ * SoapHeaderCollection.cs :
+ * SoapHeaderDirection.cs :
+ * SoapHttpClientProtocol.cs :
+ * SoapMessage.cs :
+ * SoapMessageStage.cs :
+ * SoapParameterStyle.cs :
+ * SoapRpcMethodAttribute.cs :
+ * SoapRpcServiceAttribute.cs :
+ * SoapServerMessage.cs :
+ * SoapServiceRoutingStyle.cs :
+ * SoapUnknownHeader.cs :
+ * TextReturnReader.cs :
+ * UrlEncodedParameterWriter.cs :
+ * UrlParameterReader.cs :
+ * UrlParameterWriter.cs :
+ * ValueCollectionParameterReader.cs :
+ * WebClientAsyncResult.cs :
+ * WebClientProtocol.cs :
+ * WebServiceHandlerFactory.cs :
+ * XmlReturnReader.cs :
+ Add missing methods and attributes to make as few missing
+ things as possible in this namespace. This is from the
+ project status page.
+
+2002-07-20 Tim Coleman <tim@timcoleman.com>
+ * AnyReturnReader.cs:
+ * HtmlFormParameterReader.cs:
+ * HtmlFormParameterWriter.cs:
+ * HttpGetClientProtocol.cs:
+ * HttpMethodAttribute.cs:
+ * HttpPostClientProtocol.cs:
+ * HttpSimpleClientProtocol.cs:
+ * HttpWebClientProtocol.cs:
+ * MatchAttribute.cs:
+ * MimeFormatter.cs:
+ * MimeParameterReader.cs:
+ * MimeParameterWriter.cs:
+ * MimeReturnReader.cs:
+ * NopReturnReader.cs:
+ * PatternMatcher.cs:
+ * SoapClientMessage.cs:
+ * SoapDocumentMethodAttribute.cs:
+ * SoapDocumentServiceAttribute.cs:
+ * SoapException.cs:
+ * SoapExtensionAttribute.cs:
+ * SoapExtension.cs:
+ * SoapHeaderAttribute.cs:
+ * SoapHeaderCollection.cs:
+ * SoapHeader.cs:
+ * SoapHeaderDirection.cs:
+ * SoapHttpClientProtocol.cs:
+ * SoapMessage.cs:
+ * SoapMessageStage.cs:
+ * SoapParameterStyle.cs:
+ * SoapRpcMethodAttribute.cs:
+ * SoapRpcServiceAttribute.cs:
+ * SoapServerMessage.cs:
+ * SoapServiceRoutingStyle.cs:
+ * SoapUnknownHeader.cs:
+ * TextReturnReader.cs:
+ * UrlEncodedParameterWriter.cs:
+ * UrlParameterReader.cs:
+ * UrlParameterWriter.cs:
+ * ValueCollectionParameterReader.cs:
+ * WebClientAsyncResult.cs:
+ * WebClientProtocol.cs:
+ * WebServiceHandlerFactory.cs:
+ * XmlReturnReader.cs:
+ Added new stubbs and some implementation
+ * LogicalMethodTypes.cs:
+ Added [Serializable] attribute which was missing.
+
+2002-07-19 Tim Coleman <tim@timcoleman.com>
+ * ChangeLog:
+ * LogicalMethodInfo.cs:
+ * LogicalMethodTypes.cs:
+ Add required classes to maek System.Web.Services.Description
+ buildable.
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterReader.cs
new file mode 100644
index 00000000000..883b85f6924
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterReader.cs
@@ -0,0 +1,36 @@
+//
+// System.Web.Services.Protocols.HtmlFormParameterReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class HtmlFormParameterReader : ValueCollectionParameterReader {
+
+ #region Constructors
+
+ [MonoTODO]
+ public HtmlFormParameterReader ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object[] Read (HttpRequest request)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterWriter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterWriter.cs
new file mode 100644
index 00000000000..f463a2325d7
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HtmlFormParameterWriter.cs
@@ -0,0 +1,52 @@
+//
+// System.Web.Services.Protocols.HtmlFormParameterWriter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class HtmlFormParameterWriter : UrlEncodedParameterWriter {
+
+ #region Constructors
+
+ [MonoTODO]
+ public HtmlFormParameterWriter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override bool UsesWriteRequest {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override void InitializeRequest (WebRequest request, object[] values)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void WriteRequest (Stream requestStream, object[] values)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpGetClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpGetClientProtocol.cs
new file mode 100644
index 00000000000..554201746ec
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpGetClientProtocol.cs
@@ -0,0 +1,37 @@
+//
+// System.Web.Services.Protocols.HttpGetClientProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Net;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class HttpGetClientProtocol : HttpSimpleClientProtocol {
+
+ #region Constructors
+
+ public HttpGetClientProtocol ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ protected override WebRequest GetWebRequest (Uri uri)
+ {
+ if (uri == null)
+ throw new InvalidOperationException ("The uri parameter is null.");
+ if (uri.ToString () == String.Empty)
+ throw new InvalidOperationException ("The uri parameter has a length of zero.");
+ return WebRequest.Create (uri);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpMethodAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpMethodAttribute.cs
new file mode 100644
index 00000000000..824d9d18803
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpMethodAttribute.cs
@@ -0,0 +1,50 @@
+//
+// System.Web.Services.Protocols.HttpMethodAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.Method)]
+ public sealed class HttpMethodAttribute : Attribute {
+
+ #region Fields
+
+ Type parameterFormatter;
+ Type returnFormatter;
+
+ #endregion
+
+ #region Constructors
+
+ public HttpMethodAttribute ()
+ {
+ }
+
+ public HttpMethodAttribute (Type returnFormatter, Type parameterFormatter)
+ : this ()
+ {
+ this.parameterFormatter = parameterFormatter;
+ this.returnFormatter = returnFormatter;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public Type ParameterFormatter {
+ get { return parameterFormatter; }
+ set { parameterFormatter = value; }
+ }
+
+ public Type ReturnFormatter {
+ get { return returnFormatter; }
+ set { returnFormatter = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpPostClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpPostClientProtocol.cs
new file mode 100644
index 00000000000..ebdc3cdf9a1
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpPostClientProtocol.cs
@@ -0,0 +1,37 @@
+//
+// System.Web.Services.Protocols.HttpPostClientProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Net;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class HttpPostClientProtocol : HttpSimpleClientProtocol {
+
+ #region Constructors
+
+ public HttpPostClientProtocol ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ protected override WebRequest GetWebRequest (Uri uri)
+ {
+ if (null == uri)
+ throw new InvalidOperationException ("The uri parameter is a null reference.");
+ if (String.Empty == uri.ToString ())
+ throw new InvalidOperationException ("The uri parameter has a length of zero.");
+ return WebRequest.Create (uri);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpServerProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpServerProtocol.cs
new file mode 100644
index 00000000000..2ae6e5ab395
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpServerProtocol.cs
@@ -0,0 +1,76 @@
+//
+// System.Web.Services.Protocols.HttpServerProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ [MonoTODO ("Figure out what this class does.")]
+ internal abstract class HttpServerProtocol : ServerProtocol {
+
+ #region Constructors
+
+ [MonoTODO ("Is the bool parameter the one way?")]
+ protected HttpServerProtocol (bool isOneWay)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [MonoTODO]
+ public override bool IsOneWay {
+ get { throw new NotImplementedException (); }
+ }
+
+ [MonoTODO]
+ public override LogicalMethodInfo MethodInfo {
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public static bool AreUrlParametersSupported (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override bool Initialize ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object[] ReadParameters ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override bool WriteException (Exception e, Stream outputStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void WriteReturns (object[] returnValues, Stream outputStream)
+ {
+ //xmlReturnWriter.Write (Response, outputStream, returnValue);
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSimpleClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSimpleClientProtocol.cs
new file mode 100644
index 00000000000..282739ec4c1
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSimpleClientProtocol.cs
@@ -0,0 +1,53 @@
+//
+// System.Web.Services.Protocols.HttpSimpleClientProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class HttpSimpleClientProtocol : HttpWebClientProtocol {
+
+ #region Fields
+
+ IAsyncResult result;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected HttpSimpleClientProtocol ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ protected IAsyncResult BeginInvoke (string methodName, string requestUrl, object[] parameters, AsyncCallback callback, object asyncState)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected object EndInvoke (IAsyncResult asyncResult)
+ {
+ if (asyncResult != result)
+ throw new ArgumentException ("asyncResult is not the return value from BeginInvoke");
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected object Invoke (string methodName, string requestUrl, object[] parameters)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs
new file mode 100644
index 00000000000..a47c7a19694
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpWebClientProtocol.cs
@@ -0,0 +1,104 @@
+//
+// System.Web.Services.Protocols.HttpWebClientProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System;
+using System.ComponentModel;
+using System.Net;
+using System.Security.Cryptography.X509Certificates;
+using System.Threading;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class HttpWebClientProtocol : WebClientProtocol {
+
+ #region Fields
+
+ bool allowAutoRedirect;
+ X509CertificateCollection clientCertificates;
+ CookieContainer cookieContainer;
+ IWebProxy proxy;
+ string userAgent;
+
+ #endregion
+
+ #region Constructors
+
+ protected HttpWebClientProtocol ()
+ {
+ allowAutoRedirect = false;
+ clientCertificates = new X509CertificateCollection ();
+ cookieContainer = null;
+ proxy = null; // FIXME
+ userAgent = String.Format ("Mono Web Services Client Protocol {0}", Environment.Version);
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue (false)]
+ [WebServicesDescription ("Enable automatic handling of server redirects.")]
+ public bool AllowAutoRedirect {
+ get { return allowAutoRedirect; }
+ set { allowAutoRedirect = value; }
+ }
+
+ [Browsable (false)]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ [WebServicesDescription ("The client certificates that will be sent to the server, if the server requests them.")]
+ public X509CertificateCollection ClientCertificates {
+ get { return clientCertificates; }
+ }
+
+ [DefaultValue (null)]
+ [WebServicesDescription ("A container for all cookies received from servers in the current session.")]
+ public CookieContainer CookieContainer {
+ get { return cookieContainer; }
+ set { cookieContainer = value; }
+ }
+
+ [Browsable (false)]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ public IWebProxy Proxy {
+ get { return proxy; }
+ set { proxy = value; }
+ }
+
+ [WebServicesDescription ("Sets the user agent http header for the request.")]
+ public string UserAgent {
+ get { return userAgent; }
+ set { userAgent = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ protected override WebRequest GetWebRequest (Uri uri)
+ {
+ if (null == uri)
+ throw new InvalidOperationException ("The uri parameter is a null reference.");
+ return WebRequest.Create (uri);
+ }
+
+ protected override WebResponse GetWebResponse (WebRequest request)
+ {
+ return request.GetResponse ();
+ }
+
+ protected override WebResponse GetWebResponse (WebRequest request, IAsyncResult result)
+ {
+ IAsyncResult ar = request.BeginGetResponse (null, null);
+ ar.AsyncWaitHandle.WaitOne ();
+ return request.EndGetResponse (result);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodInfo.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodInfo.cs
new file mode 100644
index 00000000000..471b925d6e5
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodInfo.cs
@@ -0,0 +1,176 @@
+//
+// System.Web.Services.Protocols.LogicalMethodInfo.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Reflection;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public sealed class LogicalMethodInfo {
+
+ #region Fields
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public LogicalMethodInfo (MethodInfo methodInfo)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public ParameterInfo AsyncCallbackParameter {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ParameterInfo AsyncResultParameter {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ParameterInfo AsyncStateParameter {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public MethodInfo BeginMethodInfo {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ICustomAttributeProvider CustomAttributeProvider {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public Type DeclaringType {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public MethodInfo EndMethodInfo {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ParameterInfo[] InParameters {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public bool IsAsync {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public bool IsVoid {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public MethodInfo MethodInfo {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public string Name {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ParameterInfo[] OutParameters {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ParameterInfo[] Parameters {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public Type ReturnType {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public ICustomAttributeProvider ReturnTypeCustomAttributeProvider {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public IAsyncResult BeginInvoke (object target, object[] values, AsyncCallback callback, object asyncState)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static LogicalMethodInfo[] Create (MethodInfo[] methodInfos)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static LogicalMethodInfo[] Create (MethodInfo[] methodInfos, LogicalMethodTypes types)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public object[] EndInvoke (object target, IAsyncResult asyncResult)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public object GetCustomAttribute (Type type)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public object[] GetCustomAttributes (Type type)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public object[] Invoke (object target, object[] values)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static bool IsBeginMethod (MethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static bool IsEndMethod (MethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override string ToString ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodTypes.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodTypes.cs
new file mode 100644
index 00000000000..c2347a4f487
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/LogicalMethodTypes.cs
@@ -0,0 +1,16 @@
+//
+// System.Web.Services.Protocols.LogicalMethodTypes.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [Serializable]
+ public enum LogicalMethodTypes {
+ Async = 0x2,
+ Sync = 0x1
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/MatchAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MatchAttribute.cs
new file mode 100644
index 00000000000..95c985c5900
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MatchAttribute.cs
@@ -0,0 +1,64 @@
+//
+// System.Web.Services.Protocols.MatchAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.All)]
+ public sealed class MatchAttribute : Attribute {
+
+ #region Fields
+
+ int capture;
+ int group;
+ bool ignoreCase;
+ int maxRepeats;
+ string pattern;
+
+ #endregion
+
+ #region Constructors
+
+ public MatchAttribute (string pattern)
+ {
+ ignoreCase = false;
+ maxRepeats = -1;
+ this.pattern = pattern;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public int Capture {
+ get { return capture; }
+ set { capture = value; }
+ }
+
+ public int Group {
+ get { return group; }
+ set { group = value; }
+ }
+
+ public bool IgnoreCase {
+ get { return ignoreCase; }
+ set { ignoreCase = value; }
+ }
+
+ public int MaxRepeats {
+ get { return maxRepeats; }
+ set { maxRepeats = value; }
+ }
+
+ public string Pattern {
+ get { return pattern; }
+ set { pattern = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeFormatter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeFormatter.cs
new file mode 100644
index 00000000000..2bc4e93239b
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeFormatter.cs
@@ -0,0 +1,57 @@
+//
+// System.Web.Services.Protocols.MimeFormatter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class MimeFormatter {
+
+ #region Constructors
+
+ [MonoTODO]
+ protected MimeFormatter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public static MimeFormatter CreateInstance (Type type, object initializer)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public abstract object GetInitializer (LogicalMethodInfo methodInfo);
+
+ [MonoTODO]
+ public static object GetInitializer (Type type, LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public virtual object[] GetInitializers (LogicalMethodInfo[] methodInfos)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static object[] GetInitializers (Type type, LogicalMethodInfo[] methodInfos)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public abstract void Initialize (object initializer);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterReader.cs
new file mode 100644
index 00000000000..3b9f5a59c74
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterReader.cs
@@ -0,0 +1,29 @@
+//
+// System.Web.Services.Protocols.MimeParameterReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web;
+
+namespace System.Web.Services.Protocols {
+ public abstract class MimeParameterReader : MimeFormatter {
+
+ #region Constructors
+
+ protected MimeParameterReader ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ public abstract object[] Read (HttpRequest request);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterWriter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterWriter.cs
new file mode 100644
index 00000000000..c152c4b3456
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeParameterWriter.cs
@@ -0,0 +1,66 @@
+//
+// System.Web.Services.Protocols.MimeParameterWriter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class MimeParameterWriter : MimeFormatter {
+
+ #region Constructors
+
+ [MonoTODO]
+ protected MimeParameterWriter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public virtual Encoding RequestEncoding {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ [MonoTODO]
+ set { throw new NotImplementedException (); }
+ }
+
+ public virtual bool UsesWriteRequest {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public virtual string GetRequestUrl (string url, object[] parameters)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public virtual void InitializeRequest (WebRequest request, object[] values)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public virtual void WriteRequest (Stream requestStream, object[] values)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnReader.cs
new file mode 100644
index 00000000000..29e645554e9
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnReader.cs
@@ -0,0 +1,30 @@
+//
+// System.Web.Services.Protocols.MimeReturnReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+
+namespace System.Web.Services.Protocols {
+ public abstract class MimeReturnReader : MimeFormatter {
+
+ #region Constructors
+
+ protected MimeReturnReader ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ public abstract object Read (WebResponse response, Stream responseStream);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnWriter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnWriter.cs
new file mode 100644
index 00000000000..06921886ba8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/MimeReturnWriter.cs
@@ -0,0 +1,22 @@
+//
+// System.Web.Services.Protocols.MimeReturnWriter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web;
+
+namespace System.Web.Services.Protocols {
+ internal abstract class MimeReturnWriter : MimeFormatter {
+
+ #region Methods
+
+ public abstract void Write (HttpResponse response, Stream outputStream, object returnValue);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/NopReturnReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/NopReturnReader.cs
new file mode 100644
index 00000000000..2786fc75ae2
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/NopReturnReader.cs
@@ -0,0 +1,49 @@
+//
+// System.Web.Services.Protocols.NopReturnReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class NopReturnReader : MimeReturnReader {
+
+ #region Constructors
+
+ [MonoTODO]
+ public NopReturnReader ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object initializer)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object Read (WebResponse response, Stream responseStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/PatternMatcher.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/PatternMatcher.cs
new file mode 100644
index 00000000000..4d60f517285
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/PatternMatcher.cs
@@ -0,0 +1,35 @@
+//
+// System.Web.Services.Protocols.PatternMatcher.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public sealed class PatternMatcher {
+
+ #region Constructors
+
+ [MonoTODO]
+ public PatternMatcher (Type type)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public object Match (string text)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ServerProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ServerProtocol.cs
new file mode 100644
index 00000000000..5c778125aff
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ServerProtocol.cs
@@ -0,0 +1,110 @@
+//
+// System.Web.Services.Protocols.ServerProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ [MonoTODO ("Figure out what this class does.")]
+ internal abstract class ServerProtocol {
+
+ #region Constructors
+
+ protected ServerProtocol ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+
+ #region Properties
+
+ [MonoTODO]
+ public HttpContext Context {
+ get { throw new NotImplementedException (); }
+ }
+
+ public abstract bool IsOneWay {
+ get;
+ }
+
+ public abstract LogicalMethodInfo MethodInfo {
+ get;
+ }
+
+ [MonoTODO]
+ public virtual Exception OnewayInitException {
+ get { throw new NotImplementedException (); }
+ }
+
+ [MonoTODO]
+ public HttpRequest Request {
+ get { throw new NotImplementedException (); }
+ }
+
+ [MonoTODO]
+ public HttpResponse Response {
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion
+
+ #region Methods
+
+ [MonoTODO]
+ protected void AddToCache (Type t1, Type t2, object o)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public virtual void CreateServerInstance ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public virtual void DisposeServerInstance ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public string GenerateFaultString (Exception exception)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected object GetFromCache (Type t1, Type t2)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public abstract bool Initialize ();
+ public abstract object[] ReadParameters ();
+
+ [MonoTODO]
+ public virtual bool WriteException (Exception e, Stream outputStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void WriteOneWayResponse ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ public abstract void WriteReturns (object[] returnValues, Stream outputStream);
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMessage.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMessage.cs
new file mode 100644
index 00000000000..a09077b146f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMessage.cs
@@ -0,0 +1,78 @@
+//
+// System.Web.Services.Protocols.SoapClientMessage.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public sealed class SoapClientMessage : SoapMessage {
+
+ #region Fields
+
+ SoapHttpClientProtocol client;
+ SoapClientMethod clientMethod;
+ string url;
+
+ #endregion
+
+ #region Constructors
+
+ [MonoTODO ("Determine what calls this constructor.")]
+ internal SoapClientMessage (SoapHttpClientProtocol client, SoapClientMethod clientMethod, string url)
+ {
+ this.client = client;
+ this.url = url;
+ this.clientMethod = clientMethod;
+ }
+
+ #endregion
+
+ #region Properties
+
+ public override string Action {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public SoapHttpClientProtocol Client {
+ get { return client; }
+ }
+
+ public override LogicalMethodInfo MethodInfo {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public override bool OneWay {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public override string Url {
+ get { return url; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected override void EnsureInStage ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void EnsureOutStage ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMethod.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMethod.cs
new file mode 100644
index 00000000000..9bc959b3997
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapClientMethod.cs
@@ -0,0 +1,27 @@
+//
+// System.Web.Services.Protocols.SoapClientMethod.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+using System.Web.Services.Description;
+
+namespace System.Web.Services.Protocols {
+ [MonoTODO ("Determine what this class does.")]
+ internal class SoapClientMethod {
+
+ #region Fields
+
+ public string action;
+ public LogicalMethodInfo methodInfo;
+ public bool oneWay;
+ public bool rpc;
+ public SoapBindingUse use;
+
+ #endregion // Fields
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentMethodAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentMethodAttribute.cs
new file mode 100644
index 00000000000..d927eb37acf
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentMethodAttribute.cs
@@ -0,0 +1,102 @@
+//
+// System.Web.Services.Protocols.SoapDocumentMethodAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Description;
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.Method)]
+ public sealed class SoapDocumentMethodAttribute : Attribute {
+
+ #region Fields
+
+ string action;
+ string binding;
+ bool oneWay;
+ SoapParameterStyle parameterStyle;
+ string requestElementName;
+ string requestNamespace;
+ string responseElementName;
+ string responseNamespace;
+ SoapBindingUse use;
+
+ #endregion
+
+ #region Constructors
+
+ public SoapDocumentMethodAttribute ()
+ {
+ action = "http://tempuri.org/MethodName"; // FIXME
+ binding = String.Empty; // FIXME
+ oneWay = false;
+ parameterStyle = SoapParameterStyle.Wrapped;
+ requestElementName = String.Empty; // FIXME
+ requestNamespace = "http://tempuri.org/";
+ responseElementName = "WebServiceNameResult"; // FIXME
+ responseNamespace = "http://tempuri.org/";
+ use = SoapBindingUse.Literal;
+ }
+
+ public SoapDocumentMethodAttribute (string action)
+ : this ()
+ {
+ this.action = action;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string Action {
+ get { return action; }
+ set { action = value; }
+ }
+
+ public string Binding {
+ get { return binding; }
+ set { binding = value; }
+ }
+
+ public bool OneWay {
+ get { return oneWay; }
+ set { oneWay = value; }
+ }
+
+ public SoapParameterStyle ParameterStyle {
+ get { return parameterStyle; }
+ set { parameterStyle = value; }
+ }
+
+ public string RequestElementName {
+ get { return requestElementName; }
+ set { requestElementName = value; }
+ }
+
+ public string RequestNamespace {
+ get { return requestNamespace; }
+ set { requestNamespace = value; }
+ }
+
+ public string ResponseElementName {
+ get { return responseElementName; }
+ set { responseElementName = value; }
+ }
+
+ public string ResponseNamespace {
+ get { return responseNamespace; }
+ set { responseNamespace = value; }
+ }
+
+ public SoapBindingUse Use {
+ get { return use; }
+ set { use = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentServiceAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentServiceAttribute.cs
new file mode 100644
index 00000000000..6593a87609e
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentServiceAttribute.cs
@@ -0,0 +1,67 @@
+//
+// System.Web.Services.Protocols.SoapDocumentServiceAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services.Description;
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.Class)]
+ public sealed class SoapDocumentServiceAttribute : Attribute {
+
+ #region Fields
+
+ SoapParameterStyle paramStyle;
+ SoapServiceRoutingStyle routingStyle;
+ SoapBindingUse use;
+
+ #endregion
+
+ #region Constructors
+
+ public SoapDocumentServiceAttribute ()
+ {
+ paramStyle = SoapParameterStyle.Wrapped;
+ routingStyle = SoapServiceRoutingStyle.SoapAction;
+ use = SoapBindingUse.Literal;
+ }
+
+ public SoapDocumentServiceAttribute (SoapBindingUse use)
+ : this ()
+ {
+ this.use = use;
+ }
+
+ public SoapDocumentServiceAttribute (SoapBindingUse use, SoapParameterStyle paramStyle)
+ : this ()
+ {
+ this.use = use;
+ this.paramStyle = paramStyle;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public SoapParameterStyle ParameterStyle {
+ get { return paramStyle; }
+ set { paramStyle = value; }
+ }
+
+ public SoapServiceRoutingStyle RoutingStyle {
+ get { return routingStyle; }
+ set { routingStyle = value; }
+ }
+
+ public SoapBindingUse Use {
+ get { return use; }
+ set { use = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapException.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapException.cs
new file mode 100644
index 00000000000..e28c88d06b7
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapException.cs
@@ -0,0 +1,91 @@
+//
+// System.Web.Services.Protocols.SoapException.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml;
+
+namespace System.Web.Services.Protocols {
+ public class SoapException : SystemException {
+
+ #region Fields
+
+ public static readonly XmlQualifiedName ClientFaultCode = new XmlQualifiedName ("Client", "http://schemas.xmlsoap.org/soap/envelope/");
+ public static readonly XmlQualifiedName DetailElementName = new XmlQualifiedName ("detail");
+ public static readonly XmlQualifiedName MustUnderstandFaultCode = new XmlQualifiedName ("MustUnderstand", "http://schemas.xmlsoap.org/soap/envelope/");
+ public static readonly XmlQualifiedName ServerFaultCode = new XmlQualifiedName ("Server", "http://schemas.xmlsoap.org/soap/envelope/");
+ public static readonly XmlQualifiedName VersionMismatchFaultCode = new XmlQualifiedName ("VersionMismatch", "http://schemas.xmlsoap.org/soap/envelope/");
+
+ string actor;
+ XmlQualifiedName code;
+ XmlNode detail;
+
+ #endregion
+
+ #region Constructors
+
+ public SoapException (string message, XmlQualifiedName code)
+ : base (message)
+ {
+ this.code = code;
+ }
+
+ public SoapException (string message, XmlQualifiedName code, Exception innerException)
+ : base (message, innerException)
+ {
+ this.code = code;
+ }
+
+ public SoapException (string message, XmlQualifiedName code, string actor)
+ : base (message)
+ {
+ this.code = code;
+ this.actor = actor;
+ }
+
+ public SoapException (string message, XmlQualifiedName code, string actor, Exception innerException)
+ : base (message, innerException)
+ {
+ this.code = code;
+ this.actor = actor;
+ }
+
+ public SoapException (string message, XmlQualifiedName code, string actor, XmlNode detail)
+ : base (message)
+ {
+ this.code = code;
+ this.actor = actor;
+ this.detail = detail;
+ }
+
+ public SoapException (string message, XmlQualifiedName code, string actor, XmlNode detail, Exception innerException)
+ : base (message, innerException)
+ {
+ this.code = code;
+ this.actor = actor;
+ this.detail = detail;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string Actor {
+ get { return actor; }
+ }
+
+ public XmlQualifiedName Code {
+ get { return code; }
+ }
+
+ public XmlNode Detail {
+ get { return detail; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtension.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtension.cs
new file mode 100644
index 00000000000..48f91cd38db
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtension.cs
@@ -0,0 +1,46 @@
+//
+// System.Web.Services.Protocols.SoapExtension.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+
+namespace System.Web.Services.Protocols {
+ public abstract class SoapExtension {
+
+ #region Fields
+
+ Stream stream;
+
+ #endregion
+
+ #region Constructors
+
+ [MonoTODO]
+ protected SoapExtension ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public virtual Stream ChainStream (Stream stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public abstract object GetInitializer (Type serviceType);
+ public abstract object GetInitializer (LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute);
+ public abstract void Initialize (object initializer);
+ public abstract void ProcessMessage (SoapMessage message);
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtensionAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtensionAttribute.cs
new file mode 100644
index 00000000000..c90f6b9bc94
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapExtensionAttribute.cs
@@ -0,0 +1,34 @@
+//
+// System.Web.Services.Protocols.SoapExtensionAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ public abstract class SoapExtensionAttribute : Attribute {
+
+ #region Constructors
+
+ protected SoapExtensionAttribute ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public abstract Type ExtensionType {
+ get;
+ }
+
+ public abstract int Priority {
+ get;
+ set;
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeader.cs
new file mode 100644
index 00000000000..eecfa6b0282
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeader.cs
@@ -0,0 +1,78 @@
+//
+// System.Web.Services.Protocols.SoapHeader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Protocols {
+ [SoapType (IncludeInSchema = false)]
+ [XmlType (IncludeInSchema = false)]
+ public abstract class SoapHeader {
+
+ #region Fields
+
+ string actor;
+ bool didUnderstand;
+ bool mustUnderstand;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ protected SoapHeader ()
+ {
+ actor = String.Empty;
+ didUnderstand = false;
+ mustUnderstand = false;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue ("")]
+ [SoapAttribute ("actor", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
+ [XmlAttribute ("actor", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
+ public string Actor {
+ get { return actor; }
+ set { actor = value; }
+ }
+
+ [SoapIgnore]
+ [XmlIgnore]
+ public bool DidUnderstand {
+ get { return didUnderstand; }
+ set { didUnderstand = value; }
+ }
+
+ [DefaultValue ("0")]
+ [SoapAttribute ("mustUnderstand", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
+ [XmlAttribute ("mustUnderstand", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
+ public string EncodedMustUnderstand {
+ get { return (MustUnderstand ? "1" : "0"); }
+ set {
+ if (value == "true" || value == "1")
+ MustUnderstand = true;
+ else if (value == "false" || value == "0")
+ MustUnderstand = false;
+ else
+ throw new ArgumentException ();
+ }
+ }
+
+ [SoapIgnore]
+ [XmlIgnore]
+ public bool MustUnderstand {
+ get { return mustUnderstand; }
+ set { mustUnderstand = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderAttribute.cs
new file mode 100644
index 00000000000..f933c62d2d8
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderAttribute.cs
@@ -0,0 +1,52 @@
+//
+// System.Web.Services.Protocols.SoapHeaderAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.Method)]
+ public sealed class SoapHeaderAttribute : Attribute {
+
+ #region Fields
+
+ SoapHeaderDirection direction;
+ string memberName;
+ bool required;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapHeaderAttribute (string memberName)
+ {
+ direction = SoapHeaderDirection.In;
+ this.memberName = memberName;
+ required = true;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public SoapHeaderDirection Direction {
+ get { return direction; }
+ set { direction = value; }
+ }
+
+ public string MemberName {
+ get { return memberName; }
+ set { memberName = value; }
+ }
+
+ public bool Required {
+ get { return required; }
+ set { required = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderCollection.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderCollection.cs
new file mode 100644
index 00000000000..017b0346beb
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderCollection.cs
@@ -0,0 +1,69 @@
+//
+// System.Web.Services.Protocols.SoapHeaderCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections;
+
+namespace System.Web.Services.Protocols {
+ public class SoapHeaderCollection : CollectionBase {
+
+ #region Constructors
+
+ public SoapHeaderCollection ()
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public SoapHeader this [int index] {
+ get { return (SoapHeader) List[index]; }
+ set { List[index] = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public int Add (SoapHeader header)
+ {
+ Insert (Count, header);
+ return (Count - 1);
+ }
+
+ public bool Contains (SoapHeader header)
+ {
+ return List.Contains (header);
+ }
+
+ public void CopyTo (SoapHeader[] array, int index)
+ {
+ List.CopyTo (array, index);
+ }
+
+ public int IndexOf (SoapHeader header)
+ {
+ return List.IndexOf (header);
+ }
+
+ public void Insert (int index, SoapHeader header)
+ {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ();
+ List.Insert (index, header);
+ }
+
+ public void Remove (SoapHeader header)
+ {
+ List.Remove (header);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderDirection.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderDirection.cs
new file mode 100644
index 00000000000..14c60ee3119
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderDirection.cs
@@ -0,0 +1,18 @@
+//
+// System.Web.Services.Protocols.SoapHeaderDirection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [Flags]
+ [Serializable]
+ public enum SoapHeaderDirection {
+ In = 0x1,
+ InOut = 0x3,
+ Out = 0x2
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderException.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderException.cs
new file mode 100644
index 00000000000..3e2bde7b2b7
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHeaderException.cs
@@ -0,0 +1,39 @@
+//
+// System.Web.Services.Protocols.SoapHeaderException.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml;
+
+namespace System.Web.Services.Protocols {
+ public class SoapHeaderException : SoapException {
+
+ #region Constructors
+
+ public SoapHeaderException (string message, XmlQualifiedName code)
+ : base (message, code)
+ {
+ }
+
+ public SoapHeaderException (string message, XmlQualifiedName code, Exception innerException)
+ : base (message, code, innerException)
+ {
+ }
+
+ public SoapHeaderException (string message, XmlQualifiedName code, string actor)
+ : base (message, code, actor)
+ {
+ }
+
+ public SoapHeaderException (string message, XmlQualifiedName code, string actor, Exception innerException)
+ : base (message, code, actor, innerException)
+ {
+ }
+
+ #endregion // Constructors
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHttpClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHttpClientProtocol.cs
new file mode 100644
index 00000000000..2b17b469e70
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHttpClientProtocol.cs
@@ -0,0 +1,58 @@
+//
+// System.Web.Services.Protocols.SoapHttpClientProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Net;
+using System.Web;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class SoapHttpClientProtocol : HttpWebClientProtocol {
+
+ #region Constructors
+
+ public SoapHttpClientProtocol ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ protected IAsyncResult BeginInvoke (string methodName, object[] parameters, AsyncCallback callback, object asyncState)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void Discover ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected object[] EndInvoke (IAsyncResult asyncResult)
+ {
+ throw new NotImplementedException ();
+ }
+
+ protected override WebRequest GetWebRequest (Uri uri)
+ {
+ return WebRequest.Create (uri);
+ }
+
+ [MonoTODO]
+ protected object[] Invoke (string methodName, object[] parameters)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs
new file mode 100644
index 00000000000..8dea7f5140a
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessage.cs
@@ -0,0 +1,106 @@
+//
+// System.Web.Services.Protocols.SoapMessage.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class SoapMessage {
+
+ #region Fields
+
+ string contentType = "text/xml";
+ SoapException exception = null;
+ SoapHeaderCollection headers = null;
+ SoapMessageStage stage;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ internal SoapMessage ()
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public abstract string Action {
+ get;
+ }
+
+ public string ContentType {
+ get { return contentType; }
+ set { contentType = value; }
+ }
+
+ public SoapException Exception {
+ get { return exception; }
+ }
+
+ public SoapHeaderCollection Headers {
+ get { return headers; }
+ }
+
+ public abstract LogicalMethodInfo MethodInfo {
+ get;
+ }
+
+ public abstract bool OneWay {
+ get;
+ }
+
+ public SoapMessageStage Stage {
+ get { return stage; }
+ }
+
+ public Stream Stream {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public abstract string Url {
+ get;
+ }
+
+ #endregion Properties
+
+ #region Methods
+
+ protected abstract void EnsureInStage ();
+ protected abstract void EnsureOutStage ();
+
+ protected void EnsureStage (SoapMessageStage stage)
+ {
+ if ((((int) stage) & ((int) Stage)) == 0)
+ throw new InvalidOperationException ("The current SoapMessageStage is not the asserted stage or stages.");
+ }
+
+ [MonoTODO]
+ public object GetInParameterValue (int index)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public object GetOutParameterValue (int index)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public object GetReturnValue ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessageStage.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessageStage.cs
new file mode 100644
index 00000000000..c4c4b1c3433
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapMessageStage.cs
@@ -0,0 +1,18 @@
+//
+// System.Web.Services.Protocols.SoapMessageStage.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [Serializable]
+ public enum SoapMessageStage {
+ AfterDeserialize = 0x8,
+ AfterSerialize = 0x2,
+ BeforeDeserialize = 0x4,
+ BeforeSerialize = 0x1
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapParameterStyle.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapParameterStyle.cs
new file mode 100644
index 00000000000..e03ced756e9
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapParameterStyle.cs
@@ -0,0 +1,17 @@
+//
+// System.Web.Services.Protocols.SoapParameterStyle.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [Serializable]
+ public enum SoapParameterStyle {
+ Default = 0x0,
+ Bare = 0x1,
+ Wrapped = 0x2
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcMethodAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcMethodAttribute.cs
new file mode 100644
index 00000000000..9e375d1c9f4
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcMethodAttribute.cs
@@ -0,0 +1,86 @@
+//
+// System.Web.Services.Protocols.SoapRpcMethodAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.Method)]
+ public sealed class SoapRpcMethodAttribute : Attribute {
+
+ #region Fields
+
+ string action;
+ string binding;
+ bool oneWay;
+ string requestElementName;
+ string requestNamespace;
+ string responseElementName;
+ string responseNamespace;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapRpcMethodAttribute ()
+ {
+ action = "http://tempuri.org/MethodName"; // FIXME
+ binding = ""; // FIXME
+ oneWay = false;
+ requestElementName = ""; // FIXME
+ requestNamespace = "http://tempuri.org/";
+ responseElementName = "WebServiceNameResult"; // FIXME
+ responseNamespace = "http://tempuri.org/";
+ }
+
+ public SoapRpcMethodAttribute (string action)
+ : this ()
+ {
+ this.action = action;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string Action {
+ get { return action; }
+ set { action = value; }
+ }
+
+ public string Binding {
+ get { return binding; }
+ set { binding = value; }
+ }
+
+ public bool OneWay {
+ get { return oneWay; }
+ set { oneWay = value; }
+ }
+
+ public string RequestElementName {
+ get { return requestElementName; }
+ set { requestElementName = value; }
+ }
+
+ public string RequestNamespace {
+ get { return requestNamespace; }
+ set { requestNamespace = value; }
+ }
+
+ public string ResponseElementName {
+ get { return responseElementName; }
+ set { responseElementName = value; }
+ }
+
+ public string ResponseNamespace {
+ get { return responseNamespace; }
+ set { responseNamespace = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcServiceAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcServiceAttribute.cs
new file mode 100644
index 00000000000..aa475f5e1d3
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapRpcServiceAttribute.cs
@@ -0,0 +1,38 @@
+//
+// System.Web.Services.Protocols.SoapRpcServiceAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [AttributeUsage (AttributeTargets.Class)]
+ public sealed class SoapRpcServiceAttribute : Attribute {
+
+ #region Fields
+
+ SoapServiceRoutingStyle routingStyle;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapRpcServiceAttribute ()
+ {
+ routingStyle = SoapServiceRoutingStyle.SoapAction;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public SoapServiceRoutingStyle RoutingStyle {
+ get { return routingStyle; }
+ set { routingStyle = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerMessage.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerMessage.cs
new file mode 100644
index 00000000000..c36f79802ee
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerMessage.cs
@@ -0,0 +1,80 @@
+//
+// System.Web.Services.Protocols.SoapServerMessage.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public sealed class SoapServerMessage : SoapMessage {
+
+ #region Fields
+
+ string action;
+ LogicalMethodInfo methodInfo;
+ bool oneWay;
+ object server;
+ string url;
+ SoapServerProtocol protocol;
+
+ #endregion
+
+ #region Constructors
+
+ [MonoTODO ("Determine what this constructor does.")]
+ internal SoapServerMessage (SoapServerProtocol protocol)
+ {
+ }
+
+ #endregion
+
+ #region Properties
+
+ public override string Action {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public override LogicalMethodInfo MethodInfo {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public override bool OneWay {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public object Server {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public override string Url {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected override void EnsureInStage ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected override void EnsureOutStage ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerProtocol.cs
new file mode 100644
index 00000000000..2e48fef7243
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerProtocol.cs
@@ -0,0 +1,69 @@
+//
+// System.Web.Services.Protocols.SoapServerProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ [MonoTODO ("Figure out what this class does.")]
+ internal class SoapServerProtocol : ServerProtocol {
+
+ #region Fields
+
+ bool isOneWay;
+
+ #endregion // Fields
+
+ #region Properties
+
+ public override bool IsOneWay {
+ get { return isOneWay; }
+ }
+
+ [MonoTODO]
+ public override LogicalMethodInfo MethodInfo {
+ get { throw new NotImplementedException (); }
+ }
+
+ [MonoTODO]
+ public override Exception OnewayInitException {
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ public override bool Initialize ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object[] ReadParameters ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override bool WriteException (Exception e, Stream outputStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void WriteReturns (object[] returnValues, Stream outputStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServiceRoutingStyle.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServiceRoutingStyle.cs
new file mode 100644
index 00000000000..47a1762d1a6
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServiceRoutingStyle.cs
@@ -0,0 +1,16 @@
+//
+// System.Web.Services.Protocols.SoapServiceRoutingStyle.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services.Protocols {
+ [Serializable]
+ public enum SoapServiceRoutingStyle {
+ SoapAction = 0x0,
+ RequestElement = 0x1
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapUnknownHeader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapUnknownHeader.cs
new file mode 100644
index 00000000000..4b46412c1cf
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapUnknownHeader.cs
@@ -0,0 +1,41 @@
+//
+// System.Web.Services.Protocols.SoapUnknownHeader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace System.Web.Services.Protocols {
+ public sealed class SoapUnknownHeader : SoapHeader {
+
+ #region Fields
+
+ XmlElement element;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public SoapUnknownHeader ()
+ {
+ element = null;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [XmlIgnore]
+ public XmlElement Element {
+ get { return element; }
+ set { element = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/TextReturnReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/TextReturnReader.cs
new file mode 100644
index 00000000000..3c42b93ec3f
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/TextReturnReader.cs
@@ -0,0 +1,46 @@
+//
+// System.Web.Services.Protocols.TextReturnReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+
+namespace System.Web.Services.Protocols {
+ public class TextReturnReader : MimeReturnReader {
+
+ #region Constructors
+
+ public TextReturnReader ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object o)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object Read (WebResponse response, Stream responseStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlEncodedParameterWriter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlEncodedParameterWriter.cs
new file mode 100644
index 00000000000..2f35bd155b3
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlEncodedParameterWriter.cs
@@ -0,0 +1,66 @@
+//
+// System.Web.Services.Protocols.UrlEncodedParameterWriter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Text;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class UrlEncodedParameterWriter : MimeParameterWriter {
+
+ #region Constructors
+
+ [MonoTODO]
+ protected UrlEncodedParameterWriter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override Encoding RequestEncoding {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ [MonoTODO]
+ set { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ [MonoTODO]
+ protected void Encode (TextWriter writer, object[] values)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected void Encode (TextWriter writer, string name, object value)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object initializer)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterReader.cs
new file mode 100644
index 00000000000..09012b0a353
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterReader.cs
@@ -0,0 +1,36 @@
+//
+// System.Web.Services.Protocols.UrlParameterReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class UrlParameterReader : ValueCollectionParameterReader {
+
+ #region Constructors
+
+ [MonoTODO]
+ public UrlParameterReader ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object[] Read (HttpRequest request)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterWriter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterWriter.cs
new file mode 100644
index 00000000000..a5575c97b48
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/UrlParameterWriter.cs
@@ -0,0 +1,35 @@
+//
+// System.Web.Services.Protocols.UrlParameterWriter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class UrlParameterWriter : UrlEncodedParameterWriter {
+
+ #region Constructors
+
+ [MonoTODO]
+ public UrlParameterWriter ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override string GetRequestUrl (string url, object[] parameters)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ValueCollectionParameterReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ValueCollectionParameterReader.cs
new file mode 100644
index 00000000000..e01e11f01b0
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ValueCollectionParameterReader.cs
@@ -0,0 +1,61 @@
+//
+// System.Web.Services.Protocols.ValueCollectionParameterReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections.Specialized;
+using System.Reflection;
+using System.Web;
+
+namespace System.Web.Services.Protocols {
+ public abstract class ValueCollectionParameterReader : MimeParameterReader {
+
+ #region Constructors
+
+ [MonoTODO]
+ protected ValueCollectionParameterReader ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object o)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static bool IsSupported (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static bool IsSupported (ParameterInfo paramInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected object[] Read (NameValueCollection collection)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientAsyncResult.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientAsyncResult.cs
new file mode 100644
index 00000000000..0102fb93ce5
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientAsyncResult.cs
@@ -0,0 +1,71 @@
+//
+// System.Web.Services.Protocols.WebClientAsyncResult.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Net;
+using System.Threading;
+
+namespace System.Web.Services.Protocols {
+ public class WebClientAsyncResult : IAsyncResult {
+
+ #region Fields
+
+ WaitHandle waitHandle;
+
+ WebClientProtocol protocol;
+ WebRequest request;
+ AsyncCallback callback;
+ object asyncState;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO ("Figure out what this does.")]
+ internal WebClientAsyncResult (WebClientProtocol protocol, object x, WebRequest request, AsyncCallback callback, object asyncState, int y)
+ {
+ this.protocol = protocol;
+ this.request = request;
+ this.callback = callback;
+ this.asyncState = asyncState;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public object AsyncState {
+ get { return asyncState; }
+ }
+
+ public WaitHandle AsyncWaitHandle {
+ get { return waitHandle; }
+ }
+
+ public bool CompletedSynchronously {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ public bool IsCompleted {
+ [MonoTODO]
+ get { throw new NotImplementedException (); }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public void Abort ()
+ {
+ request.Abort ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientProtocol.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientProtocol.cs
new file mode 100644
index 00000000000..6a861ee790c
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebClientProtocol.cs
@@ -0,0 +1,140 @@
+//
+// System.Web.Services.Protocols.WebClientProtocol.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Collections.Specialized;
+using System.ComponentModel;
+using System.Net;
+using System.Text;
+using System.Threading;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public abstract class WebClientProtocol : Component {
+
+ #region Fields
+
+ string connectionGroupName;
+ ICredentials credentials;
+ bool preAuthenticate;
+ Encoding requestEncoding;
+ int timeout;
+ string url;
+ bool abort;
+ static HybridDictionary cache;
+
+ #endregion
+
+ #region Constructors
+
+ static WebClientProtocol ()
+ {
+ cache = new HybridDictionary ();
+ }
+
+ protected WebClientProtocol ()
+ {
+ connectionGroupName = String.Empty;
+ credentials = null;
+ preAuthenticate = false;
+ requestEncoding = null;
+ timeout = 100000;
+ url = String.Empty;
+ abort = false;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [DefaultValue ("")]
+ public string ConnectionGroupName {
+ get { return connectionGroupName; }
+ set { connectionGroupName = value; }
+ }
+
+ public ICredentials Credentials {
+ get { return credentials; }
+ set { credentials = value; }
+ }
+
+ [DefaultValue (false)]
+ [WebServicesDescription ("Enables pre authentication of the request.")]
+ public bool PreAuthenticate {
+ get { return preAuthenticate; }
+ set { preAuthenticate = value; }
+ }
+
+ [DefaultValue ("")]
+ [RecommendedAsConfigurable (true)]
+ [WebServicesDescription ("The encoding to use for requests.")]
+ public Encoding RequestEncoding {
+ get { return requestEncoding; }
+ set { requestEncoding = value; }
+ }
+
+ [DefaultValue (100000)]
+ [RecommendedAsConfigurable (true)]
+ [WebServicesDescription ("Sets the timeout in milliseconds to be used for synchronous calls. The default of -1 means infinite.")]
+ public int Timeout {
+ get { return timeout; }
+ set { timeout = value; }
+ }
+
+ [DefaultValue ("")]
+ [RecommendedAsConfigurable (true)]
+ [WebServicesDescription ("The base URL to the server to use for requests.")]
+ public string Url {
+ get { return url; }
+ set { url = value; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ public virtual void Abort ()
+ {
+ abort = true;
+ }
+
+ protected static void AddToCache (Type type, object value)
+ {
+ cache [type] = value;
+ }
+
+ protected static object GetFromCache (Type type)
+ {
+ return cache [type];
+ }
+
+ protected virtual WebRequest GetWebRequest (Uri uri)
+ {
+ return WebRequest.Create (uri);
+ }
+
+ protected virtual WebResponse GetWebResponse (WebRequest request)
+ {
+ if (abort)
+ throw new WebException ("The operation has been aborted.", WebExceptionStatus.RequestCanceled);
+ return request.GetResponse ();
+ }
+
+ protected virtual WebResponse GetWebResponse (WebRequest request, IAsyncResult result)
+ {
+ if (abort)
+ throw new WebException ("The operation has been aborted.", WebExceptionStatus.RequestCanceled);
+
+ IAsyncResult ar = request.BeginGetResponse (null, null);
+ ar.AsyncWaitHandle.WaitOne ();
+ return request.EndGetResponse (result);
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs
new file mode 100644
index 00000000000..43357a41155
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandler.cs
@@ -0,0 +1,69 @@
+//
+// System.Web.Services.Protocols.WebServiceHandler.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ internal class WebServiceHandler {
+
+ #region Fields
+
+ ServerProtocol protocol;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ [MonoTODO]
+ public WebServiceHandler (ServerProtocol protocol)
+ {
+ this.protocol = protocol;
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ protected IAsyncResult BeginCoreProcessRequest (AsyncCallback callback, object o)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected void CoreProcessRequest ()
+ {
+ Invoke ();
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ protected void EndCoreProcessRequest (IAsyncResult result)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ private void Invoke ()
+ {
+ //WriteReturns (returnValues);
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ private void WriteReturns (object[] returnValues)
+ {
+ //protocol.WriteReturns (returnValues, outputStream);
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandlerFactory.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandlerFactory.cs
new file mode 100644
index 00000000000..9e77e56dcc3
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandlerFactory.cs
@@ -0,0 +1,41 @@
+//
+// System.Web.Services.Protocols.WebServiceHandlerFactory.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class WebServiceHandlerFactory : IHttpHandlerFactory {
+
+ #region Constructors
+
+ [MonoTODO]
+ public WebServiceHandlerFactory ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public IHttpHandler GetHandler (HttpContext context, string verb, string url, string filePath)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public void ReleaseHandler (IHttpHandler handler)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnReader.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnReader.cs
new file mode 100644
index 00000000000..adf27eafa98
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnReader.cs
@@ -0,0 +1,53 @@
+//
+// System.Web.Services.Protocols.XmlReturnReader.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Net;
+using System.Web.Services;
+
+namespace System.Web.Services.Protocols {
+ public class XmlReturnReader : MimeReturnReader {
+
+ #region Constructors
+
+ public XmlReturnReader ()
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Methods
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object[] GetInitializers (LogicalMethodInfo[] methodInfos)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object o)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object Read (WebResponse response, Stream responseStream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnWriter.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnWriter.cs
new file mode 100644
index 00000000000..35cb22b16cd
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/XmlReturnWriter.cs
@@ -0,0 +1,45 @@
+//
+// System.Web.Services.Protocols.XmlReturnWriter.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.IO;
+using System.Web;
+
+namespace System.Web.Services.Protocols {
+ internal class XmlReturnWriter : MimeReturnWriter {
+
+ #region Methods
+
+ [MonoTODO]
+ public override object GetInitializer (LogicalMethodInfo methodInfo)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override object[] GetInitializers (LogicalMethodInfo[] methodInfos)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Initialize (object initializer)
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public override void Write (HttpResponse response, Stream outputStream, object returnValue)
+ {
+ //serializer.Serialize (textWriter, o)
+ throw new NotImplementedException ();
+ }
+
+ #endregion // Methods
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services.build b/mcs/class/System.Web.Services/System.Web.Services.build
new file mode 100644
index 00000000000..f6d40dbc008
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services.build
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- NAnt build file for System.Web.Services.dll -->
+
+<project name="System" default="build">
+ <property name="debug" value="false"/>
+
+ <target name="build">
+ <mkdir dir="../lib"/>
+ <csc target="library" output="../lib/System.Web.Services.dll" debug="${debug}">
+ <arg value="/nowarn:1595"/>
+ <arg value="/nowarn:0169"/>
+ <arg value="/nowarn:0649"/> <!-- always default value -->
+ <arg value="/nowarn:0067"/> <!-- event never used -->
+ <arg value="/nowarn:0679"/> <!-- internal virual -->
+ <arg value="/nowarn:0168"/> <!-- never used variable -->
+ <arg value="/nowarn:0162"/> <!-- unreachable code -->
+ <arg value="/unsafe"/>
+ <arg value="/noconfig"/>
+ <arg value="/debug"/>
+ <arg value="/r:System.dll"/>
+ <arg value="/r:System.EnterpriseServices.dll"/>
+ <arg value="/r:System.Xml.dll"/>
+ <arg value="/r:System.Web.dll"/>
+ <sources>
+ <includes name="**/*.cs"/>
+ <excludes name="Test/**"/>
+ </sources>
+ </csc>
+ </target>
+ <target name="test" depends="build">
+ <nant basedir="Test" target="test"/>
+ </target>
+ <target name="clean">
+ <nant basedir="Test" target="clean"/>
+ <delete file="../lib/System.Web.Services.dll" failonerror="false"/>
+ </target>
+</project>
diff --git a/mcs/class/System.Web.Services/System.Web.Services/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services/ChangeLog
new file mode 100644
index 00000000000..d4b9db79fc3
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/ChangeLog
@@ -0,0 +1,67 @@
+2002-08-19 Tim Coleman <tim@timcoleman.com>
+ * WebService.cs:
+ Change the attribute on Application to Description
+ instead of WebServicesDescription.2002-08-19 Tim Coleman
+
+2002-08-15 Tim Coleman <tim@timcoleman.com>
+ * WebServicesDescriptionAttribute:
+ Added Description property. Should've known I spoke
+ too soon about being complete. :-)
+
+2002-08-07 Tim Coleman <tim@timcoleman.com>
+ * WebMethodAttribute.cs:
+ Remove FIXME and reorganize constructors to all
+ call this () with the big constructor.
+ * WebServiceAttribute.cs:
+ Remove FIXME.
+ * WebServiceBindingAttribute.cs:
+ Remove FIXME, and change ns to be String.Empty by
+ default (this is the MS implementation). Reorganize
+ constructors.
+ * WebServicesDescriptionAttribute.cs:
+ Code reformat.
+ * TODOAttribute.cs:
+ Changed namespace.
+
+ *** This namespace should now be complete. ***
+
+2002-07-23 Tim Coleman <tim@timcoleman.com>
+ * WebService.cs:
+ Change Description to WebServicesDescription
+ * WebServicesDescriptionAttribute.cs:
+ Add back constructor as MS build doesn't
+ seem to like it missing. Now calls base()
+ with the string. Also remove the sealed
+ modifier and change the attribute targets.
+
+2002-07-23 Tim Coleman <tim@timcoleman.com>
+ * WebServicesDescriptionAttribute.cs:
+ Removed the "guts" because they are defined in
+ System.ComponentModel.DescriptionAttribute.
+ * WebService.cs:
+ Added attributes which were missing based on the
+ class status page. Also added an HttpApplication
+ object and modified the properties to use that
+ object.
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * WebServicesDescriptionAttribute.cs:
+ Added for build in System.Web.Services.Protocols
+
+2002-07-22 Tim Coleman <tim@timcoleman.com>
+ * WebMethodAttribute.cs:
+ Remove comments around TransactionOption bits
+ because I added that enum.
+ * WebServiceAttribute.cs:
+ * WebServiceBindingAttribute.cs:
+ Added "sealed" to protection level, which I missed
+ before.
+
+2002-07-19 Tim Coleman <tim@timcoleman.com>
+ * ChangeLog:
+ * TODOAttribute.cs:
+ * WebMethodAttribute.cs:
+ * WebService.cs:
+ * WebServiceAttribute.cs:
+ * WebServiceBindingAttribute.cs:
+ Initial implementation
diff --git a/mcs/class/System.Web.Services/System.Web.Services/TODOAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services/TODOAttribute.cs
new file mode 100644
index 00000000000..88348c96610
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/TODOAttribute.cs
@@ -0,0 +1,32 @@
+//
+// TODOAttribute.cs
+//
+// Author:
+// Ravi Pratap (ravi@ximian.com)
+//
+// (C) Ximian, Inc. http://www.ximian.com
+//
+
+namespace System.Web.Services {
+
+ /// <summary>
+ /// The TODO attribute is used to flag all incomplete bits in our class libraries
+ /// </summary>
+ ///
+ /// <remarks>
+ /// Use this to decorate any element which you think is not complete
+ /// </remarks>
+ [AttributeUsage (AttributeTargets.All)]
+ internal class MonoTODOAttribute : Attribute {
+
+ string comment;
+
+ public MonoTODOAttribute ()
+ {}
+
+ public MonoTODOAttribute (string comment)
+ {
+ this.comment = comment;
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services/WebMethodAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services/WebMethodAttribute.cs
new file mode 100644
index 00000000000..c216715dcec
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/WebMethodAttribute.cs
@@ -0,0 +1,96 @@
+ //
+// System.Web.Services.WebMethodAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.EnterpriseServices;
+
+namespace System.Web.Services {
+ [AttributeUsage(AttributeTargets.Method)]
+ public sealed class WebMethodAttribute : Attribute {
+
+ #region Fields
+
+ bool bufferResponse;
+ int cacheDuration;
+ string description;
+ bool enableSession;
+ string messageName;
+ TransactionOption transactionOption;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public WebMethodAttribute ()
+ : this (false, TransactionOption.Disabled, 0, true)
+ {
+ }
+
+ public WebMethodAttribute (bool enableSession)
+ : this (enableSession, TransactionOption.Disabled, 0, true)
+ {
+ }
+
+ public WebMethodAttribute (bool enableSession, TransactionOption transactionOption)
+ : this (enableSession, transactionOption, 0, true)
+ {
+ }
+
+ public WebMethodAttribute (bool enableSession, TransactionOption transactionOption, int cacheDuration)
+ : this (enableSession, transactionOption, cacheDuration, true)
+ {
+ }
+
+ public WebMethodAttribute (bool enableSession, TransactionOption transactionOption, int cacheDuration, bool bufferResponse)
+ {
+ this.bufferResponse = bufferResponse;
+ this.cacheDuration = cacheDuration;
+ this.enableSession = enableSession;
+ this.transactionOption = transactionOption;
+
+ this.description = String.Empty;
+ this.messageName = String.Empty;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public bool BufferResponse {
+ get { return bufferResponse; }
+ set { bufferResponse = value; }
+ }
+
+ public int CacheDuration {
+ get { return cacheDuration; }
+ set { cacheDuration = value; }
+ }
+
+ public string Description {
+ get { return description; }
+ set { description = value; }
+ }
+
+ public bool EnableSession {
+ get { return enableSession; }
+ set { enableSession = value; }
+ }
+
+ public string MessageName {
+ get { return messageName; }
+ set { messageName = value; }
+ }
+
+ public TransactionOption TransactionOption {
+ get { return transactionOption; }
+ set { transactionOption = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services/WebService.cs b/mcs/class/System.Web.Services/System.Web.Services/WebService.cs
new file mode 100644
index 00000000000..bd2c5598d63
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/WebService.cs
@@ -0,0 +1,72 @@
+ //
+// System.Web.Services.WebService.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+using System.Security.Principal;
+using System.Web;
+using System.Web.SessionState;
+
+namespace System.Web.Services {
+ public class WebService : MarshalByValueComponent {
+
+ #region Fields
+
+ HttpApplication application;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public WebService ()
+ {
+ application = new HttpApplication ();
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ [Browsable (false)]
+ [Description ("The ASP.NET application object for the current request.")]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ public HttpApplicationState Application {
+ get { return application.Application; }
+ }
+
+ [Browsable (false)]
+ [WebServicesDescription ("The ASP.NET context object for the current request.")]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ public HttpContext Context {
+ get { return application.Context; }
+ }
+
+ [Browsable (false)]
+ [WebServicesDescription ("The ASP.NET utility object for the current request.")]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ public HttpServerUtility Server {
+ get { return application.Server; }
+ }
+
+ [Browsable (false)]
+ [WebServicesDescription ("The ASP.NET session object for the current request.")]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ public HttpSessionState Session {
+ get { return application.Session; }
+ }
+
+ [Browsable (false)]
+ [WebServicesDescription ("The ASP.NET user object for the current request. The object is used for authorization.")]
+ [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+ public IPrincipal User {
+ get { return application.User; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services/WebServiceAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services/WebServiceAttribute.cs
new file mode 100644
index 00000000000..eb50b0c6116
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/WebServiceAttribute.cs
@@ -0,0 +1,54 @@
+ //
+// System.Web.Services.WebServiceAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services {
+ [AttributeUsage (AttributeTargets.Class)]
+ public sealed class WebServiceAttribute : Attribute {
+
+ #region Fields
+
+ public const string DefaultNamespace = "http://tempuri.org/";
+ string description;
+ string name;
+ string ns;
+
+ #endregion // Fields
+
+ #region Constructors
+
+
+ public WebServiceAttribute ()
+ {
+ description = String.Empty;
+ name = String.Empty;
+ ns = DefaultNamespace;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string Description {
+ get { return description; }
+ set { description = value; }
+ }
+
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services/WebServiceBindingAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services/WebServiceBindingAttribute.cs
new file mode 100644
index 00000000000..6ea242eb3de
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/WebServiceBindingAttribute.cs
@@ -0,0 +1,67 @@
+ //
+// System.Web.Services.WebServiceBindingAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+namespace System.Web.Services {
+ [AttributeUsage(AttributeTargets.Class)]
+ public sealed class WebServiceBindingAttribute : Attribute {
+
+ #region Fields
+
+ string location;
+ string name;
+ string ns;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ public WebServiceBindingAttribute ()
+ : this (String.Empty, String.Empty, String.Empty)
+ {
+ }
+
+ public WebServiceBindingAttribute (string name)
+ : this (name, String.Empty, String.Empty)
+ {
+ }
+
+ public WebServiceBindingAttribute (string name, string ns)
+ : this (name, ns, String.Empty)
+ {
+ }
+
+ public WebServiceBindingAttribute (string name, string ns, string location)
+ {
+ this.name = name;
+ this.ns = ns;
+ this.location = location;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public string Location {
+ get { return location; }
+ set { location = value; }
+ }
+
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public string Namespace {
+ get { return ns; }
+ set { ns = value; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/System.Web.Services/WebServicesDescriptionAttribute.cs b/mcs/class/System.Web.Services/System.Web.Services/WebServicesDescriptionAttribute.cs
new file mode 100644
index 00000000000..84905edc486
--- /dev/null
+++ b/mcs/class/System.Web.Services/System.Web.Services/WebServicesDescriptionAttribute.cs
@@ -0,0 +1,33 @@
+//
+// System.Web.Services.WebServicesDescriptionAttribute.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using System.ComponentModel;
+
+namespace System.Web.Services {
+ [AttributeUsage (AttributeTargets.Property | AttributeTargets.Event)]
+ internal class WebServicesDescriptionAttribute : DescriptionAttribute {
+
+ #region Constructors
+
+ public WebServicesDescriptionAttribute (string description)
+ : base (description)
+ {
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ public override string Description {
+ get { return DescriptionValue; }
+ }
+
+ #endregion // Properties
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/.cvsignore b/mcs/class/System.Web.Services/Test/.cvsignore
new file mode 100644
index 00000000000..6a7461313bb
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/.cvsignore
@@ -0,0 +1 @@
+*.dll
diff --git a/mcs/class/System.Web.Services/Test/AllTests.cs b/mcs/class/System.Web.Services/Test/AllTests.cs
new file mode 100644
index 00000000000..9a3c8081da6
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/AllTests.cs
@@ -0,0 +1,24 @@
+// MonoTests.AllTests, System.Web.Services.dll
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+
+using NUnit.Framework;
+
+namespace MonoTests {
+ public class AllTests : TestCase {
+ public AllTests (string name) : base (name) {}
+
+ public static ITest Suite {
+ get {
+ TestSuite suite = new TestSuite ();
+ suite.AddTest (System.Web.Services.AllTests.Suite);
+ suite.AddTest (System.Web.Services.Configuration.AllTests.Suite);
+ suite.AddTest (System.Web.Services.Discovery.AllTests.Suite);
+ return suite;
+ }
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/ChangeLog b/mcs/class/System.Web.Services/Test/ChangeLog
new file mode 100644
index 00000000000..b4524c71d10
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/ChangeLog
@@ -0,0 +1,10 @@
+2002-08-09 Tim Coleman <tim@timcoleman.com>
+ * AllTests.cs:
+ New test suites added.
+
+2002-08-07 Tim Coleman <tim@timcoleman.com>
+ * AllTests.cs:
+ * ChangeLog:
+ * System.Web.Services:
+ * System.Web.Services_test.build:
+ New files and directories added for test suite.
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/AllTests.cs b/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/AllTests.cs
new file mode 100644
index 00000000000..f3446f66ed1
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/AllTests.cs
@@ -0,0 +1,22 @@
+// MonoTests.System.Web.Services.Configuration.AllTests, System.Web.Services.dll
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Web.Services.Configuration {
+ public class AllTests : TestCase {
+ public AllTests (string name) : base (name) {}
+
+ public static ITest Suite {
+ get {
+ TestSuite suite = new TestSuite ();
+ suite.AddTest (XmlFormatExtensionAttributeTest.Suite);
+ return suite;
+ }
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/ChangeLog b/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/ChangeLog
new file mode 100644
index 00000000000..d5a0ded96ed
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/ChangeLog
@@ -0,0 +1,5 @@
+2002-08-09 Tim Coleman <tim@timcoleman.com>
+ * AllTests.cs:
+ * ChangeLog:
+ * XmlFormatExtensionAttributeTest.cs:
+ New files added for test suite.
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs b/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs
new file mode 100644
index 00000000000..f0abcb24ad5
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Configuration/XmlFormatExtensionAttributeTest.cs
@@ -0,0 +1,80 @@
+//
+// MonoTests.System.Web.Services.Configuration.XmlFormatExtensionAttributeTest.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using NUnit.Framework;
+using System;
+using System.Web.Services.Configuration;
+using System.Web.Services.Description;
+
+namespace MonoTests.System.Web.Services.Configuration {
+
+ public class XmlFormatExtensionAttributeTest : TestCase {
+
+ public XmlFormatExtensionAttributeTest () :
+ base ("[MonoTests.System.Web.Services.Configuration.XmlFormatExtensionAttributeTest]")
+ {
+ }
+
+ public XmlFormatExtensionAttributeTest (string name) :
+ base (name)
+ {
+ }
+
+ protected override void SetUp ()
+ {
+ }
+
+ protected override void TearDown ()
+ {
+ }
+
+ public static ITest Suite {
+ get { return new TestSuite (typeof (XmlFormatExtensionAttributeTest)); }
+ }
+
+ public void TestConstructors ()
+ {
+ XmlFormatExtensionAttribute attribute;
+
+ attribute = new XmlFormatExtensionAttribute ();
+ AssertEquals (String.Empty, attribute.ElementName);
+ AssertEquals (null, attribute.ExtensionPoints);
+ AssertEquals (String.Empty, attribute.Namespace);
+
+ string elementName = "binding";
+ string ns = "http://schemas.xmlsoap.org/wsdl/http/";
+ Type[] types = new Type[4] {typeof (Binding), typeof (Binding), typeof (Binding), typeof (Binding)};
+
+ attribute = new XmlFormatExtensionAttribute (elementName, ns, types[0]);
+ AssertEquals (elementName, attribute.ElementName);
+ AssertEquals (new Type[1] {types[0]}, attribute.ExtensionPoints);
+ AssertEquals (ns, attribute.Namespace);
+
+ attribute = new XmlFormatExtensionAttribute (elementName, ns, types[0], types[1]);
+ AssertEquals (elementName, attribute.ElementName);
+ AssertEquals (new Type[2] {types[0], types[1]}, attribute.ExtensionPoints);
+ AssertEquals (ns, attribute.Namespace);
+
+ attribute = new XmlFormatExtensionAttribute (elementName, ns, types[0], types[1], types[2]);
+ AssertEquals (elementName, attribute.ElementName);
+ AssertEquals (new Type[3] {types[0], types[1], types[2]}, attribute.ExtensionPoints);
+ AssertEquals (ns, attribute.Namespace);
+
+ attribute = new XmlFormatExtensionAttribute (elementName, ns, types[0], types[1], types[2], types[3]);
+ AssertEquals (elementName, attribute.ElementName);
+ AssertEquals (new Type[4] {types[0], types[1], types[2], types[3]}, attribute.ExtensionPoints);
+ AssertEquals (ns, attribute.Namespace);
+
+ attribute = new XmlFormatExtensionAttribute (elementName, ns, types);
+ AssertEquals (elementName, attribute.ElementName);
+ AssertEquals (types, attribute.ExtensionPoints);
+ AssertEquals (ns, attribute.Namespace);
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/AllTests.cs b/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/AllTests.cs
new file mode 100644
index 00000000000..40f2594a838
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/AllTests.cs
@@ -0,0 +1,22 @@
+// MonoTests.System.Web.Services.Discovery.AllTests, System.Web.Services.dll
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Web.Services.Discovery {
+ public class AllTests : TestCase {
+ public AllTests (string name) : base (name) {}
+
+ public static ITest Suite {
+ get {
+ TestSuite suite = new TestSuite ();
+ suite.AddTest (ContractReferenceTest.Suite);
+ return suite;
+ }
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ChangeLog b/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ChangeLog
new file mode 100644
index 00000000000..2f04b932891
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ChangeLog
@@ -0,0 +1,5 @@
+2002-08-09 Tim Coleman <tim@timcoleman.com>
+ * AllTests.cs:
+ * ChangeLog:
+ * ContractReferenceTest.cs:
+ New files added for test suite.
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ContractReferenceTest.cs b/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ContractReferenceTest.cs
new file mode 100644
index 00000000000..b45b89f7578
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Discovery/ContractReferenceTest.cs
@@ -0,0 +1,55 @@
+//
+// MonoTests.System.Web.Services.Discovery.ContractReferenceTest.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using NUnit.Framework;
+using System;
+using System.Web.Services.Discovery;
+
+namespace MonoTests.System.Web.Services.Discovery {
+
+ public class ContractReferenceTest : TestCase {
+
+ public ContractReferenceTest () :
+ base ("[MonoTests.System.Web.Services.Discovery.ContractReferenceTest]")
+ {
+ }
+
+ public ContractReferenceTest (string name) :
+ base (name)
+ {
+ }
+
+ protected override void SetUp ()
+ {
+ }
+
+ protected override void TearDown ()
+ {
+ }
+
+ public static ITest Suite {
+ get { return new TestSuite (typeof (ContractReferenceTest)); }
+ }
+
+ public void TestConstructors ()
+ {
+ ContractReference contractReference;
+
+ contractReference = new ContractReference ();
+ AssertEquals (String.Empty, contractReference.DocRef);
+ AssertEquals (String.Empty, contractReference.Ref);
+ AssertEquals (String.Empty, contractReference.Url);
+ }
+
+ public void TestConstants ()
+ {
+ AssertEquals ("http://schemas.xmlsoap.org/disco/scl/", ContractReference.Namespace);
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services/AllTests.cs b/mcs/class/System.Web.Services/Test/System.Web.Services/AllTests.cs
new file mode 100644
index 00000000000..625b6e62818
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services/AllTests.cs
@@ -0,0 +1,23 @@
+// MonoTests.System.Web.Services.AllTests, System.Web.Services.dll
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Web.Services {
+ public class AllTests : TestCase {
+ public AllTests (string name) : base (name) {}
+
+ public static ITest Suite {
+ get {
+ TestSuite suite = new TestSuite ();
+ suite.AddTest (WebMethodAttributeTest.Suite);
+ suite.AddTest (WebServiceAttributeTest.Suite);
+ return suite;
+ }
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services/ChangeLog b/mcs/class/System.Web.Services/Test/System.Web.Services/ChangeLog
new file mode 100644
index 00000000000..17f6b9b74fd
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services/ChangeLog
@@ -0,0 +1,6 @@
+2002-08-07 Tim Coleman <tim@timcoleman.com>
+ * AllTests.cs:
+ * ChangeLog:
+ * WebMethodAttributeTest.cs:
+ * WebServiceAttributeTest.cs:
+ New files and directories added for test suite.
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services/WebMethodAttributeTest.cs b/mcs/class/System.Web.Services/Test/System.Web.Services/WebMethodAttributeTest.cs
new file mode 100644
index 00000000000..ad9dddad912
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services/WebMethodAttributeTest.cs
@@ -0,0 +1,54 @@
+//
+// MonoTests.System.Web.Services.WebMethodAttributeTest.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using NUnit.Framework;
+using System;
+using System.Web.Services;
+using System.EnterpriseServices;
+
+namespace MonoTests.System.Web.Services {
+
+ public class WebMethodAttributeTest : TestCase {
+
+ public WebMethodAttributeTest () :
+ base ("[MonoTests.System.Web.Services.WebMethodAttributeTest]")
+ {
+ }
+
+ public WebMethodAttributeTest (string name) :
+ base (name)
+ {
+ }
+
+ protected override void SetUp ()
+ {
+ }
+
+ protected override void TearDown ()
+ {
+ }
+
+ public static ITest Suite {
+ get { return new TestSuite (typeof (WebMethodAttributeTest)); }
+ }
+
+ public void TestConstructors ()
+ {
+ WebMethodAttribute attribute;
+
+ attribute = new WebMethodAttribute ();
+ AssertEquals (true, attribute.BufferResponse);
+ AssertEquals (0, attribute.CacheDuration);
+ AssertEquals (String.Empty, attribute.Description);
+ AssertEquals (false, attribute.EnableSession);
+ AssertEquals (String.Empty, attribute.MessageName);
+ AssertEquals (TransactionOption.Disabled, attribute.TransactionOption);
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services/WebServiceAttributeTest.cs b/mcs/class/System.Web.Services/Test/System.Web.Services/WebServiceAttributeTest.cs
new file mode 100644
index 00000000000..6979fae6214
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services/WebServiceAttributeTest.cs
@@ -0,0 +1,50 @@
+//
+// MonoTests.System.Web.Services.WebServiceAttributeTest.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+using NUnit.Framework;
+using System;
+using System.Web.Services;
+
+namespace MonoTests.System.Web.Services {
+
+ public class WebServiceAttributeTest : TestCase {
+
+ public WebServiceAttributeTest () :
+ base ("[MonoTests.System.Web.Services.WebServiceAttributeTest]")
+ {
+ }
+
+ public WebServiceAttributeTest (string name) :
+ base (name)
+ {
+ }
+
+ protected override void SetUp ()
+ {
+ }
+
+ protected override void TearDown ()
+ {
+ }
+
+ public static ITest Suite {
+ get { return new TestSuite (typeof (WebServiceAttributeTest)); }
+ }
+
+ public void TestConstructors ()
+ {
+ WebServiceAttribute attribute;
+
+ attribute = new WebServiceAttribute ();
+ AssertEquals (String.Empty, attribute.Description);
+ AssertEquals (String.Empty, attribute.Name);
+ AssertEquals ("http://tempuri.org/", attribute.Namespace);
+ }
+ }
+}
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services_test.build b/mcs/class/System.Web.Services/Test/System.Web.Services_test.build
new file mode 100644
index 00000000000..caffa2b496d
--- /dev/null
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services_test.build
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- NAnt build file for System.Web.Services_test.dll -->
+<!-- Target build (default) builds tests -->
+<!-- Target test runs tests -->
+
+<project name="System.Web.Services_test" default="build">
+ <property name="debug" value="false"/>
+ <property name="nunit_home" value="..\..\..\nunit"/>
+
+ <target name="build">
+ </target>
+
+ <target name="assemblies">
+ <csc target="library" output="System.Web.Services_test.dll" debug="${debug}">
+ <arg value="/nowarn:1595"/>
+ <sources>
+ <includes name="**/*.cs"/>
+ </sources>
+ <references basedir="..\..\..\nunit">
+ <includes name="NUnitCore.dll"/>
+ </references>
+ <arg value="/r:..\..\lib\System.Web.Services.dll"/>
+ </csc>
+ </target>
+
+ <target name="test" depends="assemblies">
+ <exec program="..\..\..\nunit\NUnitConsole" commandline="MonoTests.System.Web.Services.AllTests,System.Web.Services_test.dll" failonerror="false"/>
+ </target>
+
+ <target name="clean">
+ <delete file="System.Web.Services.dll" failonerror="false"/>
+ <delete file="System.Web.Services_test.dll" failonerror="false"/>
+ </target>
+</project>
diff --git a/mcs/class/System.Web.Services/list b/mcs/class/System.Web.Services/list
new file mode 100644
index 00000000000..5371d9fc94c
--- /dev/null
+++ b/mcs/class/System.Web.Services/list
@@ -0,0 +1,153 @@
+System.Web.Services/TODOAttribute.cs
+System.Web.Services/WebMethodAttribute.cs
+System.Web.Services/WebService.cs
+System.Web.Services/WebServiceAttribute.cs
+System.Web.Services/WebServiceBindingAttribute.cs
+System.Web.Services/WebServicesDescriptionAttribute.cs
+System.Web.Services.Configuration/XmlFormatExtensionAttribute.cs
+System.Web.Services.Configuration/XmlFormatExtensionPointAttribute.cs
+System.Web.Services.Configuration/XmlFormatExtensionPrefixAttribute.cs
+System.Web.Services.Description/Binding.cs
+System.Web.Services.Description/BindingCollection.cs
+System.Web.Services.Description/DocumentableItem.cs
+System.Web.Services.Description/FaultBinding.cs
+System.Web.Services.Description/FaultBindingCollection.cs
+System.Web.Services.Description/HttpAddressBinding.cs
+System.Web.Services.Description/HttpBinding.cs
+System.Web.Services.Description/HttpOperationBinding.cs
+System.Web.Services.Description/HttpUrlEncodedBinding.cs
+System.Web.Services.Description/HttpUrlReplacementBinding.cs
+System.Web.Services.Description/Import.cs
+System.Web.Services.Description/ImportCollection.cs
+System.Web.Services.Description/InputBinding.cs
+System.Web.Services.Description/Message.cs
+System.Web.Services.Description/MessageBinding.cs
+System.Web.Services.Description/MessageCollection.cs
+System.Web.Services.Description/MessagePart.cs
+System.Web.Services.Description/MessagePartCollection.cs
+System.Web.Services.Description/MimeContentBinding.cs
+System.Web.Services.Description/MimeMultipartRelatedBinding.cs
+System.Web.Services.Description/MimePart.cs
+System.Web.Services.Description/MimePartCollection.cs
+System.Web.Services.Description/MimeTextBinding.cs
+System.Web.Services.Description/MimeTextMatch.cs
+System.Web.Services.Description/MimeTextMatchCollection.cs
+System.Web.Services.Description/MimeXmlBinding.cs
+System.Web.Services.Description/Operation.cs
+System.Web.Services.Description/OperationBinding.cs
+System.Web.Services.Description/OperationBindingCollection.cs
+System.Web.Services.Description/OperationCollection.cs
+System.Web.Services.Description/OperationFault.cs
+System.Web.Services.Description/OperationFaultCollection.cs
+System.Web.Services.Description/OperationFlow.cs
+System.Web.Services.Description/OperationInput.cs
+System.Web.Services.Description/OperationMessage.cs
+System.Web.Services.Description/OperationMessageCollection.cs
+System.Web.Services.Description/OperationOutput.cs
+System.Web.Services.Description/OutputBinding.cs
+System.Web.Services.Description/Port.cs
+System.Web.Services.Description/PortCollection.cs
+System.Web.Services.Description/PortType.cs
+System.Web.Services.Description/PortTypeCollection.cs
+System.Web.Services.Description/ProtocolImporter.cs
+System.Web.Services.Description/ProtocolReflector.cs
+System.Web.Services.Description/Service.cs
+System.Web.Services.Description/ServiceCollection.cs
+System.Web.Services.Description/ServiceDescription.cs
+System.Web.Services.Description/ServiceDescriptionBaseCollection.cs
+System.Web.Services.Description/ServiceDescriptionCollection.cs
+System.Web.Services.Description/ServiceDescriptionFormatExtension.cs
+System.Web.Services.Description/ServiceDescriptionFormatExtensionCollection.cs
+System.Web.Services.Description/ServiceDescriptionImportStyle.cs
+System.Web.Services.Description/ServiceDescriptionImportWarnings.cs
+System.Web.Services.Description/ServiceDescriptionImporter.cs
+System.Web.Services.Description/ServiceDescriptionReflector.cs
+System.Web.Services.Description/SoapAddressBinding.cs
+System.Web.Services.Description/SoapBinding.cs
+System.Web.Services.Description/SoapBindingStyle.cs
+System.Web.Services.Description/SoapBindingUse.cs
+System.Web.Services.Description/SoapBodyBinding.cs
+System.Web.Services.Description/SoapExtensionImporter.cs
+System.Web.Services.Description/SoapExtensionReflector.cs
+System.Web.Services.Description/SoapFaultBinding.cs
+System.Web.Services.Description/SoapHeaderBinding.cs
+System.Web.Services.Description/SoapOperationBinding.cs
+System.Web.Services.Description/SoapHeaderFaultBinding.cs
+System.Web.Services.Description/SoapProtocolImporter.cs
+System.Web.Services.Description/SoapProtocolReflector.cs
+System.Web.Services.Description/SoapTransportImporter.cs
+System.Web.Services.Description/Types.cs
+System.Web.Services.Protocols/AnyReturnReader.cs
+System.Web.Services.Protocols/HtmlFormParameterReader.cs
+System.Web.Services.Protocols/HtmlFormParameterWriter.cs
+System.Web.Services.Protocols/HttpGetClientProtocol.cs
+System.Web.Services.Protocols/HttpMethodAttribute.cs
+System.Web.Services.Protocols/HttpPostClientProtocol.cs
+System.Web.Services.Protocols/HttpServerProtocol.cs
+System.Web.Services.Protocols/HttpSimpleClientProtocol.cs
+System.Web.Services.Protocols/HttpWebClientProtocol.cs
+System.Web.Services.Protocols/LogicalMethodInfo.cs
+System.Web.Services.Protocols/LogicalMethodTypes.cs
+System.Web.Services.Protocols/MatchAttribute.cs
+System.Web.Services.Protocols/MimeFormatter.cs
+System.Web.Services.Protocols/MimeParameterReader.cs
+System.Web.Services.Protocols/MimeParameterWriter.cs
+System.Web.Services.Protocols/MimeReturnReader.cs
+System.Web.Services.Protocols/MimeReturnWriter.cs
+System.Web.Services.Protocols/NopReturnReader.cs
+System.Web.Services.Protocols/PatternMatcher.cs
+System.Web.Services.Protocols/ServerProtocol.cs
+System.Web.Services.Protocols/SoapClientMessage.cs
+System.Web.Services.Protocols/SoapClientMethod.cs
+System.Web.Services.Protocols/SoapDocumentMethodAttribute.cs
+System.Web.Services.Protocols/SoapDocumentServiceAttribute.cs
+System.Web.Services.Protocols/SoapException.cs
+System.Web.Services.Protocols/SoapExtension.cs
+System.Web.Services.Protocols/SoapExtensionAttribute.cs
+System.Web.Services.Protocols/SoapHeader.cs
+System.Web.Services.Protocols/SoapHeaderAttribute.cs
+System.Web.Services.Protocols/SoapHeaderCollection.cs
+System.Web.Services.Protocols/SoapHeaderDirection.cs
+System.Web.Services.Protocols/SoapHeaderException.cs
+System.Web.Services.Protocols/SoapHttpClientProtocol.cs
+System.Web.Services.Protocols/SoapMessage.cs
+System.Web.Services.Protocols/SoapMessageStage.cs
+System.Web.Services.Protocols/SoapParameterStyle.cs
+System.Web.Services.Protocols/SoapRpcMethodAttribute.cs
+System.Web.Services.Protocols/SoapRpcServiceAttribute.cs
+System.Web.Services.Protocols/SoapServerMessage.cs
+System.Web.Services.Protocols/SoapServerProtocol.cs
+System.Web.Services.Protocols/SoapServiceRoutingStyle.cs
+System.Web.Services.Protocols/SoapUnknownHeader.cs
+System.Web.Services.Protocols/TextReturnReader.cs
+System.Web.Services.Protocols/UrlEncodedParameterWriter.cs
+System.Web.Services.Protocols/UrlParameterReader.cs
+System.Web.Services.Protocols/UrlParameterWriter.cs
+System.Web.Services.Protocols/ValueCollectionParameterReader.cs
+System.Web.Services.Protocols/WebClientAsyncResult.cs
+System.Web.Services.Protocols/WebClientProtocol.cs
+System.Web.Services.Protocols/WebServiceHandler.cs
+System.Web.Services.Protocols/WebServiceHandlerFactory.cs
+System.Web.Services.Protocols/XmlReturnReader.cs
+System.Web.Services.Protocols/XmlReturnWriter.cs
+System.Web.Services.Discovery/ContractReference.cs
+System.Web.Services.Discovery/ContractSearchPattern.cs
+System.Web.Services.Discovery/DiscoveryClientDocumentCollection.cs
+System.Web.Services.Discovery/DiscoveryClientProtocol.cs
+System.Web.Services.Discovery/DiscoveryClientReferenceCollection.cs
+System.Web.Services.Discovery/DiscoveryClientResultCollection.cs
+System.Web.Services.Discovery/DiscoveryClientResult.cs
+System.Web.Services.Discovery/DiscoveryDocument.cs
+System.Web.Services.Discovery/DiscoveryDocumentLinksPattern.cs
+System.Web.Services.Discovery/DiscoveryDocumentReference.cs
+System.Web.Services.Discovery/DiscoveryDocumentSearchPattern.cs
+System.Web.Services.Discovery/DiscoveryExceptionDictionary.cs
+System.Web.Services.Discovery/DiscoveryReferenceCollection.cs
+System.Web.Services.Discovery/DiscoveryReference.cs
+System.Web.Services.Discovery/DiscoveryRequestHandler.cs
+System.Web.Services.Discovery/DiscoverySearchPattern.cs
+System.Web.Services.Discovery/DynamicDiscoveryDocument.cs
+System.Web.Services.Discovery/ExcludePathInfo.cs
+System.Web.Services.Discovery/SchemaReference.cs
+System.Web.Services.Discovery/SoapBinding.cs
+System.Web.Services.Discovery/XmlSchemaSearchPattern.cs
diff --git a/mcs/class/System.Web.Services/makefile.gnu b/mcs/class/System.Web.Services/makefile.gnu
new file mode 100644
index 00000000000..bd938f6a722
--- /dev/null
+++ b/mcs/class/System.Web.Services/makefile.gnu
@@ -0,0 +1,13 @@
+topdir = ../..
+
+LIBRARY = $(topdir)/class/lib/System.Web.Services.dll
+
+LIB_LIST = list
+LIB_FLAGS = -r corlib -r System.Xml -r System.EnterpriseServices -r System.Web -r System
+
+SOURCES_INCLUDE=*.cs
+SOURCES_EXCLUDE=./Test*
+
+export MONO_PATH_PREFIX = $(topdir)/class/lib:
+
+include $(topdir)/class/library.make