常用到的特性

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43906877/article/details/100708578

servicestack的特性

路由特性
[Route("/customers", “GET”)]
指明url路径,并选择访问方式,一个request可以有多个route

servicestack.ormlite

声明下面属性的值的大小
[CustomField(“CHAR(30)”)]
声明下面属性为主键
[PrimaryKey]
声明下面是外键,并指定外键的属性
[ForeignKey(typeof(Major), OnDelete = “SET NULL”, OnUpdate = “CASCADE”)]

c#原生

数据契约
[DataContract]
服务契约定义了远程访问对象和可供调用的方法,数据契约则是服务端和客户端之间要传送的自定义数据类型。
一旦声明一个类型为DataContract,那么该类型就可以被序列化在服务端和客户端之间传送。
[DataMember]
只有声明为DataContract的类型的对象可以被传送,且只有成员属性会被传递,成员方法不会被传递。WCF对声明为DataContract的类型提供更加细节的控制,可以把一个成员排除在序列化范围以外,也就是说,客户端程序不会获得被排除在外的成员的任何信息,包括定义和数据。默认情况下,所有的成员属性都被排除在外,因此需要把每一个要传送的成员声明为DataMember;
可序列化的
[Serializable]
表明该对象可以被序列化,就是可以变为json

自己声明特性

自己声明特性
servicestack的拦截器需要继承RequestFilterAttribute这个类
并且实现public override void Execute(IRequest req, IResponse res, object requestDto)这个方法
req代表请求的所有数据
mvc则需要继承AuthorizeAttribute这个类
并实现public override void OnAuthorization(AuthorizationContext filterContext)和private void Redirect(object uRl)这两个方法

例如
如果是使用post传参,且参数在formdata中
servicestack写法
string account = req.FormData[0];
string password = req.FormData[1];
如果是get传参,
我忘了,请百度
string useragent = req.UserAgent;
var cookie = req.Cookies;
mvc写法
string url= filterContext.HttpContext.User.ToString();
string account = filterContext.HttpContext.Request.Form[0];
string password = filterContext.HttpContext.Request.Form[1];
附录,此方法的常用属性及方法,同样适用于httpcontext
Application 为当前 HTTP 请求获取 HttpApplicationState 对象。
Cache 获取当前应用程序域的 Cache 对象。
Current 为当前 HTTP 请求获取或设置 HttpContext 对象。
CurrentHandler 获取表示当前正在执行的处理程序的 IHttpHandler 对象。
Handler 获取或设置负责处理 HTTP 请求的 IHttpHandler 对象。
Items 获取可用于在 HTTP 请求过程中在 IHttpModule 接口和 IHttpHandler 接口之间组织和共享数据的键/值集合。
PreviousHandler 获取父处理程序的 IHttpHandler 对象。
Profile 获取当前用户配置文件的 ProfileBase 对象。
Request 为当前 HTTP 请求获取 HttpRequest 对象。
Response 为当前 HTTP 响应获取 HttpResponse 对象。
Server 获取提供用于处理 Web 请求的方法的 HttpServerUtility 对象。
Session 为当前 HTTP 请求获取 HttpSessionState 对象。
SkipAuthorization 获取或设置一个值,该值指定 UrlAuthorizationModule 对象是否应跳过对当前请求的授权检查。
Timestamp 获取当前 HTTP 请求处理请求的时间点
  方法
AddError 将异常添加到当前 HTTP 请求的异常集合中。
ClearError 清除当前 HTTP 请求的所有错误。
GetGlobalResourceObject 已重载。 获取应用程序级别的资源。
GetLocalResourceObject 已重载。 获取页级别的资源。
GetSection 获取当前应用程序的默认配置的指定配置节。
RemapHandler 用于为请求指定处理程序。
RewritePath 重写路径,以便后续的Asp.net以为这是才是真正的地址。RewritePath用在无 Cookie 会话状态中。

猜你喜欢

转载自blog.csdn.net/weixin_43906877/article/details/100708578
今日推荐