【转】c# 自定义扩展方法

       有时我们在使用.net框架里面的某个类时,可能会出现某个类中没有我们想要的方法,那就可以给这些类自定义一些扩展方法,方便我们的使用,而不需要重复创建一个类或者对象。另外在开发中要是一个底层类已经封装好了,如果需要扩展而去重新去该类中修改内容应该也会很麻烦的,所以扩展方法是很方便。

自定义扩展方法 
       昨天在写代码的时候我需要将XmlDocument对象转换为XDocument对象,但是这两个类没有提供互相转化的方法,所以这就可以使用扩展方法为这两个类添加互相转换的方法,代码如下:

public static class XmlExtensions
    {
        public static XmlDocument ToXmlDocument(this XDocument xDocument)
        {
            var xmlDocument = new XmlDocument();
            using (var xmlReader = xDocument.CreateReader())
            {
                xmlDocument.Load(xmlReader);
            }
            return xmlDocument;
        }

        public static XDocument ToXDocument(this XmlDocument xmlDocument)
        {
            //对XmlNode 中的 XML 数据进行快速、非缓存的只进访问
            using (var nodeReader = new XmlNodeReader(xmlDocument))
            {
                //跳过非内容节点
                nodeReader.MoveToContent();
                return XDocument.Load(nodeReader);
            }
        }  
    }

      这里创建了XmlExtensions静态类,在该类中创建了两个静态方法,分别是ToXmlDocument和ToXDocument,注意ToXmlDocument方法中参数中this XDocument 表示为XDocument创建的一个扩展方法,参数是 XDocument对象。同理ToXDocument方法类似。这里必须都是静态方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值