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 !

  • 相关阅读:
    Security » Authorization » 要求处理器中的依赖注入
    Security » Authorization » 基于自定义策略的授权
    Security » Authorization » 基于声明的授权
    Security » Authorization » 基于角色的授权
    CentOS下下载软件,不安装的方法
    rsync+sersync+inotify实现服务器间文件同步之一
    linux查看机器负载
    htpasswd建立和更新存储用户名、密码
    由异常掉电问题---谈xfs文件系统
    Flashcache基本使用及注意事项
  • 原文地址:https://www.cnblogs.com/xyyhcn/p/14862728.html
Copyright © 2011-2022 走看看