简体   繁体   中英

How to add WebService to C# WinForm?

How I can add Webservice to WinForm ?

I do not have this Option, why ?

thank's in advance

Do you mean you want to consume a webservice? Or Host a web service?

If you want to consume a web service, Add WebReference as billb suggested.

If you want to host a web service, it is not possible to host an ASMX web service. However, it is possible to host a WCF web service.

(Example Does not include any error handling or things that you would want.)

Declare your contract

[ServiceContract]
public interface  IWebGui
{
    [OperationContract]
    [WebGet(UriTemplate= "/")]
    Stream GetGrid();
}

Implement your contract

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class WebGui : IWebGui
{

    public Stream GetGrid()
    {

        string output = "test";


        MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(output));
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/html";
        return ms;
    }

}

Then start a WebServiceHost to serve the call

        WebGui webGui = new WebGui();

        host = new WebServiceHost(webGui, new Uri("http://localhost:" + Port));
        var bindings = new WebHttpBinding();

        host.AddServiceEndpoint(typeof(IWebGui), bindings, "");
        host.Open();

Follow these steps

  1. Right click on the Project in Visual Studio
  2. Select Add Web Reference
  3. Enter URL & proceed

When you don't see that option

  1. Right click on the Project in Visual Studio
  2. Select Add Service Reference
  3. Press "Advanced" Button
  4. Press "Add Web Reference" Button
  5. Enter URL & proceed

When you right click on the Project in Visual Studio, select Add Web Reference. You can then instantiate the web reference in your WinForm.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM