扩展方法需要满足的条件:

1、扩展方法必须定义在静态类里。

2、扩展方法必须是静态方法。

3、扩展方法的第一个参数以this修饰符为前缀。

4、扩展方法必须在使用它的类的扩展方法内,否则必须显示的using扩展方法所在的命名空间。

5、扩展方法只能被对象调用。

6、其他命名空间下的扩展方法优先级低于当前命名空间的扩展方法。

7、扩展方法完成之后,必须重新生成一次才会有有代码提示。

先写个简单的示例:

public static class DateTimeExtensions
{
public static string ToString_yyyyMMddHHmmssffff(this DateTime dateTime)
{
return dateTime.ToString("yyyy-MM-dd HH:mm:ss.ffff");
}
}

再来一个实例,在MVC3中,写个HtmlHelper的Include扩展方法,引入一个HTML页面的代码代码到当前页面。

namespace MVC_AjaxTest
{
public static class Exten
{
public static string Include(this HtmlHelper htmlhelper,string path)  //扩展HtmlHelper类
{
string PhysicalPath = System.Web.HttpContext.Current.Server.MapPath(path);
string str = File.ReadAllText(PhysicalPath);
return str;  //返回读取到的字符串
}
}
}

然后在根目录新建一个text.htm代码如下:

<div style="background:red">你在他乡还好吗?</div>

  

视图代码:

@using MVC_AjaxTest
@Html.Raw(@Html.Include("/text.htm"));

要@Html.Raw()是为了防止输出的时候被Html编码了,这样就把源代码当成文字输出了而不解释HTML,浏览器显示代码如下:

最新文章

  1. 小猪cms ClassifyAction.class.php
  2. Python批量扫描服务器指定端口状态
  3. V8Sharp的中文乱码问题解决
  4. 乱码之MyEclipse控制台
  5. switch结构的用法
  6. *** glibc detected *** malloc(): memory corruption 分类: C/C++ Linux 2015-05-14 09:22 37人阅读 评论(0) 收藏
  7. 了解oracle数据库的情况
  8. Linux下搭建Oracle11g RAC(3)----创建用户及配置相关文件
  9. SQL查询数据封装JavaBean对象
  10. [转]LLVM MC Project
  11. 老男孩Python全栈开发(92天全)视频教程 自学笔记06
  12. 本文详解5G是个什么鬼,程序员都准备好了吗?
  13. 微信小程序&lt;swiper-item&gt;标签中传入多个数组型数据的方法(小程序交流群:604788754)
  14. 【函数】raise 函数(小窗help)
  15. 【vue】项目编译报错 Error: No PostCSS Config found in...
  16. STM32F103X datasheet学习笔记---DMA
  17. Linux查看机器和硬盘的SN
  18. 【Ruby】【改gem源镜像】【Win10 + Jruby-9.1.2.0 + Rails 5.1.3 + gem 2.6.4 】
  19. workerman Channel组件全局广播
  20. Webkit内核探究【1】——Webkit简介

热门文章

  1. gdb调试知识
  2. React Native商城项目实战06 - 设置安卓中的启动页
  3. C# 读写App.config 配置文件
  4. 十八、RF中selenium2library构造函数中参数解释
  5. Sass 的 & 符号(ampersands)
  6. Visual Studio Code - 插件
  7. lnmp 安装 访问 配置 laravel
  8. NFS服务和DHCP服务讲解
  9. 【MM系列】SAP 客户增强
  10. 【Qt开发】Qt中图像的显示与基本操作