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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南