示例#1
0
    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));
    }
示例#2
0
        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);
        }
示例#3
0
    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) {}
示例#7
0
文件: wstest.cs 项目: nobled/mono
	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) {}
示例#9
0
 public void Add(string url, DiscoveryReference value)
 {
 }
示例#10
0
 // Methods
 public void Add(DiscoveryReference value)
 {
 }
示例#11
0
 public void Remove(DiscoveryReference value)
 {
 }
示例#12
0
 // Methods
 public int Add(DiscoveryReference value)
 {
 }
示例#13
0
 public bool Contains(DiscoveryReference value)
 {
 }
	public bool Contains(DiscoveryReference value) {}
	public void Add(string url, DiscoveryReference value) {}
	// Methods
	public void Add(DiscoveryReference value) {}
示例#17
0
文件: wstest.cs 项目: nobled/mono
	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);
	}