如何将Web服务添加到C# WinForm?

4

我如何将Web服务添加到WinForm中?

我没有这个选项,为什么?

提前感谢!

3个回答

12

您是指要使用Web服务还是托管Web服务?

如果您想使用Web服务,请像billb建议的那样添加Web引用。

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

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

声明您的契约。

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

实现你的合约

[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();

7

按照以下步骤进行操作

  1. 在Visual Studio中,右键单击项目
  2. 选择“添加Web引用”
  3. 输入URL并继续

如果你没有看到该选项

  1. 在Visual Studio中,右键单击项目
  2. 选择“添加服务引用”
  3. 点击“高级”按钮
  4. 点击“添加Web引用”按钮
  5. 输入URL并继续

3

当你在 Visual Studio 中右键单击项目时,选择“添加 Web 引用”。然后你可以在 WinForm 中实例化该 Web 引用。


我知道这已经有点过时了,但既然我从搜索中来到这里。请参阅https://dev59.com/9WjWa4cB1Zd3GeqPpUwC#12364468,了解如何在VS2008中获取“添加Web引用”UI选项的详细信息。 - Peter Bernier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接