csharp扩展方法和扩展属性

csharp扩展方法和扩展属性

ID:9240734

大小:37.69 KB

页数:12页

时间:2018-04-24

csharp扩展方法和扩展属性_第1页
csharp扩展方法和扩展属性_第2页
csharp扩展方法和扩展属性_第3页
csharp扩展方法和扩展属性_第4页
csharp扩展方法和扩展属性_第5页
资源描述:

《csharp扩展方法和扩展属性》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CSharp扩展方法扩展方法是实现新增类方法同时不改变类名称的一种技术。可以部分的替代原本必须继承类才能够实现的功能。但是,目前还不能扩展类的属性,也不能在不继承类的情况下而直接修改类方法。例如在Asp.netMVCWebApplication中的,我们想快速了解某个Action上是否有某个Attribute.那我们可以使用这样的扩展方法:///

///Getsthemethod.//////Type///Theinstance./

2、//Themethodselector.///MethodInfopublicstaticMethodInfoGetMethod(thisTinstance,Expression>methodSelector){//itisnotworkallmethodreturn((MethodCallExpression)methodSelector.Body).Method;}///

///Getsthemethod.///

3、ary>//////Theinstance.///Themethodselector.///MethodInfopublicstaticMethodInfoGetMethod(thisTinstance,Expression>methodSelector){return((MethodCallExpression)methodSele

4、ctor.Body).Method;}///

///Determineswhetherthespecifiedmemberhasattribute.//////Thetypeoftheattribute.///Themember.//////trueifthespecifiedmemberhasattribute;otherwise,false.///p

5、ublicstaticboolHasAttribute(thisMemberInfomember)whereTAttribute:Attribute{returnGetAttributes(member).Length>0;}///

///Getstheattributes.//////Thetypeoftheattribute.///Themember.///

6、rns>publicstaticTAttribute[]GetAttributes(thisMemberInfomember)whereTAttribute:Attribute{varattributes=member.GetCustomAttributes(typeof(TAttribute),true);return(TAttribute[])attributes;}如何使用,请看下面的代码,我们使用lambda表达式获取某个方法,然后获取其上面的Attribute:[Fact]publicvoidGetHttpPostAttributeF

7、romCreateAction(){//Arrangevarcontroller=GetEmployeeController(newMemeoryEmployeeBoService());//ActboolhasPostAttribute=controller.GetMethod(e=>e.Create(newEmployee())).HasAttribute();//AssertAssert.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。