zoukankan      html  css  js  c++  java
  • 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 !

  • 相关阅读:
    kubernetes 中遇见的一些坑(持续更新)
    Docker网络解决方案-Flannel部署记录
    理解Docker :Docker 网络
    全面剖析Redis Cluster原理和应用
    python发送钉钉机器人脚本
    centos 7 部署LDAP服务
    zabbix 同步ldap帐号脚本
    zabbix TCP 连接数监控
    WebDriver基本操作入门及UI自动化练手页面
    Jmeter使用入门
  • 原文地址:https://www.cnblogs.com/xyyhcn/p/14862728.html
Copyright © 2011-2022 走看看