首页 > 其他分享 >net core 建立webservice项目

net core 建立webservice项目

时间:2024-05-27 22:56:19浏览次数:24  
标签:core webservice 测试项目 new net FactoryModel public string

1、创建项目

 

 

2、通过NuGet安装SoapCore

 

3、创建服务接口及实现类

本项目会创建2个webservice服务文件用于测试,所以创建了2个model类和2个接口文件。

 

Model类:

[DataContract]
public class FactoryModel
{
/// <summary>
/// 工厂号
/// </summary>
[DataMember]
public string Fno { get; set; }
/// <summary>
/// 姓名
/// </summary>
[DataMember]
public string Name { get; set; }

}
[DataContract]
public class UserModel
{
/// <summary>
/// 工号
/// </summary>
[DataMember]
public string Sno { get; set; }
/// <summary>
/// 姓名
/// </summary>
[DataMember]
public string Name { get; set; }

}
接口:

[ServiceContract]
public interface IMesOperate
{
/// <summary>
/// 查询工厂信息
/// </summary>
/// <param name="fno">学号</param>
/// <returns>工厂信息</returns>
[OperationContract]
FactoryModel GetInfo(string fno);
/// <summary>
/// 添加工厂信息
/// </summary>
/// <param name="factory">工厂信息</param>
/// <returns>result</returns>
[OperationContract]
string AddInfo(FactoryModel factory);
}
[ServiceContract]
public interface IScadaOperate
{
/// <summary>
/// 查询学生信息
/// </summary>
/// <param name="sno">学号</param>
/// <returns>学生信息</returns>
[OperationContract]
UserModel GetInfo(string sno);
/// <summary>
/// 添加学生信息
/// </summary>
/// <param name="student">学生信息</param>
/// <returns>result</returns>
[OperationContract]
int AddInfo(UserModel student);
}
实现类:

public class MesService : IMesOperate
{
public FactoryModel GetInfo(string fno)
{
return new FactoryModel() { Fno = fno, Name = "第一工厂" };
}
/// <summary>
/// 添加工厂记录
/// </summary>
/// <param name="factory"></param>
/// <returns></returns>
public string AddInfo(FactoryModel factory)
{
return factory.Name;
}
}
public class ScadaService : IScadaOperate
{
public UserModel GetInfo(string sno)
{
return new UserModel() { Sno = sno, Name = "小红" };
}
/// <summary>
/// 添加学生信息
/// </summary>
/// <param name="student"></param>
/// <returns></returns>
public int AddInfo(UserModel student)
{
return 1;
}
}
4、修改Startup.cs

修改ConfigureServices函数

public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
//下面为增加项
services.TryAddSingleton<IScadaOperate, ScadaService>();
services.TryAddSingleton<IMesOperate, MesService>();
services.AddSoapCore();
}
修改Configure函数,设置EndPoint。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//省略非关键代码...

app.UseSoapEndpoint<IScadaOperate>("/Scada/ScadaService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);
app.UseSoapEndpoint<IMesOperate>("/Mes/MesService.asmx", new BasicHttpBinding(), SoapSerializer.XmlSerializer);


}
5、启动项目

 

7、创建net core测试项目

 

8、net core测试项目添加服务连接,以及通过NuGet安装SoapCore

 

 

填写webservice服务访问额地址,点击“转到”查看连接是否正常。

 

 

9、net core测试项目测试服务访问

class Program
{
static void Main(string[] args)
{
//正式使用client对象创建单例即可
ServiceReference1.ScadaOperateClient client = new ScadaOperateClient();
var response = client.GetInfoAsync("123");
var result = response.Result;
Console.WriteLine(JsonConvert.SerializeObject(result));

//正式使用client对象创建单例即可
ServiceReference2.MesOperateClient client2 = new MesOperateClient();
var response2 = client2.GetInfoAsync("123");
var result2 = response2.Result;
Console.WriteLine(JsonConvert.SerializeObject(result2));


Console.ReadLine();
}
}


10、创建framework测试项目

 

11、framework测试项目添加服务连接

 

 

 

 

12、framework测试项目测试服务访问

class Program
{
static void Main(string[] args)
{
//正式调用只需创建单例
WebServiceTest2.ScadaService.IScadaOperate service = new WebServiceTest2.ScadaService.IScadaOperate();
var s=service.GetInfo("123");
Console.WriteLine(JsonConvert.SerializeObject(s));
Console.ReadLine();
}
}


13、更改命名空间

若项目需要,需要更改默认的webservice命名空间,可以在接口类更改特性标签,如下图:


————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/zouzh/article/details/124086104

标签:core,webservice,测试项目,new,net,FactoryModel,public,string
From: https://www.cnblogs.com/webenh/p/18216754

相关文章

  • netcore构建webservice以及调用的完整流程
    目录构建前置准备编写服务挂载服务处理SoapHeader调用添加服务调用服务补充内容构建前置准备框架版本要求:netcore3.1以上引入nuget包SoapCore编写服务1.编写服务接口示例usingSystem.ServiceModel;namespaceServices;[ServiceContract(Namespace="http://Demo.WebService......
  • netty建立数万客户端连接,并主动发消息
    @Slf4jpublicclassNettyClientTest{publicstaticvoidmain(String[]args)throwsException{EventLoopGroupworkerEventLoopGroup=newNioEventLoopGroup();try{Bootstrapbootstrap=newBootstrap();boo......
  • 【.NET深呼吸】线程信号量(Semaphore)
    Semaphore类可以控制某个资源允许访问的线程数,Semaphore有命名式的,也有不命名的;如果不考虑跨进程工作,一般在代码中使用不命名方式即可。信号量有点类似于等待句柄,某个线程如果调用了WaitOne方法,这个线程就会暂停,并且等待有可用的信号量时才会继续执行;某个线程调用Release方法,就......
  • .NET8极致性能优化AOT
    前言.NET8对于性能的优化是方方面面的,所以AOT预编译机器码也是不例外的。本篇来看下对于AOT的优化。原文:.NET8极致性能优化AOT详述首先明确一个概念,.NET里面的AOT它是原生的。什么意思呢?也就是说通过ILC编译器(AOT编译器,参考:.Net7新编译器ILC简析)编译出来的代码是各个平......
  • 在 Inno Setup 中检测 .NET 5 / .NET Core 运行环境是否存在
    为了将.NET5/.NETCore应用程序部署到客户机,我们可以编写InnoSetup代码来判断客户机是否安装了必要的运行环境。.NET官方仓库 中提供了一个名为 NetCoreCheck 的项目,可以用于检测指定的.NET5/.NETCore环境是否存在。编译好的文件可以从以下两个地址下载:文件......
  • 通过 .NET NativeAOT 实现用户体验升级
    前言#TypedocConverter 是我先前因帮助维护monaco-editor-uwp但苦于monacoeditor的API实在太多,手写C#的类型绑定十分不划算而发起的一个项目。这个工具可以将typedoc根据TypeScript生成的JSON文件直接生成对应的C#类型绑定代码,并提供完整的JSON序列化支持,......
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
       将.NET程序集与依赖合并到一起的方法有下面四种:使用.NETCore3.0自带的PublishSingleFile属性合并依赖使用Fody使用SourceYard源代码包使用ILMerge(微软所写)或者ILRepack(基于Mono.Ceil)————————————————版权声......
  • POSEIDON: Privacy-Preserving Federated NeuralNetwork Learning
    写在最前面,感觉这一篇的技术更贴近于密码学,所以部分核心技术读起来比较吃力。仅供大家参考哇~Abstract—Inthispaper,weaddresstheproblemofprivacypreservingtrainingandevaluationofneuralnetworksinanN-party,federatedlearningsetting.Weproposea......
  • Kubernetes(k8s) v1.30.1 本地集群部署 安装metallb 支持LoadBalancer 生产环境 推荐
    1 metallb安装参考:Kubernetes(k8s)v1.30.1本地集群部署默认不支持LoadBalancermetallb来解决-CSDN博客2 删除Layer2模式配置kubectldelete-fIPAddressPool.yamlkubectldelete-fL2Advertisement.yamlkubectldelete-fdiscuz-srv.yaml3配置k8sMeta......
  • .NET 7 AOT 的使用以及 .NET 与 Go 互相调用
    目录背景C#部分环境要求创建一个控制台项目体验AOT编译C#调用库函数减少体积C#导出函数C#调用C#生成的AOTGolang部分安装GCCGolang导出函数.NETC#和Golang互调C#调用GolangGolang调用C#其他 背景其实,规划这篇文章有一段时......