黄宗银 1 tahun lalu
induk
melakukan
e154a7020c
14 mengubah file dengan 448 tambahan dan 182 penghapusan
  1. TEMPAT SAMPAH
      Debug/net8.0/Apq.Web5.dll
  2. TEMPAT SAMPAH
      Debug/net8.0/Apq.Web5.pdb
  3. TEMPAT SAMPAH
      Debug/net8.0/Apq.dll
  4. TEMPAT SAMPAH
      Debug/net8.0/Apq.pdb
  5. 224 91
      Debug/net8.0/Apq.xml
  6. TEMPAT SAMPAH
      Debug/net8.0/DB.MsSql.P.dll
  7. TEMPAT SAMPAH
      Debug/net8.0/DB.MsSql.P.pdb
  8. TEMPAT SAMPAH
      Release/net8.0/Apq.Web5.dll
  9. TEMPAT SAMPAH
      Release/net8.0/Apq.Web5.pdb
  10. TEMPAT SAMPAH
      Release/net8.0/Apq.dll
  11. TEMPAT SAMPAH
      Release/net8.0/Apq.pdb
  12. 224 91
      Release/net8.0/Apq.xml
  13. TEMPAT SAMPAH
      Release/net8.0/DB.MsSql.P.dll
  14. TEMPAT SAMPAH
      Release/net8.0/DB.MsSql.P.pdb

TEMPAT SAMPAH
Debug/net8.0/Apq.Web5.dll


TEMPAT SAMPAH
Debug/net8.0/Apq.Web5.pdb


TEMPAT SAMPAH
Debug/net8.0/Apq.dll


TEMPAT SAMPAH
Debug/net8.0/Apq.pdb


+ 224 - 91
Debug/net8.0/Apq.xml

@@ -3411,88 +3411,6 @@
             提取中文(连在一起)
             </summary>
         </member>
-        <member name="M:Apq.Extension.Ext_String.Regex_IP4">
-            <remarks>
-            Pattern:<br/>
-            <code>^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$</code><br/>
-            Explanation:<br/>
-            <code>
-            ○ Match if at the beginning of the string.<br/>
-            ○ 1st capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match '.'.<br/>
-            ○ 2nd capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match '.'.<br/>
-            ○ 3rd capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match '.'.<br/>
-            ○ 4th capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match if at the end of the string or if before an ending newline.<br/>
-            </code>
-            </remarks>
-        </member>
         <member name="M:Apq.Extension.Ext_String.IsIP4(System.String)">
             <summary>
             判断字符串是否为IP4
@@ -3843,6 +3761,16 @@
             <param name="Min">最小值(含)</param>
             <param name="Max">最大值(含)</param>
         </member>
+        <member name="T:Apq.Net.MyIP">
+            <summary>
+            访问https://myip.ipip.net,获取外网IP
+            </summary>
+        </member>
+        <member name="M:Apq.Net.MyIP.GetMyIP(System.Threading.CancellationToken)">
+            <summary>
+            访问https://myip.ipip.net,获取外网IP
+            </summary>
+        </member>
         <member name="T:Apq.Net.PersistentClient">
             <summary>
             代表一个连接到服务端的长连接(客户端)
@@ -5839,6 +5767,173 @@
             出错列名
             </summary>
         </member>
+        <member name="T:Apq.Text.RegexRepo">
+            <summary>
+            正则表达式库
+            </summary>
+        </member>
+        <member name="M:Apq.Text.RegexRepo.Regex_IP4_All">
+            <remarks>
+            Pattern:<br/>
+            <code>^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$</code><br/>
+            Explanation:<br/>
+            <code>
+            ○ Match if at the beginning of the string.<br/>
+            ○ 1st capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 2nd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 3rd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 4th capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match if at the end of the string or if before an ending newline.<br/>
+            </code>
+            </remarks>
+        </member>
+        <member name="M:Apq.Text.RegexRepo.Regex_IP4">
+            <remarks>
+            Pattern:<br/>
+            <code>(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)</code><br/>
+            Explanation:<br/>
+            <code>
+            ○ 1st capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 2nd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 3rd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 4th capture group.<br/>
+                ○ Match with 3 alternative expressions, atomically.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions, atomically.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            </code>
+            </remarks>
+        </member>
         <member name="T:Apq.Text.TxtFileHelper">
             <summary>
             文本文件助手
@@ -6324,34 +6419,66 @@
             <param name="inputSpan">The text being scanned by the regular expression.</param>
             <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
         </member>
-        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_5">
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_All_5">
+            <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the Regex_IP4_All method.</summary>
+        </member>
+        <member name="F:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.Instance">
+            <summary>Cached, thread-safe singleton instance.</summary>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.#ctor">
+            <summary>Initializes the instance.</summary>
+        </member>
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory">
+            <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.CreateInstance">
+            <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
+        </member>
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner">
+            <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
+            <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
+            <param name="inputSpan">The text being scanned by the regular expression.</param>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
+            <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
+            <param name="inputSpan">The text being scanned by the regular expression.</param>
+            <returns>true if a possible match was found; false if no more matches are possible.</returns>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
+            <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
+            <param name="inputSpan">The text being scanned by the regular expression.</param>
+            <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
+        </member>
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_6">
             <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the Regex_IP4 method.</summary>
         </member>
-        <member name="F:System.Text.RegularExpressions.Generated.Regex_IP4_5.Instance">
+        <member name="F:System.Text.RegularExpressions.Generated.Regex_IP4_6.Instance">
             <summary>Cached, thread-safe singleton instance.</summary>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.#ctor">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.#ctor">
             <summary>Initializes the instance.</summary>
         </member>
-        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory">
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory">
             <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.CreateInstance">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.CreateInstance">
             <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
         </member>
-        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner">
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner">
             <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
             <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
             <param name="inputSpan">The text being scanned by the regular expression.</param>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
             <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
             <param name="inputSpan">The text being scanned by the regular expression.</param>
             <returns>true if a possible match was found; false if no more matches are possible.</returns>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
             <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
             <param name="inputSpan">The text being scanned by the regular expression.</param>
             <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
@@ -6368,6 +6495,12 @@
         <member name="M:System.Text.RegularExpressions.Generated.Utilities.IndexOfAnyWhiteSpace(System.ReadOnlySpan{System.Char})">
             <summary>Finds the next index of any character that matches a whitespace character.</summary>
         </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Utilities.IndexOfNonAsciiOrAny_43881A06280D7675CFDED4A0AE2E028BA08DAEBEDDC977512887A649161E5115(System.ReadOnlySpan{System.Char})">
+            <summary>Finds the next index of any character that matches a character in the set [0-9\d].</summary>
+        </member>
+        <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_asciiExceptDigits">
+            <summary>Supports searching for characters in or not in "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\n\v\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&amp;'()*+,-./:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f".</summary>
+        </member>
         <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_asciiExceptWhiteSpace">
             <summary>Supports searching for characters in or not in "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\b\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f!\"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f".</summary>
         </member>

TEMPAT SAMPAH
Debug/net8.0/DB.MsSql.P.dll


TEMPAT SAMPAH
Debug/net8.0/DB.MsSql.P.pdb


TEMPAT SAMPAH
Release/net8.0/Apq.Web5.dll


TEMPAT SAMPAH
Release/net8.0/Apq.Web5.pdb


TEMPAT SAMPAH
Release/net8.0/Apq.dll


TEMPAT SAMPAH
Release/net8.0/Apq.pdb


+ 224 - 91
Release/net8.0/Apq.xml

@@ -3411,88 +3411,6 @@
             提取中文(连在一起)
             </summary>
         </member>
-        <member name="M:Apq.Extension.Ext_String.Regex_IP4">
-            <remarks>
-            Pattern:<br/>
-            <code>^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$</code><br/>
-            Explanation:<br/>
-            <code>
-            ○ Match if at the beginning of the string.<br/>
-            ○ 1st capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match '.'.<br/>
-            ○ 2nd capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match '.'.<br/>
-            ○ 3rd capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match '.'.<br/>
-            ○ 4th capture group.<br/>
-                ○ Match with 3 alternative expressions.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match '2'.<br/>
-                        ○ Match with 2 alternative expressions.<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match '5'.<br/>
-                                ○ Match a character in the set [0-5].<br/>
-                            ○ Match a sequence of expressions.<br/>
-                                ○ Match a character in the set [0-4].<br/>
-                                ○ Match a Unicode digit.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [01].<br/>
-                        ○ Match a Unicode digit exactly 2 times.<br/>
-                    ○ Match a sequence of expressions.<br/>
-                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
-                        ○ Match a Unicode digit.<br/>
-            ○ Match if at the end of the string or if before an ending newline.<br/>
-            </code>
-            </remarks>
-        </member>
         <member name="M:Apq.Extension.Ext_String.IsIP4(System.String)">
             <summary>
             判断字符串是否为IP4
@@ -3843,6 +3761,16 @@
             <param name="Min">最小值(含)</param>
             <param name="Max">最大值(含)</param>
         </member>
+        <member name="T:Apq.Net.MyIP">
+            <summary>
+            访问https://myip.ipip.net,获取外网IP
+            </summary>
+        </member>
+        <member name="M:Apq.Net.MyIP.GetMyIP(System.Threading.CancellationToken)">
+            <summary>
+            访问https://myip.ipip.net,获取外网IP
+            </summary>
+        </member>
         <member name="T:Apq.Net.PersistentClient">
             <summary>
             代表一个连接到服务端的长连接(客户端)
@@ -5839,6 +5767,173 @@
             出错列名
             </summary>
         </member>
+        <member name="T:Apq.Text.RegexRepo">
+            <summary>
+            正则表达式库
+            </summary>
+        </member>
+        <member name="M:Apq.Text.RegexRepo.Regex_IP4_All">
+            <remarks>
+            Pattern:<br/>
+            <code>^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$</code><br/>
+            Explanation:<br/>
+            <code>
+            ○ Match if at the beginning of the string.<br/>
+            ○ 1st capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 2nd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 3rd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 4th capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match if at the end of the string or if before an ending newline.<br/>
+            </code>
+            </remarks>
+        </member>
+        <member name="M:Apq.Text.RegexRepo.Regex_IP4">
+            <remarks>
+            Pattern:<br/>
+            <code>(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)</code><br/>
+            Explanation:<br/>
+            <code>
+            ○ 1st capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 2nd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 3rd capture group.<br/>
+                ○ Match with 3 alternative expressions.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            ○ Match '.'.<br/>
+            ○ 4th capture group.<br/>
+                ○ Match with 3 alternative expressions, atomically.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match '2'.<br/>
+                        ○ Match with 2 alternative expressions, atomically.<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match '5'.<br/>
+                                ○ Match a character in the set [0-5].<br/>
+                            ○ Match a sequence of expressions.<br/>
+                                ○ Match a character in the set [0-4].<br/>
+                                ○ Match a Unicode digit.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [01].<br/>
+                        ○ Match a Unicode digit exactly 2 times.<br/>
+                    ○ Match a sequence of expressions.<br/>
+                        ○ Match a character in the set [1-9] greedily, optionally.<br/>
+                        ○ Match a Unicode digit.<br/>
+            </code>
+            </remarks>
+        </member>
         <member name="T:Apq.Text.TxtFileHelper">
             <summary>
             文本文件助手
@@ -6324,34 +6419,66 @@
             <param name="inputSpan">The text being scanned by the regular expression.</param>
             <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
         </member>
-        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_5">
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_All_5">
+            <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the Regex_IP4_All method.</summary>
+        </member>
+        <member name="F:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.Instance">
+            <summary>Cached, thread-safe singleton instance.</summary>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.#ctor">
+            <summary>Initializes the instance.</summary>
+        </member>
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory">
+            <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.CreateInstance">
+            <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
+        </member>
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner">
+            <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
+            <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
+            <param name="inputSpan">The text being scanned by the regular expression.</param>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
+            <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
+            <param name="inputSpan">The text being scanned by the regular expression.</param>
+            <returns>true if a possible match was found; false if no more matches are possible.</returns>
+        </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_All_5.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
+            <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
+            <param name="inputSpan">The text being scanned by the regular expression.</param>
+            <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
+        </member>
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_6">
             <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the Regex_IP4 method.</summary>
         </member>
-        <member name="F:System.Text.RegularExpressions.Generated.Regex_IP4_5.Instance">
+        <member name="F:System.Text.RegularExpressions.Generated.Regex_IP4_6.Instance">
             <summary>Cached, thread-safe singleton instance.</summary>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.#ctor">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.#ctor">
             <summary>Initializes the instance.</summary>
         </member>
-        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory">
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory">
             <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.CreateInstance">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.CreateInstance">
             <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
         </member>
-        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner">
+        <member name="T:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner">
             <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
             <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
             <param name="inputSpan">The text being scanned by the regular expression.</param>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
             <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
             <param name="inputSpan">The text being scanned by the regular expression.</param>
             <returns>true if a possible match was found; false if no more matches are possible.</returns>
         </member>
-        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_5.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
+        <member name="M:System.Text.RegularExpressions.Generated.Regex_IP4_6.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
             <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
             <param name="inputSpan">The text being scanned by the regular expression.</param>
             <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
@@ -6368,6 +6495,12 @@
         <member name="M:System.Text.RegularExpressions.Generated.Utilities.IndexOfAnyWhiteSpace(System.ReadOnlySpan{System.Char})">
             <summary>Finds the next index of any character that matches a whitespace character.</summary>
         </member>
+        <member name="M:System.Text.RegularExpressions.Generated.Utilities.IndexOfNonAsciiOrAny_43881A06280D7675CFDED4A0AE2E028BA08DAEBEDDC977512887A649161E5115(System.ReadOnlySpan{System.Char})">
+            <summary>Finds the next index of any character that matches a character in the set [0-9\d].</summary>
+        </member>
+        <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_asciiExceptDigits">
+            <summary>Supports searching for characters in or not in "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\n\v\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&amp;'()*+,-./:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f".</summary>
+        </member>
         <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_asciiExceptWhiteSpace">
             <summary>Supports searching for characters in or not in "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\b\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f!\"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f".</summary>
         </member>

TEMPAT SAMPAH
Release/net8.0/DB.MsSql.P.dll


TEMPAT SAMPAH
Release/net8.0/DB.MsSql.P.pdb