找到 34423 篇文章,主题为编程
110 次查看
我们正在创建 Employee 类的两个实例,e 和 e1。e 被赋值给 e1。两个对象都指向相同的引用,因此对于所有 Equals,我们将得到预期的 true 输出。在第二种情况下,我们可以观察到,即使属性值相同,Equals 也返回 false。从本质上讲,当参数引用不同的对象时,Equals 不会检查值,总是返回 false。示例 1 class Program{ static void Main(string[] args){ Employee e = new Employee(); e.Name = "Test"; e.Age = 27; ... 阅读更多
3K+ 次查看
Take 运算符用于从数组返回给定数量的元素,而 Skip 运算符跳过数组中指定数量的元素。Skip 从序列中的第一个元素开始跳过元素直到指定位置。Take 从序列中的第一个元素开始获取元素直到指定位置。示例 1 class Program{ static void Main(string[] args){ List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 5, 6, 7, ... 阅读更多
996 次查看
浅拷贝 - 对象的浅拷贝会复制“主”对象,但不会复制内部对象。“内部对象”在原始对象及其副本之间共享。浅拷贝的问题在于两个对象不是独立的。如果您修改一个对象,则更改将反映在另一个对象中。深拷贝 - 深拷贝是对象的完全独立副本。如果我们复制了我们的对象,我们将复制整个对象结构。如果您修改一个对象,则更改不会反映在另一个对象中。示例 class Program{ static void ... 阅读更多
1K+ 次查看
操作过滤器用于在操作方法执行之前或之后添加额外的逻辑。OnActionExecuting 和 OnActionExecuted 方法用于在执行操作方法之前和之后添加我们的逻辑。让我们创建一个实现 ActionFilterAttribute 的 LogAttribute,它在操作方法执行之前和之后记录一些信息。LogAttribute - 示例 using System; using System.Diagnostics; using System.Web.Http.Controllers; using System.Web.Http.Filters; namespace DemoWebApplication.Controllers{ public class LogAttribute : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext){ Debug.WriteLine(string.Format("Action Method {0} executing at {1}", actionContext.ActionDescriptor.ActionName, DateTime.Now.ToShortDateString()), ... 阅读更多
249 次查看
媒体类型允许 API 通知客户端如何解释有效负载中的数据。在 HTTP 协议中,媒体类型使用诸如 text/html、application/json 和 application/xml 等标识符指定,分别对应于 HTML、JSON 和 XML,这是最常见的 Web 格式。还有一些其他更具体的 API 媒体类型,例如 application/vnd.api+json。以下是需要在媒体类型中发送的版本。application/vnd.demo.students.v1+json StudentsV1Controller application/vnd.demo.students.v2+json StudentsV2Controller添加我们自己的 CustomControllerSelector 将修复上述错误。CustomControllerSelector - 示例 using System.Linq; using System.Net.Http; using System.Text.RegularExpressions; using System.Web.Http; using System.Web.Http.Controllers; using System.Web.Http.Dispatcher; namespace WebAPI.Custom{ public class CustomControllerSelector : DefaultHttpControllerSelector{ ... 阅读更多
537 次查看
Accept 标头告诉服务器浏览器需要哪种文件格式的数据。这些文件格式更常被称为 MIME 类型。MIME 代表多用途互联网邮件扩展。版本控制可以像下面这样发送到标头中。Version=1 StudentsV1Controller Version=2 StudentsV2Controller由于我们没有在 Accept 标头中处理版本,因此我们得到 404 未找到错误,因为我们只有 StudentV1 和 StudentV2 控制器。让我们添加我们自己的 CustomControllerSelector,它实现 DefaultHttpControllerSelector 类。CustomControllerSelector - 示例 using System.Linq; using System.Net.Http; using System.Web.Http; using System.Web.Http.Controllers; using System.Web.Http.Dispatcher; namespace WebAPI.Custom{ public class CustomControllerSelector : DefaultHttpControllerSelector{ private HttpConfiguration _config; ... 阅读更多
402 次查看
当控制器方法抛出任何未处理的异常(不是 HttpResponseException 异常)时,将执行异常过滤器。HttpResponseException 类型是一种特殊情况,因为它专门用于返回 HTTP 响应。异常过滤器实现 System.Web.Http.Filters.IExceptionFilter 接口。编写异常过滤器的最简单方法是从 System.Web.Http.Filters.ExceptionFilterAttribute 类派生并覆盖 OnException 方法。下面是一个过滤器,它将 NotFiniteNumberException 异常转换为 HTTP 状态代码 416,请求范围不可满足。ExceptionFilterAttribute - 示例 using System; using System.Net; using System.Net.Http; using System.Web.Http.Filters; namespace DemoWebApplication.Controllers{ public class ExceptionAttribute : ExceptionFilterAttribute{ public override void OnException(HttpActionExecutedContext ... 阅读更多
361 次查看
web api 中的 DefaultHttpControllerSelector 类负责选择我们在 URI 中发送的适当的控制器操作方法。假设我们必须在查询字符串中实现版本控制,如下所示 v=1 StudentsV1Controller (版本 1) v=2 StudentsV2Controller (版本 2)如果我们在查询字符串中传递版本信息,例如 https://:58174/api/student?v=1 将导致 404 未找到错误响应,因为 DefaultHttpControllerSelector 中存在的 SelectController() 方法将查找 StudentsController,但我们只有 StudentsV1Controller 和 StudentsV2Controller。为了处理这种情况,我们应该添加我们自己的 CustomControllerSelector,它实现 DefaultHttpControllerSelector 类。CustomControllerSelector - 示例 using System.Net.Http; using System.Web; using System.Web.Http; using ... 阅读更多
657 次查看
一旦 Web API 服务公开,不同的客户端应用程序就开始使用我们的 Web API 服务。随着业务发展和需求变化,我们可能也必须更改服务,但是对服务的更改应该以不破坏任何现有客户端应用程序的方式进行。这就是 Web API 版本控制的用武之地。我们保持现有服务不变,这样我们就不会破坏现有客户端应用程序,并开发新客户端应用程序可以使用的新版本服务。实现版本控制的一种方法是使用 URI。下面 ... 阅读更多
2K+ 次查看
HTTP动词构成了我们“统一接口”约束的主要部分,并为基于名词的资源提供了动作对应物。主要的或最常用的HTTP动词(或方法,因为它们被恰当地称为)是POST、GET、PUT、PATCH和DELETE。这些分别对应于创建、读取、更新和删除(或CRUD)操作。还有许多其他动词,但使用频率较低。在那些不太常用的方法中,OPTIONS和HEAD的使用频率高于其他方法。动作方法可以命名为HTTP动词,例如Get、Post、Put、Patch或Delete。但是,我们可以添加任何后缀……阅读更多
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP