2021-01-10 乐帮网
webservice netcore
在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。我们便可以看到正常的返回了,如下图:
至此我们已经完成了一个简单的WebService,这个服务实现两个接口,一个Get 一个Add方法。
可以下载我示例源码百度网盘链接:https://pan.baidu.com/s/1wCXaGyThXTuS04aupJFsbg
查看提取码请先点击下方的捐赠按钮。
原创作品
相关文章:C# net framework 开发WebService(Soap)
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力