C# ASP.NET WebApi入门
C# WebAPi入门
- 1.创建一个WebApi项目
- 测试Demo
- 序列Xml类
- WebApi路由配置
1.创建一个WebApi项目
1️⃣VS2019 创建ASP.NET应用程序
2️⃣注意:框架要选择.NETF FrameWork 4.5及以上
文件目录如下
End创建结束
测试Demo
1.创建实体类
public partial class UserInfo{/// <summary>/// 用户ID/// </summary>public int ID { get; set; }/// <summary>/// 用户姓名/// </summary>public string UserName { get; set; }/// <summary>/// 用户密码/// </summary>public string UserPass { get; set; }/// <summary>/// 注册时间/// </summary>public System.DateTime RegTime { get; set; }/// <summary>/// 邮箱/// </summary>public string Email { get; set; }}
2.创建ApiController
[HttpGet]public HttpResponseMessage GetUserInfoAll(){List<UserInfo> user = new List<UserInfo>(){new UserInfo (){ ID=1,UserName="znx",UserPass="test",Email="123123@163.com",RegTime=DateTime.Now},new UserInfo (){ ID = 2, UserName = "xmh", UserPass = "test", Email = "123123@163.com", RegTime = DateTime.Now } };return new HttpResponseMessage(){RequestMessage = Request,Content = new StringContent(SimpleXmlConvert.XmlSerialize<List<UserInfo>>(user))};}
返回结果如下
SimpleXmlConvert类见下
序列Xml类
1.第一种序列化SimpleXmlConvert
public class SimpleXmlConvert{/// <summary>/// 将实体类型转换为XML/// </summary>/// <typeparam name="T"></typeparam>/// <param name="obj"></param>/// <returns></returns>public static string XmlSerialize<T>(T obj){try{using (StringWriter sw = new StringWriter()){Type t = obj.GetType();XmlSerializer serializer = new XmlSerializer(obj.GetType());serializer.Serialize(sw, obj);sw.Close();return sw.ToString();}}catch (Exception e){throw new Exception("将实体类型对象转换成XML异常",e) ;}}public static T DESerializer<T>(string strXML) where T : class{try{using (StringReader rd=new StringReader(strXML)){XmlSerializer serializer = new XmlSerializer(typeof(T));return serializer.Deserialize(rd) as T;}}catch (Exception e){throw new Exception("将XML字符串转换成实体对象异常", e);}}}
2.第二种序列化方法
public class SimpleXmlConverter2{public static string ToXml<T>(IList<T> entities, string rootName = "") where T : new(){if (entities == null || entities.Count == 0){return string.Empty;}StringBuilder builder = new StringBuilder();builder.AppendLine(XmlResource.XmlHeader);XElement element = ToXElement<T>(entities, rootName);builder.Append(element.ToString());return builder.ToString();}public static XmlDocument ToXmlDocument<T>(IList<T> entities, string rootName = "") where T : new(){if (entities == null || entities.Count == 0){return null;}XmlDocument xmlDocument = new XmlDocument();xmlDocument.LoadXml(ToXml<T>(entities, rootName));return xmlDocument;}public static XDocument ToXDocument<T>(IList<T> entities, string rootName = "") where T : new(){if (entities == null || entities.Count == 0){return null;}return XDocument.Parse(ToXml<T>(entities, rootName));}public static XElement ToXElement<T>(IList<T> entities, string rootName = "") where T : new(){if (entities == null || entities.Count == 0){return null;}if (string.IsNullOrWhiteSpace(rootName)){rootName = typeof(T).Name + XmlResource.XmlRootNameSuffix;}XElement element = new XElement(rootName);foreach (T entity in entities){element.Add(ToXElement<T>(entity));}return element;}public static string ToXml<T>(T entity) where T : new(){if (entity == null){return string.Empty;}XElement element = ToXElement<T>(entity);return element.ToString();}public static XElement ToXElement<T>(T entity) where T : new(){if (entity == null){return null;}XElement element = new XElement(typeof(T).Name);PropertyInfo[] properties = typeof(T).GetProperties();XElement innerElement = null;object propertyValue = null;foreach (PropertyInfo property in properties){propertyValue = property.GetValue(entity, null);innerElement = new XElement(property.Name, propertyValue);element.Add(innerElement);}return element;}public static XElement ToXElement(Type type) {if (type == null){return null;}XElement element = new XElement(type.Name);PropertyInfo[] properties = type.GetProperties();XElement innerElement = null;foreach (PropertyInfo property in properties){innerElement = new XElement(property.Name, null);element.Add(innerElement);}return element;}}
WebApi路由配置
1.webapi路由在App_Start文件夹下WebApiConfig.cs
2.路由默认不更改情况下 自带的Get、Post,Put,Delete方法只可使用一次 可以在方法前添加标签[HttpGet]、[HttpPost]可使用多次
路由请求地址
https://localhost:44310/api/test/GetUserInfoAll
C# ASP.NET WebApi入门相关推荐
- ASP.NET WebApi技术从入门到实战演练
一.课程介绍 曾经有一位不知名的讲师说过这么一句名言: 一门RPC技术不会,那么千万万门RPC技术将都不会!在今天移动互联网的时代,作为攻城师的我们,谁不想着只写一套API就可以让我们的Web, An ...
- 【翻译转载】【官方教程】Asp.Net MVC4入门指南(2):添加一个控制器
2. 添加一个控制器 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-c ...
- Asp.Net MVC4入门指南(3):添加一个视图
在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程. 您将创建一个视图模板文件,其中使用了ASP.NET MVC ...
- ASP.NET MVC入门到精通——Spring.net-业务层仓储
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...
- ASP.NET AJAX入门系列(1):概述
经常关注我的Blog的朋友可能注意到了,在我Blog的左边系列文章中,已经移除了对Atlas学习手记系列文章的推荐,因为随着ASP.NET AJAX 1.0 Beta版的发布,它们已经不再适用,为了不 ...
- 【开源】分享一个前后端分离方案-前端angularjs+requirejs+dhtmlx 后端asp.net webapi
一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年a ...
- ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用
原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...
- 【转】ASP.NET AJAX入门系列
ASP.NET AJAX入门系列将会写关于ASP.NET AJAX一些控件的使用方法以及基础知识,其中部分文章为原创,也有一些文章是直接翻译自官方文档,本部分内容会不断更新. 目录 ASP.NET A ...
- ASP.NET WebApi OWIN 实现 OAuth 2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...
- ASP.NET CORE 入门教程(附源码)
ASP.NET CORE 入门教程 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 ...
最新文章
- Tensorflow— 递归神经网络RNN
- 《LeetCode力扣练习》第206题 反转链表 Java
- 面向连接和无连接的套接字到底有什么区别?
- linux要不要home分区,有必要建/home/boot分区吗
- Apple 的CEO 吹响了战斗的号角啦!
- 更改一个视频文件夹下视频文件的文件名
- apollo动态切换mysql数据源_log4j2从Apollo初始化配置并可动态变更
- python vb 哪个好学_最难学的七大编程语言,VB 第一,Python垫底,看你学的排第几...
- Qt4_简单的图表编辑器
- java内存泄露 垃圾回收_Java面试中底层垃圾回收、代码安全、内存泄露
- Win7电脑遇到蓝屏,并报错:IRQL NOT LESS OR EQUAL
- flink-HA集群搭建和问题记录
- python cmap,使用Matplotlib绘图时获取意想不到的输出 - Cmap - Python
- 二手闲置物品交易获资本肯定,前景一片大好,普通人的商机在哪?
- 最全面的微信小程序渲染图片的方式
- 《复杂》作者梅拉妮·米歇尔发文直指AI四大谬论,探究AI几度兴衰背后的根源...
- 常数乘以无穷大等于多少_请教一个数学问题:无穷大乘以无穷小等于多少?
- Urban Airship Android Client - Google GCM Push
- 2021-1-31 pikachu之sql注入
- 点击button会自动刷新页面??