如何将 Web 服务添加到 WinForm ?
我没有这个选项,为什么?
提前致谢

最佳答案

你的意思是你想使用一个网络服务?或者托管一个网络服务?

如果您想使用 Web 服务,请按照 billb 的建议添加 WebReference。

如果要托管 Web 服务,则无法托管 ASMX Web 服务。但是,可以托管 WCF Web 服务。

(示例不包括任何错误处理或您想要的东西。)

声明你的契约(Contract)

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

执行你的契约(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;
    }

}

然后启动一个WebServiceHost来处理该调用
        WebGui webGui = new WebGui();

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

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

10-08 18:12