zoukankan      html  css  js  c++  java
  • C# netcore 开发WebService(Soap)

    在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
        {
            /// <summary>
            /// 学号
            /// </summary>
            [DataMember]
            public string Sno { get; set; }
            /// <summary>
            /// 姓名
            /// </summary>
            [DataMember]
            public string Name { get; set; }
    
            /// <summary>
            /// 班级
            /// </summary>
            [DataMember]
            public string Grade { get; set; }
            /// <summary>
            /// 生日
            /// </summary>
            [DataMember]
            public DateTime Birthday { get; set; }
        }

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

     [ServiceContract]
        public interface IContract
        {
            /// <summary>
            /// 查询学生信息
            /// </summary>
            /// <param name="sno">学号</param>
            /// <returns>学生信息</returns>
            [OperationContract]
            StudentModel Get(string sno);
            /// <summary>
            /// 添加学生信息
            /// </summary>
            /// <param name="student">学生信息</param>
            /// <returns>result</returns>
            [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) };
            }
            /// <summary>
            /// 添加学生信息
            /// </summary>
            /// <param name="student"></param>
            /// <returns></returns>
            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<IContract>("/StudentService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);
    
            }

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

    本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/14850358.html

    电话微信:13514280351
  • 相关阅读:
    android性能优化之布局优化
    android性能调优之traceview的使用
    android性能优化
    EditText光标居上
    ExecutorService的submit(Runnable x)和execute(Runnable x) 两个方法的本质区别
    android 静默安装
    android 内存优化
    image-webpack-loader在mac或ubuntu报错
    git重命名文件和文件夹
    js判断设备类型
  • 原文地址:https://www.cnblogs.com/zwbsoft/p/14850358.html
Copyright © 2011-2022 走看看