net core 建立webservice项目

1、创建项目

net core 建立webservice项目_第1张图片

net core 建立webservice项目_第2张图片

2、通过NuGet安装SoapCore

net core 建立webservice项目_第3张图片

3、创建服务接口及实现类

本项目会创建2个webservice服务文件用于测试,所以创建了2个model类和2个接口文件。

net core 建立webservice项目_第4张图片

 Model类:

    [DataContract]
    public class FactoryModel
    {
        /// 
        /// 工厂号
        /// 
        [DataMember]
        public string Fno { get; set; }
        /// 
        /// 姓名
        /// 
        [DataMember]
        public string Name { get; set; }

    }
    [DataContract]
    public class UserModel
    {
        /// 
        /// 工号
        /// 
        [DataMember]
        public string Sno { get; set; }
        /// 
        /// 姓名
        /// 
        [DataMember]
        public string Name { get; set; }

    }

 接口:

    [ServiceContract]
    public interface IMesOperate
    {
        /// 
        /// 查询工厂信息
        /// 
        /// 学号
        /// 工厂信息
        [OperationContract]
        FactoryModel GetInfo(string fno);
        /// 
        /// 添加工厂信息
        /// 
        /// 工厂信息
        /// result
        [OperationContract]
        string AddInfo(FactoryModel factory);
    }
    [ServiceContract]
    public interface IScadaOperate
    {
        /// 
        /// 查询学生信息
        /// 
        /// 学号
        /// 学生信息
        [OperationContract]
        UserModel GetInfo(string sno);
        /// 
        /// 添加学生信息
        /// 
        /// 学生信息
        /// result
        [OperationContract]
        int AddInfo(UserModel student);
    }

实现类:

    public class MesService : IMesOperate
    {
        public FactoryModel GetInfo(string fno)
        {
            return new FactoryModel() { Fno = fno, Name = "第一工厂" };
        }
        /// 
        /// 添加工厂记录
        /// 
        /// 
        /// 
        public string AddInfo(FactoryModel factory)
        {
            return factory.Name;
        }
    }
    public class ScadaService : IScadaOperate
    {
        public UserModel GetInfo(string sno)
        {
            return new UserModel() { Sno = sno, Name = "小红" };
        }
        /// 
        /// 添加学生信息
        /// 
        /// 
        /// 
        public int AddInfo(UserModel student)
        {
            return 1;
        }
    }

4、修改Startup.cs

修改ConfigureServices函数

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    //下面为增加项
    services.TryAddSingleton();
    services.TryAddSingleton();
    services.AddSoapCore();
}

修改Configure函数,设置EndPoint。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //省略非关键代码...

    app.UseSoapEndpoint("/Scada/ScadaService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);
    app.UseSoapEndpoint("/Mes/MesService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);


}

5、启动项目

net core 建立webservice项目_第5张图片

7、创建net core测试项目

net core 建立webservice项目_第6张图片

8、net core测试项目添加服务连接,以及通过NuGet安装SoapCore

net core 建立webservice项目_第7张图片

net core 建立webservice项目_第8张图片

 填写webservice服务访问额地址,点击“转到”查看连接是否正常。

net core 建立webservice项目_第9张图片

 net core 建立webservice项目_第10张图片

9、net core测试项目测试服务访问

    class Program
    {
        static void Main(string[] args)
        {
            //正式使用client对象创建单例即可
            ServiceReference1.ScadaOperateClient client = new ScadaOperateClient();
            var response = client.GetInfoAsync("123");
            var result = response.Result;
            Console.WriteLine(JsonConvert.SerializeObject(result));
            
            //正式使用client对象创建单例即可
            ServiceReference2.MesOperateClient client2 = new MesOperateClient();
            var response2 = client2.GetInfoAsync("123");
            var result2 = response2.Result;
            Console.WriteLine(JsonConvert.SerializeObject(result2));


            Console.ReadLine();
        }
    }

net core 建立webservice项目_第11张图片

10、创建framework测试项目

 net core 建立webservice项目_第12张图片

11、framework测试项目添加服务连接

 net core 建立webservice项目_第13张图片

net core 建立webservice项目_第14张图片

net core 建立webservice项目_第15张图片

 net core 建立webservice项目_第16张图片

12、framework测试项目测试服务访问

    class Program
    {
        static void Main(string[] args)
        {
            //正式调用只需创建单例
            WebServiceTest2.ScadaService.IScadaOperate service = new WebServiceTest2.ScadaService.IScadaOperate();
            var s=service.GetInfo("123");
            Console.WriteLine(JsonConvert.SerializeObject(s));
            Console.ReadLine();
        }
    }

net core 建立webservice项目_第17张图片

13、更改命名空间

若项目需要,需要更改默认的webservice命名空间,可以在接口类更改特性标签,如下图:

net core 建立webservice项目_第18张图片

 

你可能感兴趣的:(net,core,.net,c#)