懒得勤快 6 rokov pred
rodič
commit
a2f24a95b4

+ 15 - 66
Masuit.Tools.Core/Extensions.cs

@@ -1220,85 +1220,34 @@ namespace Masuit.Tools
         #region 匹配完整的URL
 
         /// <summary>
-        /// 匹配完整格式的URL,支持以下格式的URL,支持中文域名:<br/>
-        /// 支持不带协议名的网址,支持自适应协议的网址,支持完整路径,支持查询参数,支持锚点,支持锚点查询参数,支持16进制编码<br/>
-        /// www.baidu.com <br/>
-        /// www.baidu.com <br/>
-        /// baidu.com <br/>
-        /// //www.baidu.com <br/>
-        /// http://www.baidu.com <br/>
-        /// https://www.baidu.com <br/>
-        /// https://baidu.com <br/>
-        /// ftp://baidu.com <br/>
-        /// ftp://baidu.com/abc/def <br/>
-        /// ftp://admin:[email protected] <br/>
-        /// ftp://admin:[email protected]/abc/def <br/>
-        /// https://baidu.com:8080 <br/>
-        /// https://baidu.com/abc/def <br/>
-        /// https://baidu.com:8080/abc/def <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=w@w{w}!s <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yy+y <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=www&amp;x=yyy <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_j+k-mn%ADF%AA?s=www&amp;x=yyy#top/aaa <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA?s=www&amp;x=yyy#top/aaa/bbb/ccc <br/>
-        /// http://music.163.com/#/my/m/music/empty <br/>
-        /// http://music.163.com/abc/#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy/#/my/m/music/empty <br/>
-        /// http://music.163.com/#/search/m/?%23%2Fmy%2Fm%2Fmusic%2Fempty=&amp;s=fade&amp;type=1!k <br/>
+        /// 匹配完整格式的URL
         /// </summary>
         /// <param name="s">源字符串</param>
         /// <param name="isMatch">是否匹配成功,若返回true,则会得到一个Match对象,否则为null</param>
         /// <returns>匹配对象</returns>
-        public static Match MatchUrl(this string s, out bool isMatch)
+        public static Uri MatchUrl(this string s, out bool isMatch)
         {
-            Match match = Regex.Match(s, @"^((\w*):?//)?([a-zA-Z0-9\-]{0,61}:?[a-zA-Z0-9\-]{0,61}@?)?([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}(:(\d{1,5}))?(/([a-z0-9A-Z-_@{}!+%/]+(\.\w+)?)?(\?([a-z0-9A-Z-_@{}!+%]+=[a-z0-9A-Z-_@{}!+%]+&?)+)?(/?#[a-z0-9A-Z-_@{}!+%/]+)?(\?([a-z0-9A-Z-_@{}!+%]+=[a-z0-9A-Z-_@{}!+%]*&?)+)?)?$");
-            isMatch = match.Success;
-            return isMatch ? match : null;
+            try
+            {
+                isMatch = true;
+                return new Uri(s);
+            }
+            catch (Exception e)
+            {
+                isMatch = false;
+                return null;
+            }
         }
 
         /// <summary>
-        /// 匹配完整格式的URL,支持以下格式的URL,支持中文域名:<br/>
-        /// 支持不带协议名的网址,支持自适应协议的网址,支持完整路径,支持查询参数,支持锚点,支持锚点查询参数,支持16进制编码<br/>
-        /// www.baidu.com <br/>
-        /// www.baidu.com <br/>
-        /// baidu.com <br/>
-        /// //www.baidu.com <br/>
-        /// http://www.baidu.com <br/>
-        /// https://www.baidu.com <br/>
-        /// https://baidu.com <br/>
-        /// ftp://baidu.com <br/>
-        /// ftp://baidu.com/abc/def <br/>
-        /// ftp://admin:[email protected] <br/>
-        /// ftp://admin:[email protected]/abc/def <br/>
-        /// https://baidu.com:8080 <br/>
-        /// https://baidu.com/abc/def <br/>
-        /// https://baidu.com:8080/abc/def <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=w@w{w}!s <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yy+y <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=www&amp;x=yyy <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_j+k-mn%ADF%AA?s=www&amp;x=yyy#top/aaa <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA?s=www&amp;x=yyy#top/aaa/bbb/ccc <br/>
-        /// http://music.163.com/#/my/m/music/empty <br/>
-        /// http://music.163.com/abc/#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy/#/my/m/music/empty <br/>
-        /// http://music.163.com/#/search/m/?%23%2Fmy%2Fm%2Fmusic%2Fempty=&amp;s=fade&amp;type=1!k <br/>
+        /// 匹配完整格式的URL
         /// </summary>
         /// <param name="s">源字符串</param>
         /// <returns>是否匹配成功</returns>
         public static bool MatchUrl(this string s)
         {
-            MatchUrl(s, out bool success);
-            return success;
+            MatchUrl(s, out var isMatch);
+            return isMatch;
         }
 
         #endregion

+ 2 - 808
Masuit.Tools.Core/Masuit.Tools.Core.xml

@@ -470,30 +470,6 @@
             <param name="services"></param>
             <returns></returns>
         </member>
-        <member name="M:Masuit.Tools.Core.AspNetCore.ServiceCollectionExtensions.AddLocalRedisHelper(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
-            <summary>
-            注入一个本地化的RedisHelper
-            </summary>
-            <param name="services"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.Core.AspNetCore.ServiceCollectionExtensions.AddDefaultRedisHelper(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String)">
-            <summary>
-            注入一个默认的RedisHelper实例
-            </summary>
-            <param name="services"></param>
-            <param name="redisHost"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.Core.AspNetCore.ServiceCollectionExtensions.AddRedisHelper(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.String)">
-            <summary>
-            注入RedisHelper
-            </summary>
-            <param name="services"></param>
-            <param name="name"></param>
-            <param name="redisHost"></param>
-            <returns></returns>
-        </member>
         <member name="M:Masuit.Tools.Core.AspNetCore.ServiceCollectionExtensions.AddStaticHttpContext(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
             <summary>
             注入HttpContext静态对象,方便在任意地方获取HttpContext,services.AddHttpContextAccessor();
@@ -756,13 +732,6 @@
             <param name="ip"></param>
             <returns></returns>
         </member>
-        <member name="M:Masuit.Tools.Core.Net.WebExtension.UploadImageAsync(System.IO.Stream)">
-            <summary>
-            上传图片到百度图床
-            </summary>
-            <param name="stream"></param>
-            <returns></returns>
-        </member>
         <member name="M:Masuit.Tools.Core.Net.WebExtension.Set(Microsoft.AspNetCore.Http.ISession,System.String,System.Object)">
             <summary>
             写Session
@@ -771,20 +740,6 @@
             <param name="key">键</param>
             <param name="value">值</param>
         </member>
-        <member name="M:Masuit.Tools.Core.Net.WebExtension.SetByRedis``1(Microsoft.AspNetCore.Http.ISession,System.String,``0,System.Int32)">
-            <summary>
-            将Session存到Redis,需要先在config中配置链接字符串,连接字符串在config配置文件中的ConnectionStrings节下配置,name固定为RedisHosts,值的格式:127.0.0.1:6379,allowadmin=true,若未正确配置,将按默认值“127.0.0.1:6379,allowadmin=true”进行操作,如:<br/>
-            &lt;connectionStrings&gt;<br/>
-                 &lt;add name = "RedisHosts" connectionString="127.0.0.1:6379,allowadmin=true"/&gt;<br/>
-            &lt;/connectionStrings&gt;
-            </summary>
-            <typeparam name="T"></typeparam>
-            <param name="session"></param>
-            <param name="key">键</param>
-            <param name="obj">需要存的对象</param>
-            <param name="expire">过期时间,默认20分钟</param>
-            <returns></returns>
-        </member>
         <member name="M:Masuit.Tools.Core.Net.WebExtension.Get``1(Microsoft.AspNetCore.Http.ISession,System.String)">
             <summary>
             获取Session
@@ -794,58 +749,6 @@
             <param name="key">键</param>
             <returns>对象</returns>
         </member>
-        <member name="M:Masuit.Tools.Core.Net.WebExtension.GetByRedis``1(Microsoft.AspNetCore.Http.ISession,System.String,System.Int32)">
-            <summary>
-            从Redis取Session
-            </summary>
-            <typeparam name="T"></typeparam>
-            <param name="_"></param>
-            <param name="key">键</param>
-            <param name="expire">过期时间,默认20分钟</param>
-            <returns></returns> 
-        </member>
-        <member name="M:Masuit.Tools.Core.Net.WebExtension.RemoveByRedis(Microsoft.AspNetCore.Http.ISession,System.String)">
-            <summary>
-            从Redis移除对应键的Session
-            </summary>
-            <param name="session"></param>
-            <param name="key"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.Core.Net.WebExtension.SessionCount(Microsoft.AspNetCore.Http.ISession)">
-            <summary>
-            Session个数
-            </summary>
-            <param name="session"></param>
-            <returns></returns>
-        </member>
-        <member name="T:Masuit.Tools.Core.NoSQL.RedisHelperFactory">
-            <summary>
-            RedisHelper工厂类
-            </summary>
-        </member>
-        <member name="M:Masuit.Tools.Core.NoSQL.RedisHelperFactory.Create(System.String,System.Int32)">
-            <summary>
-            创建一个Redis实例
-            </summary>
-            <param name="name"></param>
-            <param name="db"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.Core.NoSQL.RedisHelperFactory.CreateDefault(System.Int32)">
-            <summary>
-            创建一个默认实例
-            </summary>
-            <param name="db"></param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.Core.NoSQL.RedisHelperFactory.CreateLocal(System.Int32)">
-            <summary>
-            创建一个本地连接实例
-            </summary>
-            <param name="db"></param>
-            <returns></returns>
-        </member>
         <member name="T:Masuit.Tools.Core.Validator.ComplexPassword">
             <summary>
             强密码验证
@@ -2118,36 +2021,7 @@
         </member>
         <member name="M:Masuit.Tools.Extensions.MatchUrl(System.String,System.Boolean@)">
             <summary>
-            匹配完整格式的URL,支持以下格式的URL,支持中文域名:<br/>
-            支持不带协议名的网址,支持自适应协议的网址,支持完整路径,支持查询参数,支持锚点,支持锚点查询参数,支持16进制编码<br/>
-            www.baidu.com <br/>
-            www.baidu.com <br/>
-            baidu.com <br/>
-            //www.baidu.com <br/>
-            http://www.baidu.com <br/>
-            https://www.baidu.com <br/>
-            https://baidu.com <br/>
-            ftp://baidu.com <br/>
-            ftp://baidu.com/abc/def <br/>
-            ftp://admin:[email protected] <br/>
-            ftp://admin:[email protected]/abc/def <br/>
-            https://baidu.com:8080 <br/>
-            https://baidu.com/abc/def <br/>
-            https://baidu.com:8080/abc/def <br/>
-            https://baidu.com:8080/abc/def/hhh.html <br/>
-            https://baidu.com:8080/abc/def/hhh.html?s=www <br/>
-            https://baidu.com/abc/def/hhh.html?s=w@w{w}!s <br/>
-            https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yy+y <br/>
-            https://baidu.com/abc/def/hhh.html?s=www&amp;x=yyy <br/>
-            https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yyy#top <br/>
-            https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA/hhh.html?s=www&amp;x=yyy#top <br/>
-            https://baidu.com:8080/abc/def/hi_j+k-mn%ADF%AA?s=www&amp;x=yyy#top/aaa <br/>
-            https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA?s=www&amp;x=yyy#top/aaa/bbb/ccc <br/>
-            http://music.163.com/#/my/m/music/empty <br/>
-            http://music.163.com/abc/#/my/m/music/empty <br/>
-            http://music.163.com/def/hhh.html?s=www&amp;x=yyy#/my/m/music/empty <br/>
-            http://music.163.com/def/hhh.html?s=www&amp;x=yyy/#/my/m/music/empty <br/>
-            http://music.163.com/#/search/m/?%23%2Fmy%2Fm%2Fmusic%2Fempty=&amp;s=fade&amp;type=1!k <br/>
+            匹配完整格式的URL
             </summary>
             <param name="s">源字符串</param>
             <param name="isMatch">是否匹配成功,若返回true,则会得到一个Match对象,否则为null</param>
@@ -2155,36 +2029,7 @@
         </member>
         <member name="M:Masuit.Tools.Extensions.MatchUrl(System.String)">
             <summary>
-            匹配完整格式的URL,支持以下格式的URL,支持中文域名:<br/>
-            支持不带协议名的网址,支持自适应协议的网址,支持完整路径,支持查询参数,支持锚点,支持锚点查询参数,支持16进制编码<br/>
-            www.baidu.com <br/>
-            www.baidu.com <br/>
-            baidu.com <br/>
-            //www.baidu.com <br/>
-            http://www.baidu.com <br/>
-            https://www.baidu.com <br/>
-            https://baidu.com <br/>
-            ftp://baidu.com <br/>
-            ftp://baidu.com/abc/def <br/>
-            ftp://admin:[email protected] <br/>
-            ftp://admin:[email protected]/abc/def <br/>
-            https://baidu.com:8080 <br/>
-            https://baidu.com/abc/def <br/>
-            https://baidu.com:8080/abc/def <br/>
-            https://baidu.com:8080/abc/def/hhh.html <br/>
-            https://baidu.com:8080/abc/def/hhh.html?s=www <br/>
-            https://baidu.com/abc/def/hhh.html?s=w@w{w}!s <br/>
-            https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yy+y <br/>
-            https://baidu.com/abc/def/hhh.html?s=www&amp;x=yyy <br/>
-            https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yyy#top <br/>
-            https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA/hhh.html?s=www&amp;x=yyy#top <br/>
-            https://baidu.com:8080/abc/def/hi_j+k-mn%ADF%AA?s=www&amp;x=yyy#top/aaa <br/>
-            https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA?s=www&amp;x=yyy#top/aaa/bbb/ccc <br/>
-            http://music.163.com/#/my/m/music/empty <br/>
-            http://music.163.com/abc/#/my/m/music/empty <br/>
-            http://music.163.com/def/hhh.html?s=www&amp;x=yyy#/my/m/music/empty <br/>
-            http://music.163.com/def/hhh.html?s=www&amp;x=yyy/#/my/m/music/empty <br/>
-            http://music.163.com/#/search/m/?%23%2Fmy%2Fm%2Fmusic%2Fempty=&amp;s=fade&amp;type=1!k <br/>
+            匹配完整格式的URL
             </summary>
             <param name="s">源字符串</param>
             <returns>是否匹配成功</returns>
@@ -6109,657 +5954,6 @@
             <param name="path">文件路径</param>
             <returns>处理结果</returns>
         </member>
-        <member name="T:Masuit.Tools.NoSQL.RedisHelper">
-            <summary>
-            Redis操作
-            </summary>
-        </member>
-        <member name="P:Masuit.Tools.NoSQL.RedisHelper.RedisConnectionString">
-            <summary>
-            Redis服务器默认连接字符串,默认为:127.0.0.1:6379,allowadmin=true<br/>
-            </summary>
-        </member>
-        <member name="F:Masuit.Tools.NoSQL.RedisHelper.CustomKey">
-            <summary>
-            自定义键
-            </summary>
-        </member>
-        <member name="E:Masuit.Tools.NoSQL.RedisHelper.ConnectionFailed">
-            <summary>
-            连接失败 , 如果重新连接成功你将不会收到这个通知
-            </summary>
-        </member>
-        <member name="E:Masuit.Tools.NoSQL.RedisHelper.ConnectionRestored">
-            <summary>
-            重新建立连接之前的错误
-            </summary>
-        </member>
-        <member name="E:Masuit.Tools.NoSQL.RedisHelper.ErrorMessage">
-            <summary>
-            发生错误时
-            </summary>
-        </member>
-        <member name="E:Masuit.Tools.NoSQL.RedisHelper.ConfigurationChanged">
-            <summary>
-            配置更改时
-            </summary>
-        </member>
-        <member name="E:Masuit.Tools.NoSQL.RedisHelper.HashSlotMoved">
-            <summary>
-            更改集群时
-            </summary>
-        </member>
-        <member name="E:Masuit.Tools.NoSQL.RedisHelper.InternalError">
-            <summary>
-            redis类库错误时
-            </summary>
-        </member>
-        <member name="P:Masuit.Tools.NoSQL.RedisHelper.ConnectionCache">
-            <summary>
-            静态连接池
-            </summary>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.#ctor(System.Int32)">
-            <summary>
-            构造函数,使用该构造函数需要先在config中配置链接字符串,连接字符串在config配置文件中的ConnectionStrings节下配置,name固定为RedisHosts,值的格式:127.0.0.1:6379,allowadmin=true,若未正确配置,将按默认值“127.0.0.1:6379,allowadmin=true,abortConnect=false”进行操作,如:<br/>
-            &lt;connectionStrings&gt;<br/>
-                 &lt;add name = "RedisHosts" connectionString="127.0.0.1:6379,allowadmin=true,abortConnect=false"/&gt;<br/>
-            &lt;/connectionStrings&gt;
-            </summary>
-            <param name="dbNum">数据库编号</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.#ctor(System.String,System.Int32)">
-            <summary>
-            构造函数
-            </summary>
-            <param name="readWriteHosts">Redis服务器连接字符串,格式:127.0.0.1:6379,allowadmin=true,abortConnect=false</param>
-            <param name="dbNum">数据库的编号</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.#ctor(System.String,System.Int32,System.Int32)">
-            <summary>
-            构造函数
-            </summary>
-            <param name="readWriteHosts">Redis服务器连接字符串,格式:127.0.0.1:6379,allowadmin=true,abortConnect=false</param>
-            <param name="dbNum">数据库的编号</param>
-            <param name="_"></param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetInstance(System.Int32)">
-            <summary>
-            获取新实例
-            </summary>
-            <param name="db">数据库的编号</param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetSingleInstance(System.Int32)">
-            <summary>
-            获取单例
-            </summary>
-            <param name="db">数据库的编号</param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetInstance(System.String,System.Int32)">
-            <summary>
-            从对象池获取默认实例
-            </summary>
-            <param name="conn">Redis服务器连接字符串,格式:127.0.0.1:6379,allowadmin=true,abortConnect=false</param>
-            <param name="db">数据库的编号</param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetSingleInstance(System.String,System.Int32)">
-            <summary>
-            获取单例
-            </summary>
-            <param name="conn">Redis服务器连接字符串,格式:127.0.0.1:6379,allowadmin=true,abortConnect=false</param>
-            <param name="db">数据库的编号</param>
-            <returns></returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetString(System.String,System.String,System.Nullable{System.TimeSpan})">
-            <summary>
-            保存单个key value
-            </summary>
-            <param name="key">Redis Key</param>
-            <param name="value">保存的值</param>
-            <param name="expiry">过期时间</param>
-            <returns>是否保存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetString(System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{StackExchange.Redis.RedisKey,StackExchange.Redis.RedisValue}})">
-            <summary>
-            保存多个key value
-            </summary>
-            <param name="keyValues">键值对</param>
-            <returns>是否保存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetString``1(System.String,``0,System.Nullable{System.TimeSpan})">
-            <summary>
-            保存一个对象
-            </summary>
-            <typeparam name="T">对象类型</typeparam>
-            <param name="key">键</param>
-            <param name="obj">值</param>
-            <param name="expiry">过期时间</param>
-            <returns>是否保存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetString(System.String)">
-            <summary>
-            获取单个key的值
-            </summary>
-            <param name="key">键</param>
-            <returns>值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetString(System.Collections.Generic.List{System.String})">
-            <summary>
-            获取多个Key
-            </summary>
-            <param name="listKey">键集合</param>
-            <returns>值集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetString``1(System.String)">
-            <summary>
-            获取一个key的对象
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>实例对象</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.StringIncrement(System.String,System.Double)">
-            <summary>
-            为数字增长val
-            </summary>
-            <param name="key">键</param>
-            <param name="val">可以为负</param>
-            <returns>增长后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.StringDecrement(System.String,System.Double)">
-            <summary>
-            为数字减少val
-            </summary>
-            <param name="key">键</param>
-            <param name="val">可以为负</param>
-            <returns>减少后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetStringAsync(System.String,System.String,System.Nullable{System.TimeSpan})">
-            <summary>
-            保存单个key value
-            </summary>
-            <param name="key">Redis Key</param>
-            <param name="value">保存的值</param>
-            <param name="expiry">过期时间</param>
-            <returns>是否保存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetStringAsync(System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{StackExchange.Redis.RedisKey,StackExchange.Redis.RedisValue}})">
-            <summary>
-            保存多个key value
-            </summary>
-            <param name="keyValues">键值对</param>
-            <returns>是否保存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetStringAsync``1(System.String,``0,System.Nullable{System.TimeSpan})">
-            <summary>
-            保存一个对象
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="obj">需要被缓存的对象</param>
-            <param name="expiry">过期时间</param>
-            <returns>是否保存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetStringAsync(System.String)">
-            <summary>
-            获取单个key的值
-            </summary>
-            <param name="key">键</param>
-            <returns>值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetStringAsync(System.Collections.Generic.List{System.String})">
-            <summary>
-            获取多个Key
-            </summary>
-            <param name="listKey">键集合</param>
-            <returns>值集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetStringAsync``1(System.String)">
-            <summary>
-            获取一个key的对象
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>实例对象</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.IncrementStringAsync(System.String,System.Double)">
-            <summary>
-            为数字增长val
-            </summary>
-            <param name="key">键</param>
-            <param name="val">可以为负</param>
-            <returns>增长后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DecrementStringAsync(System.String,System.Double)">
-            <summary>
-            为数字减少val
-            </summary>
-            <param name="key">键</param>
-            <param name="val">可以为负</param>
-            <returns>减少后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.HashExists(System.String,System.String)">
-            <summary>
-            判断某个数据是否已经被缓存
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <returns>是否缓存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetHash``1(System.String,System.String,``0)">
-            <summary>
-            存储数据到hash表
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="t">对象实例</param>
-            <returns>是否存储成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetHash``1(System.String,System.String,``0,System.TimeSpan)">
-            <summary>
-            存储数据到hash表
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="t">对象实例</param>
-            <param name="expire">过期时间</param>
-            <returns>是否存储成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DeleteHash(System.String,System.String)">
-            <summary>
-            移除hash中的某值
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <returns>是否移除成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DeleteHash(System.String,System.Collections.Generic.List{StackExchange.Redis.RedisValue})">
-            <summary>
-            移除hash中的多个值
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKeys">对象的字段集合</param>
-            <returns>数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetHash``1(System.String,System.String)">
-            <summary>
-            从hash表获取数据
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <returns>对象实例</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.IncrementHash(System.String,System.String,System.Double)">
-            <summary>
-            为数字增长val
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="val">可以为负</param>
-            <returns>增长后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DecrementHash(System.String,System.String,System.Double)">
-            <summary>
-            为数字减少val
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="val">可以为负</param>
-            <returns>减少后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.HashKeys``1(System.String)">
-            <summary>
-            获取hashkey所有Redis key
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>数据集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ExistsHashAsync(System.String,System.String)">
-            <summary>
-            判断某个数据是否已经被缓存
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <returns>是否缓存成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetHashAsync``1(System.String,System.String,``0)">
-            <summary>
-            存储数据到hash表
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="t">对象实例</param>
-            <returns>是否存储成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetHashAsync``1(System.String,System.String,``0,System.TimeSpan)">
-            <summary>
-            存储数据到hash表
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="t">对象实例</param>
-            <param name="expire">过期时间</param>
-            <returns>是否存储成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DeleteHashAsync(System.String,System.String)">
-            <summary>
-            移除hash中的某值
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <returns>是否移除成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DeleteHashAsync(System.String,System.Collections.Generic.List{StackExchange.Redis.RedisValue})">
-            <summary>
-            移除hash中的多个值
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKeys">对象的字段集合</param>
-            <returns>数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetHashAsync``1(System.String,System.String)">
-            <summary>
-            从hash表获取数据
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <returns>对象实例</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.IncrementHashAsync(System.String,System.String,System.Double)">
-            <summary>
-            为数字增长val
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="val">可以为负</param>
-            <returns>增长后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DecrementHashAsync(System.String,System.String,System.Double)">
-            <summary>
-            为数字减少val
-            </summary>
-            <param name="key">键</param>
-            <param name="dataKey">对象的字段</param>
-            <param name="val">可以为负</param>
-            <returns>减少后的值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.HashKeysAsync``1(System.String)">
-            <summary>
-            获取hashkey所有Redis key
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>数据集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.RemoveList``1(System.String,``0)">
-            <summary>
-            移除指定ListId的内部List的值
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListRange``1(System.String)">
-            <summary>
-            获取指定key的List
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>数据集</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListRightPush``1(System.String,``0)">
-            <summary>
-            入队
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListRightPop``1(System.String)">
-            <summary>
-            出队
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>值</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListLeftPush``1(System.String,``0)">
-            <summary>
-            入栈
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListLeftPop``1(System.String)">
-            <summary>
-            出栈
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>对象实例</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListLength(System.String)">
-            <summary>
-            获取集合中的数量
-            </summary>
-            <param name="key">键</param>
-            <returns>数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.RemoveListAsync``1(System.String,``0)">
-            <summary>
-            移除指定ListId的内部List的值
-            </summary>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListRangeAsync``1(System.String)">
-            <summary>
-            获取指定key的List
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>数据集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListRightPushAsync``1(System.String,``0)">
-            <summary>
-            入队
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListRightPopAsync``1(System.String)">
-            <summary>
-            出队
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>对象实例</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListLeftPushAsync``1(System.String,``0)">
-            <summary>
-            入栈
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListLeftPopAsync``1(System.String)">
-            <summary>
-            出栈
-            </summary>
-            <typeparam name="T">数据类型</typeparam>
-            <param name="key">键</param>
-            <returns>实例对象</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.ListLengthAsync(System.String)">
-            <summary>
-            获取集合中的数量
-            </summary>
-            <param name="key">键</param>
-            <returns>数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.AddSortedSet``1(System.String,``0,System.Double)">
-            <summary>
-            添加
-            </summary>
-            <param name="key">键</param>
-            <param name="value">值</param>
-            <param name="score">排序号</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.RemoveSortedSet``1(System.String,``0)">
-            <summary>
-            删除
-            </summary>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetRangeSortedByRank``1(System.String)">
-            <summary>
-            获取全部
-            </summary>
-            <param name="key">键</param>
-            <returns>数据集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetSortedLength(System.String)">
-            <summary>
-            获取集合中的数量
-            </summary>
-            <param name="key">键</param>
-            <returns>数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SortedSetAddAsync``1(System.String,``0,System.Double)">
-            <summary>
-            添加
-            </summary>
-            <param name="key">键</param>
-            <param name="value">值</param>
-            <param name="score">排序号</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SortedSetRemoveAsync``1(System.String,``0)">
-            <summary>
-            删除
-            </summary>
-            <param name="key">键</param>
-            <param name="value">值</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SortedSetRangeByRankAsync``1(System.String)">
-            <summary>
-            获取全部
-            </summary>
-            <param name="key">键</param>
-            <returns>数据集合</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SortedSetLengthAsync(System.String)">
-            <summary>
-            获取集合中的数量
-            </summary>
-            <param name="key">键</param>
-            <returns>数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DeleteKey(System.String)">
-            <summary>
-            删除单个key
-            </summary>
-            <param name="key">redis key</param>
-            <returns>是否删除成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.DeleteKey(System.Collections.Generic.List{System.String})">
-            <summary>
-            删除多个key
-            </summary>
-            <param name="keys">rediskey</param>
-            <returns>成功删除的个数</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.KeyExists(System.String)">
-            <summary>
-            判断key是否存储
-            </summary>
-            <param name="key">键</param>
-            <returns>是否存储成功</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.RenameKey(System.String,System.String)">
-            <summary>
-            重新命名key
-            </summary>
-            <param name="key">旧的键</param>
-            <param name="newKey">新的键</param>
-            <returns>处理结果</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.Expire(System.String,System.Nullable{System.TimeSpan})">
-            <summary>
-            设置Key的过期时间
-            </summary>
-            <param name="key">键</param>
-            <param name="expiry">过期时间</param>
-            <returns>处理结果</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.Subscribe(System.String,System.Action{StackExchange.Redis.RedisChannel,StackExchange.Redis.RedisValue})">
-            <summary>
-            Redis发布订阅  订阅
-            </summary>
-            <param name="subChannel">订阅频道</param>
-            <param name="handler">处理过程</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.Publish``1(System.String,``0)">
-            <summary>
-            Redis发布订阅  发布
-            </summary>
-            <typeparam name="T">消息对象</typeparam>
-            <param name="channel">发布频道</param>
-            <param name="msg">消息</param>
-            <returns>消息的数量</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.Unsubscribe(System.String)">
-            <summary>
-            Redis发布订阅  取消订阅
-            </summary>
-            <param name="channel">频道</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.UnsubscribeAll">
-            <summary>
-            Redis发布订阅  取消全部订阅
-            </summary>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.CreateTransaction">
-            <summary>
-            创建一个事务
-            </summary>
-            <returns>事务对象</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetDatabase">
-            <summary>
-            获得一个数据库实例
-            </summary>
-            <returns>数据库实例</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.GetServer(System.String)">
-            <summary>
-            获得一个服务器实例
-            </summary>
-            <param name="hostAndPort">服务器地址</param>
-            <returns>服务器实例</returns>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.SetSysCustomKey(System.String)">
-            <summary>
-            设置前缀
-            </summary>
-            <param name="customKey">前缀</param>
-        </member>
-        <member name="M:Masuit.Tools.NoSQL.RedisHelper.Dispose">
-            <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
-        </member>
         <member name="T:Masuit.Tools.Reflection.ClassHelper">
             <summary>  
             类帮助器,可以动态对类,类成员进行控制(添加,删除),目前只支持属性控制。  

+ 15 - 66
Masuit.Tools/Extensions.cs

@@ -1219,85 +1219,34 @@ namespace Masuit.Tools
         #region 匹配完整的URL
 
         /// <summary>
-        /// 匹配完整格式的URL,支持以下格式的URL,支持中文域名:<br/>
-        /// 支持不带协议名的网址,支持自适应协议的网址,支持完整路径,支持查询参数,支持锚点,支持锚点查询参数,支持16进制编码<br/>
-        /// www.baidu.com <br/>
-        /// www.baidu.com <br/>
-        /// baidu.com <br/>
-        /// //www.baidu.com <br/>
-        /// http://www.baidu.com <br/>
-        /// https://www.baidu.com <br/>
-        /// https://baidu.com <br/>
-        /// ftp://baidu.com <br/>
-        /// ftp://baidu.com/abc/def <br/>
-        /// ftp://admin:[email protected] <br/>
-        /// ftp://admin:[email protected]/abc/def <br/>
-        /// https://baidu.com:8080 <br/>
-        /// https://baidu.com/abc/def <br/>
-        /// https://baidu.com:8080/abc/def <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=w@w{w}!s <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yy+y <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=www&amp;x=yyy <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_j+k-mn%ADF%AA?s=www&amp;x=yyy#top/aaa <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA?s=www&amp;x=yyy#top/aaa/bbb/ccc <br/>
-        /// http://music.163.com/#/my/m/music/empty <br/>
-        /// http://music.163.com/abc/#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy/#/my/m/music/empty <br/>
-        /// http://music.163.com/#/search/m/?%23%2Fmy%2Fm%2Fmusic%2Fempty=&amp;s=fade&amp;type=1!k <br/>
+        /// 匹配完整格式的URL
         /// </summary>
         /// <param name="s">源字符串</param>
         /// <param name="isMatch">是否匹配成功,若返回true,则会得到一个Match对象,否则为null</param>
         /// <returns>匹配对象</returns>
-        public static Match MatchUrl(this string s, out bool isMatch)
+        public static Uri MatchUrl(this string s, out bool isMatch)
         {
-            Match match = Regex.Match(s, @"^((\w*):?//)?([a-zA-Z0-9\-]{0,61}:?[a-zA-Z0-9\-]{0,61}@?)?([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}(:(\d{1,5}))?(/([a-z0-9A-Z-_@{}!+%/]+(\.\w+)?)?(\?([a-z0-9A-Z-_@{}!+%]+=[a-z0-9A-Z-_@{}!+%]+&?)+)?(/?#[a-z0-9A-Z-_@{}!+%/]+)?(\?([a-z0-9A-Z-_@{}!+%]+=[a-z0-9A-Z-_@{}!+%]*&?)+)?)?$");
-            isMatch = match.Success;
-            return isMatch ? match : null;
+            try
+            {
+                isMatch = true;
+                return new Uri(s);
+            }
+            catch (Exception e)
+            {
+                isMatch = false;
+                return null;
+            }
         }
 
         /// <summary>
-        /// 匹配完整格式的URL,支持以下格式的URL,支持中文域名:<br/>
-        /// 支持不带协议名的网址,支持自适应协议的网址,支持完整路径,支持查询参数,支持锚点,支持锚点查询参数,支持16进制编码<br/>
-        /// www.baidu.com <br/>
-        /// www.baidu.com <br/>
-        /// baidu.com <br/>
-        /// //www.baidu.com <br/>
-        /// http://www.baidu.com <br/>
-        /// https://www.baidu.com <br/>
-        /// https://baidu.com <br/>
-        /// ftp://baidu.com <br/>
-        /// ftp://baidu.com/abc/def <br/>
-        /// ftp://admin:[email protected] <br/>
-        /// ftp://admin:[email protected]/abc/def <br/>
-        /// https://baidu.com:8080 <br/>
-        /// https://baidu.com/abc/def <br/>
-        /// https://baidu.com:8080/abc/def <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=w@w{w}!s <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yy+y <br/>
-        /// https://baidu.com/abc/def/hhh.html?s=www&amp;x=yyy <br/>
-        /// https://baidu.com:8080/abc/def/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA/hhh.html?s=www&amp;x=yyy#top <br/>
-        /// https://baidu.com:8080/abc/def/hi_j+k-mn%ADF%AA?s=www&amp;x=yyy#top/aaa <br/>
-        /// https://baidu.com:8080/abc/def/hi_jk-mn%ADF%AA?s=www&amp;x=yyy#top/aaa/bbb/ccc <br/>
-        /// http://music.163.com/#/my/m/music/empty <br/>
-        /// http://music.163.com/abc/#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy#/my/m/music/empty <br/>
-        /// http://music.163.com/def/hhh.html?s=www&amp;x=yyy/#/my/m/music/empty <br/>
-        /// http://music.163.com/#/search/m/?%23%2Fmy%2Fm%2Fmusic%2Fempty=&amp;s=fade&amp;type=1!k <br/>
+        /// 匹配完整格式的URL
         /// </summary>
         /// <param name="s">源字符串</param>
         /// <returns>是否匹配成功</returns>
         public static bool MatchUrl(this string s)
         {
-            MatchUrl(s, out bool success);
-            return success;
+            MatchUrl(s, out var isMatch);
+            return isMatch;
         }
 
         #endregion