net core 建立webservice项目

2023-10-30

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命名空间,可以在接口类更改特性标签,如下图:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

net core 建立webservice项目 的相关文章

  • Rx Framework:在超时时执行操作,而不中断原始可观察序列

    给定一个可观察的源 通过轮询低级设备的 变化 状态生成 observable source metacode IObservable
  • 将 Visual Studio 2012 C++ 单元测试项目链接到 exe 会导致访问冲突

    我从现有的整体 exe 本机 Visual Studio 2012 项目开始 我想添加一个本机单元测试项目 根据http msdn microsoft com en us library hh419385 aspx objectRef ht
  • 在 Jscript 中实例化 System.Threading.Thread 对象

    我正在尝试使用 Jscript 创建一个新的 System Threading Thread 对象 但我无法让构造函数工作 如果我只是执行以下操作 var thread new Thread threadFunc function thre
  • 模拟 EF core dbcontext 和 dbset

    我正在使用 ASP NET Core 2 2 EF Core 和 MOQ 当我运行测试时 我收到此错误 消息 System NotSupportedException 非虚拟 可在 VB 中重写 成员上的设置无效 x gt x Movies
  • 将 Uploadify 与 Sharepoint 和 .net 结合使用

    我在共享点页面上有一些由 JQuery 生成的 html 我想在这个 html 中使用 uploadify 将文件上传到服务器 亚历山大 https stackoverflow com users 25427 alexander gyosh
  • 混合 VS2012 平台工具集

    我们正在从 VS2005 切换到 VS2012 update 2 我们正在构建大量 主要是控制台 本机 C 无 MFC ATL 可执行文件 它们使用几个常见的静态链接库 这些可执行文件主要在 Win7 计算机上运行 但有些也部署在较旧的 X
  • 输入缓冲区刷新

    考虑下面的代码 include
  • 使用 microsoft word.interop 删除 Word 文档中的空白页

    我创建了一个Word文档 它使用以下命令生成动态内容词互操作 它有一些分页符之间使用 我面临的问题是 此分页符会创建我不想向用户显示的空白页面 在某些情况下 我需要在那里添加这些分页符以维护页面布局 因此我无法考虑删除这些分页符 但我想要的
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • 外部组件中的控制器上的 404

    我在解决 Asp Net MVC 4 项目中的 404 响应时遇到问题 它是在 VS2012 中构建的 目标版本为 4 5 我已将预编译的视图和控制器内置到独立的 DLL 中 我能够动态加载 DLL 并从我的核心项目中检查它们 甚至调用它们
  • 如何在单独的类库中管理客户端上下文对象?

    我正在尝试创建一个库 类库 对于共享点 它将拥有所有共享点 dll 来与共享点服务器交互上传文件 文档并创建文档库和文档集 现在这个库可以被使用客户端 例如 Web 应用程序 asp net webform 或 mvc 或控制台应用程序或
  • C#中如何将委托转换为对象?

    我正在使用反射类来调用其他 dll 上的一些方法 方法的参数之一是委托类型 我想通过使用反射来调用这个方法 所以我需要将函数参数作为对象数组传递 但我找不到任何关于 如何将委托转换为对象 提前致谢 委托是一个对象 只需像平常一样创建预期的委
  • 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth

    我正在尝试通过 Azure DevOps 上的 Nuke 和 CI CD 自动执行 NuGet 包更新 一切都构建得很好 但在 PushNuGet 步骤中 该过程尝试通过弹出窗口向 Azure 进行身份验证 这显然从未在 in devops
  • 将 libpng 链接到 android 原生项目

    我在尝试在本机 Android 项目中加载 libpng 时遇到问题 编译器似乎无法识别 libpng 函数 但可以识别类型 如 png byte 它可以正常编译类型 但如果我添加函数 则会抛出错误 这是编译输出 Windows 7 cmd
  • 那里有更好的 DateTime.Parse 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有一个库 付费或免费 能够处理比 DateTime Parse 使用的更常见的日期时间格式 能够
  • 当“多次安装 MSBuild”时,Dotnet 项目转换尝试转换失败

    try convert w Test csproj target framework netstandard2 0 结果是 Multiple installs of MSBuild detected please select one In
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • STL 向量、迭代器和插入 (C++)

    我有一个将向量的迭代器传递到的方法 在这个方法中 我想向向量中添加一些元素 但我不确定当只有迭代器时这是否可行 void GUIComponentText AddAttributes vector
  • 访问 Visual Studio 扩展中的当前代码窗格

    我正在编写一个 Visual Studio 2010 扩展 在代码视图中带有右键单击菜单 我希望能够从菜单项事件处理程序检查当前代码 但无法在对象模型中找到执行此操作的位置 如何在 Visual Studio 扩展中访问当前窗口中的代码 E
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind

随机推荐

  • C++ 输出二进制数

    这几天学组成原理 碰到需要输出二进制数的情况 验证a 2 n a gt gt n 我想用高级语言内在的模块实现 程序如下 bitset后面的 lt gt 中的数字 指定输出的位数 include
  • 2023最新一文学会fastdfs单节点部署(含安装包镜像包)

    1 实验环境 镜像版本 麒麟服务器镜像V10SP2 镜像下载地址 链接 https pan baidu com s 11BopM7FsmvUFud D68J7Rg pwd 1234 提取码 1234 安装包下载地址 链接 https pan
  • Java中Overriding)和Overload是什么意思?

    一 解释 方法覆盖 Overriding 也叫做 方法重写 重写发生在子类和父类之间 具体实现是子类对父类中一个可访问的 Private 修饰的方法不可被继承 方法的重写 保证其方法名参数的个数 参数的类型不变 重载 Overload 发生
  • vim退出编辑模式

    退出vi 末行模式 last line mode 建议在退出vi前 先按ESC键 以确保当前vi的状态为命令方式 然后再键入 冒号 输入下列命令 退出vi 1 w 将编辑缓冲区的内容写入文件 则新的内容就替代了原始文件 这时并没有退出vi
  • 计算机视觉——目标检测、实例分割(语义分割)、人体关键点检测

    计算机视觉 目标检测 实例分割 1 目标检测 2 实例分割 3 人体关键点检测 1 目标检测 一张图片中有多个类别目标 要求不仅仅是对图像目标进行分类 还要准确的标记出目标的位置信息 以提取目标 比如车牌检测 不仅要确定有车牌 还要车牌的准
  • 代码保护软件VMProtect内置脚本的使用——Mach-O文件

    VMProtect是一种很可靠的工具 可以保护应用程序代码免受分析和破解 但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下 才能实现最好的效果 本文继续对VMProtect中强大的内置脚本的使用进行介绍 希望对您有
  • 信息扩散原理及实现(Matlab)

    信息扩散方法是为了弥补信息不足而考虑优化利用样本模糊信息的一种对样本进行集值化的模糊数学处理方法 最原始的形式是信息分配方法 最简单的信息扩散函数是正态扩散函数 信息扩散方法可以将一个分明值的样本点 变成一个模糊集 或者说 是把单值样本点
  • 股权转让要交哪些税?增值税、企业所得税、个人所得税

    转自 https zhuanlan zhihu com p 29750483 股权 股份 股票 这些词儿相信你肯定耳熟能详吧 如果你是第一次产生股权转让或受让的念头 你肯定最先想到股权转让协议 协议的法律问题 转让的流程和工商局需要的材料这
  • SpringBoot使用Jackson序列化反序列化配置

    几种常见方式 1 全局application配置 常用配置 spring jackson date format yyyy MM dd HH mm ss serialization true deserialization true def
  • STC89C52单片机蜂鸣器介绍以及《孤勇者》歌曲代码示例

    目录 蜂鸣器介绍 驱动电路 三极管驱动 集成电路驱动 音乐的相关知识 音符与计时器重装载值对应表 将乐谱转换为宏定义的音调谱 实际代码演示 蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件 常用来产生设备的按键音 报警音等提示信号 蜂鸣
  • python中xpath爬虫源代码_python中的爬虫神器 XPath 介绍

    XPath即为XML路径语言 它是一种用来确定XML 标准通用标记语言的子集 文档中某部分位置的语言 XPath基于XML的树状结构 提供在数据结构树中找寻节点的能力 xPath 同样也支持HTML XPath 是一门小型的查询语言 这里我
  • linux--network和NetManager冲突导致network[44649]:RTNETLINK answers: File exists错误

    network 44649 RTNETLINK answers File exists 解决方法 原因 NetworkManager 基础相关服务命令 nmcli 命令的基本格式如下 解决方法 最简单的排错方法尝试关闭NetworkMana
  • Java 中从 json 格式字符串里取出某个字段的值

    import com alibaba fastjson JSONObject public class Test Title getJsonValueByKey Description 获取Json格式字符串中key对应的值 param j
  • class_start main 执行了啥?

    init rc中是import init hardware rc 中定义 on fs mount all fstab chipset mount pstore pstore sys fs pstore setprop ro crypto f
  • 看完这篇 教你玩转渗透测试靶机vulnhub——DC2

    Vulnhub靶机DC2渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 暴力破解 登入后台 PATH环境变量 GIT 提权 Vulnhub靶机渗透总结 Vulnhu
  • SpringBoot实战(二十二)集成 Sleuth、Zipkin

    目录 一 简介 1 Sleuth 2 Zipkin 二 搭建 zipkin server 1 jar包启动 2 docker启动 3 自己搭建 Maven依赖 添加启动类注解 4 页面截图 三 搭建 sleuth zipkin 1 Mave
  • Excel如何合并单元格

    Excel除了具有强大的数据处理能力之外 在绘制表格方面也是表现的非常出色 如何快速合并单元格 这3种方法你要学会 在使用Excel的时候经常会遇到对单元格进行合并和拆分的操作 使用恰当的方式 可以极大的提高编辑Excel的工作效率 总体而
  • 【vue3】远程组件加载

    远程加载组件 动态更新组件 主框架不更新 参考 https gitee com fanzhengshao remote components library 用vite创建一个vue项目 添加remote目录 存放远程组件 添加rollup
  • 编译问题处理:undefined symbol: OPENSSL_init_crypto

    编译问题处理 undefined symbol OPENSSL init crypto 结论 Python 2 7 编译 hashlib so 提示undefined symbol OPENSSL init crypto问题 原因为open
  • net core 建立webservice项目

    1 创建项目 2 通过NuGet安装SoapCore 3 创建服务接口及实现类 本项目会创建2个webservice服务文件用于测试 所以创建了2个model类和2个接口文件 Model类 DataContract public class