codeUnit.Namespaces.Add (proxyCode);\r
\r
WebReferenceCollection references = new WebReferenceCollection ();\r
- foreach (string url in urls) \r
+ foreach (string murl in urls) \r
{\r
DiscoveryClientProtocol dcc = CreateClient ();\r
- \r
+\r
+ string url = murl;\r
+ if (!url.StartsWith ("http://") && !url.StartsWith ("https://") && !url.StartsWith ("file://"))\r
+ url = "file://" + Path.GetFullPath (url);\r
+\r
dcc.DiscoverAny (url);\r
dcc.ResolveAll ();\r
\r
if (hasWarnings) WriteText ("",0,0);\r
\r
- ServiceDescription rootDesc = null;\r
-
- foreach (object doc in references[0].Documents.Values) {\r
- ServiceDescription desc = doc as ServiceDescription;
- if (desc != null && desc.Services.Count > 0) {
- rootDesc = desc;
- break;
- }
- }
- \r
- if (rootDesc != null)\r
+ string filename = outFilename;\r
+ bool hasBindings = false;\r
+ \r
+ foreach (object doc in references[0].Documents.Values)\r
{\r
- string filename;\r
- if (outFilename != null)\r
- filename = outFilename;\r
- else\r
- filename = rootDesc.Services[0].Name + "." + provider.FileExtension;\r
- \r
+ ServiceDescription desc = doc as ServiceDescription;\r
+ if (desc == null) continue;\r
+
+ if (desc.Services.Count > 0 && filename == null)\r
+ filename = desc.Services[0].Name + "." + provider.FileExtension;\r
+
+ if (desc.Bindings.Count > 0 || desc.Services.Count > 0)\r
+ hasBindings = true;\r
+ }\r
+ \r
+ if (filename == null)\r
+ filename = "output." + provider.FileExtension;
+ \r
+ if (hasBindings) {\r
WriteText ("Writing file '" + filename + "'", 0, 0);\r
StreamWriter writer = new StreamWriter(filename);\r
\r