• C# netcore 开发WebService(SoapCore)


     原文

    在NetCore时代开发WebService和FrameWork时代差别有一点儿大,毕竟NetCore是跨平台的一个框架,不过使用起来也得很简单,下面我就使用Visual Studio2019开发一个示例服务程序。你依然要注意我这个我写的这个demo是soap1.2。在开发前你必须清楚这一点,因为有很多时候SOAP1.1和SOAP1.2 并不通用。至于soap1.1我暂时不用netcore写示例了。
    下面是开发详细过程:

    (1)创建新项目,选择ASP.NET Core Web应用程序 ,如下图

    (2)配置新项目,为自己的项目起个名字,然后点击下一步,如下图

    (3)进入模板选择页面,选择空,如下图

    (4)项目建立好后需要我们通过NuGet引用开发依赖包  SoapCore,如下图一样添加引用。

    (5)这时我们新一个类用于示例的返回和接受参数,类名StudentModel 代码如下:

     [DataContract]
        public class StudentModel
        {
            /// 
            /// 学号
            /// 
            [DataMember]
            public string Sno { get; set; }
            /// 
            /// 姓名
            /// 
            [DataMember]
            public string Name { get; set; }
    
            /// 
            /// 班级
            /// 
            [DataMember]
            public string Grade { get; set; }
            /// 
            /// 生日
            /// 
            [DataMember]
            public DateTime Birthday { get; set; }
        }

    (6)添加接口约束IContract,我们和framework下保持一致,实现两个方法,Get和Add代码如下:

     [ServiceContract]
        public interface IContract
        {
            /// 
            /// 查询学生信息
            /// 
            /// 学号
            /// 学生信息
            [OperationContract]
            StudentModel Get(string sno);
            /// 
            /// 添加学生信息
            /// 
            /// 学生信息
            /// result
            [OperationContract]
            int Add(StudentModel student);
        }

    (7)添加服务实现类StudentService,来实现我们的约定服务接口。代码如下:

     public class StudentService : IContract
        {
            public StudentModel Get(string sno)
            {
                return new StudentModel() { Sno = sno, Name = "小红", Grade = "202002", Birthday = new DateTime(2012, 8, 15) };
            }
            /// 
            /// 添加学生信息
            /// 
            /// 
            /// 
            public int Add(StudentModel student)
            {
                return 1;
            }
        }

    (8)在netcore中添加注入,这个想必不会陌生吧,现在netcore的注入已经很普遍了,修改 Startup.cs类中的ConfigureServices方法,添加代码如下:

    services.TryAddSingleton<IContract, StudentService>();

    (9)添加服务发布接口地址,修改Startup.cs类中的Configure方法,在最后修改UseEndpoints这一部分代码如下:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
    
                app.UseRouting();
                app.UseSoapEndpoint("/StudentService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);
    
            }

    (10)点击Visual Studio2019上的运行按钮,此时便可以在浏览器里预览了。直接运行看到的页面是错误的地址,需要手动改一下地址如下:https://localhost:44376/StudentService.asmx,添加后半部分StudentService.asmx。我们便可以看到正常的返回了,如下图:

    至此我们已经完成了一个简单的WebService,这个服务实现两个接口,一个Get 一个Add方法。

    作者:xyyhqq

    -------------------------------------------

    Never Stop !

  • 相关阅读:
    卷一第十、十一、十二、十三、十四、十五章为广域网技术,暂停学习,先学习好局域网
    卷一第九章:WLAN
    卷一第八章:以太网技术
    卷一第七章:局域网概述
    卷一第六章:网络设备基本调试
    卷一第五章:网络设备文件管理
    二层、三层交换机介绍及转发原理
    Codeforces Round #641 (Div. 1)
    机器学习
    机器学习
  • 原文地址:https://www.cnblogs.com/xyyhcn/p/14862728.html
Copyright © 2020-2023  润新知