【转】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方法类似。这里必须都是静态方法。

猜你喜欢

转载自blog.csdn.net/qq373011556/article/details/81174781
今日推荐