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

时间:2009-04-16 14:22:10

标签: c# winforms web-services

如何将Web服务添加到WinForm?

我没有这个选项,为什么?提前感谢

3 个答案:

答案 0 :(得分:12)

你的意思是你想要使用网络服务吗?或托管网络服务?

如果您想使用Web服务,请将WebReference添加为billb建议。

如果要托管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();

答案 1 :(得分:7)

请按照以下步骤

  1. 右键单击Visual Studio中的项目
  2. 选择添加Web参考
  3. 输入网址&继续
  4. 当您没有看到该选项时

    1. 右键单击Visual Studio中的项目
    2. 选择添加服务参考
    3. 按“高级”按钮
    4. 按“添加网络参考”按钮
    5. 输入网址&继续

答案 2 :(得分:3)

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