1 新建一个window程序
2 新建一个类,实现服务约定和操作约定,不需要接口也行
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApp1
{
[ServiceContract]
public class UserInfoService : IUserInfoService
{
[OperationContract]
public int Add(int a, int b)
{
return a + b;
}
}
}
3 在窗体load事件中添加下面代码,启动服务
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private ServiceHost Host = null;
private void Form1_Load(object sender, EventArgs e)
{
if (Host == null)
{
Host = new ServiceHost(typeof(UserInfoService));
//绑定
System.ServiceModel.Channels.Binding httpBinding = new BasicHttpBinding();
//终结点
Host.AddServiceEndpoint(typeof(UserInfoService), httpBinding, "http://localhost:8002/");
if (Host.Description.Behaviors.Find<System.ServiceModel.Description.ServiceMetadataBehavior>() == null)
{
//行为
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
//元数据地址
behavior.HttpGetUrl = new Uri("http://localhost:8002/Service1");
Host.Description.Behaviors.Add(behavior);
//启动
Host.Open();
}
}
}
}
}
4 新建一个Console程序,添加服务引用,输入http://localhost:8002/Service1,点击转到,既可以发现服务,并成功引用
5 在program中添加代码