static string GetServiceName(DiscoveryReference dref) { string name = dref.DefaultFilename; if (name.EndsWith(".wsdl")) { name = name.Substring(0, name.Length - 5); } if (name == "wsd") { int i = dref.Url.IndexOf("service="); if (i == -1) { name = dref.Url.Substring(7); } else { name = dref.Url.Substring(i + 8); } } name = name + "Test"; if (Char.IsDigit(name, 0)) { name = "Ws" + name; } return(Normalize(name)); }
List <ProjectItem> CreateProjectItems() { List <ProjectItem> items = new List <ProjectItem>(); // Web references item. if (!ProjectContainsWebReferencesFolder(project)) { WebReferencesProjectItem webReferencesItem = new WebReferencesProjectItem(project); webReferencesItem.Include = "Web References\\"; items.Add(webReferencesItem); } // Web reference url. webReferenceUrl = new WebReferenceUrl(project); webReferenceUrl.Include = url; webReferenceUrl.UpdateFromURL = url; webReferenceUrl.RelPath = relativePath; webReferenceUrl.Namespace = proxyNamespace; items.Add(webReferenceUrl); // References. foreach (DictionaryEntry entry in protocol.References) { DiscoveryReference discoveryRef = entry.Value as DiscoveryReference; if (discoveryRef != null) { FileProjectItem item = new FileProjectItem(project, ItemType.None); item.Include = Path.Combine(relativePath, discoveryRef.DefaultFilename); items.Add(item); } } // Proxy FileProjectItem proxyItem = new FileProjectItem(project, ItemType.Compile); proxyItem.Include = GetProxyFileName(); proxyItem.SetEvaluatedMetadata("AutoGen", "True"); proxyItem.SetEvaluatedMetadata("DesignTime", "True"); proxyItem.DependentUpon = "Reference.map"; items.Add(proxyItem); // Reference map. FileProjectItem mapItem = new FileProjectItem(project, ItemType.None); mapItem.Include = Path.Combine(relativePath, "Reference.map"); mapItem.SetEvaluatedMetadata("Generator", "MSDiscoCodeGenerator"); mapItem.SetEvaluatedMetadata("LastGenOutput", "Reference.cs"); items.Add(mapItem); // System.Web.Services reference. if (!ProjectContainsWebServicesReference(project)) { ReferenceProjectItem webServicesReferenceItem = new ReferenceProjectItem(project, "System.Web.Services"); items.Add(webServicesReferenceItem); } return(items); }
public static ServiceData CreateServiceData(DiscoveryReference dref) { ServiceData sd = new ServiceData(); string name = GetServiceName(dref); sd.Name = name; int nc = 2; while (FindServiceByName(sd.Name) != null) { sd.Name = name + nc; nc++; } sd.Wsdl = dref.Url; return(sd); }
/// <summary>Generate a text description for the a DiscoverDocument.</summary> /// <param name="discovery">A DiscoveryDocument containing the details for the disco services.</param> /// <returns>An XmlDocument containing the generated xml for the specified discovery document.</returns> public static void GenerateDiscoXml(StringBuilder text, DiscoveryDocument doc) { text.Append("<big><b>" + GettextCatalog.GetString("Web Service References") + "</b></big>\n\n"); foreach (object oref in doc.References) { DiscoveryReference dref = oref as DiscoveryReference; if (dref == null) { continue; } if (dref is ContractReference) { text.AppendFormat("<b>Service: {0}</b>\n<span size='small'>{1}</span>", System.IO.Path.GetFileNameWithoutExtension(dref.DefaultFilename), dref.Url); } else if (dref is DiscoveryDocumentReference) { text.AppendFormat("<b>Discovery document</b>\n<small>{0}</small>", dref.Url); } text.Append("\n\n"); } }
/// <summary> /// Reads in a file containing a map of saved discovery documents populating the Documents and References properties, /// with discovery documents, XML Schema Definition (XSD) schemas, and service descriptions referenced in the file. /// </summary> /// <param name="topLevelFilename">Name of file to read in, containing the map of saved discovery documents.</param> /// <returns> /// A DiscoveryClientResultCollection containing the results found in the file with the map of saved discovery documents. /// The file format is a DiscoveryClientProtocol.DiscoveryClientResultsFile class serialized into XML; however, one would /// typically create the file using only the WriteAll method or Disco.exe. /// </returns> public DiscoveryClientResultCollection ReadAllUseBasePath(string topLevelFilename) { string basePath = (new FileInfo(topLevelFilename)).Directory.FullName; StreamReader sr = new StreamReader(topLevelFilename); XmlSerializer ser = new XmlSerializer(typeof(DiscoveryClientResultsFile)); DiscoveryClientResultsFile resfile = (DiscoveryClientResultsFile)ser.Deserialize(sr); sr.Close(); foreach (DiscoveryClientResult dcr in resfile.Results) { // Done this cause Type.GetType(dcr.ReferenceTypeName) returned null Type type = null; switch (dcr.ReferenceTypeName) { case "System.Web.Services.Discovery.ContractReference": type = typeof(System.Web.Services.Discovery.ContractReference); break; case "System.Web.Services.Discovery.DiscoveryDocumentReference": type = typeof(System.Web.Services.Discovery.DiscoveryDocumentReference); break; default: continue; } DiscoveryReference dr = (DiscoveryReference)Activator.CreateInstance(type); dr.Url = dcr.Url; FileStream fs = new FileStream(Path.Combine(basePath, dcr.Filename), FileMode.Open, FileAccess.Read); Documents.Add(dr.Url, dr.ReadDocument(fs)); fs.Close(); References.Add(dr.Url, dr); } return(resfile.Results); }
// Methods public int Add(DiscoveryReference value) {}
public static ServiceData CreateServiceData (DiscoveryReference dref) { ServiceData sd = new ServiceData (); string name = GetServiceName (dref); sd.Name = name; int nc = 2; while (FindServiceByName (sd.Name) != null) { sd.Name = name + nc; nc++; } sd.Wsdl = dref.Url; return sd; }
public void Remove(DiscoveryReference value) {}
public void Add(string url, DiscoveryReference value) { }
// Methods public void Add(DiscoveryReference value) { }
public void Remove(DiscoveryReference value) { }
// Methods public int Add(DiscoveryReference value) { }
public bool Contains(DiscoveryReference value) { }
public bool Contains(DiscoveryReference value) {}
public void Add(string url, DiscoveryReference value) {}
// Methods public void Add(DiscoveryReference value) {}
static string GetServiceName (DiscoveryReference dref) { string name = dref.DefaultFilename; if (name.EndsWith (".wsdl")) name = name.Substring (0,name.Length-5); if (name == "wsd") { int i = dref.Url.IndexOf ("service="); if (i == -1) name = dref.Url.Substring (7); else name = dref.Url.Substring (i+8); } name = name + "Test"; if (Char.IsDigit (name,0)) name = "Ws" + name; return Normalize (name); }