From fd770e06b19cbcd2e8bf044723b05266e5d18962 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 12 Jan 2021 18:24:49 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20Console.Write=20?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=85=BC=E5=AE=B9=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?#643?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LazyLoadingComplier.cs | 2 +- FreeSql/FreeSql.xml | 2 +- FreeSql/Internal/ObjectPool/DefaultPolicy.cs | 3 - FreeSql/Internal/ObjectPool/ObjectPool.cs | 73 +++++++++++-------- .../新建文本文档.txt | 21 ------ 5 files changed, 44 insertions(+), 57 deletions(-) delete mode 100644 Providers/FreeSql.Provider.Firebird/新建文本文档.txt diff --git a/Extensions/FreeSql.Extensions.LazyLoading/LazyLoadingComplier.cs b/Extensions/FreeSql.Extensions.LazyLoading/LazyLoadingComplier.cs index e89f72e0..3a3f8351 100644 --- a/Extensions/FreeSql.Extensions.LazyLoading/LazyLoadingComplier.cs +++ b/Extensions/FreeSql.Extensions.LazyLoading/LazyLoadingComplier.cs @@ -49,7 +49,7 @@ namespace FreeSql.Extensions.LazyLoading if (!dll.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) && !dll.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) continue; - Console.WriteLine(dll); + //Console.WriteLine(dll); var dllName = string.Empty; var idx = dll.LastIndexOf('/'); if (idx != -1) dllName = dll.Substring(idx + 1); diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 7f84d792..6a7e15e8 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -4316,7 +4316,7 @@ 策略 - + 获取可用资源,或创建资源 diff --git a/FreeSql/Internal/ObjectPool/DefaultPolicy.cs b/FreeSql/Internal/ObjectPool/DefaultPolicy.cs index 744b8b8b..1e7e47a0 100644 --- a/FreeSql/Internal/ObjectPool/DefaultPolicy.cs +++ b/FreeSql/Internal/ObjectPool/DefaultPolicy.cs @@ -33,7 +33,6 @@ namespace FreeSql.Internal.ObjectPool public void OnGet(Object obj) { - //Console.WriteLine("Get: " + obj); OnGetObject?.Invoke(obj); } @@ -41,7 +40,6 @@ namespace FreeSql.Internal.ObjectPool #else public Task OnGetAsync(Object obj) { - //Console.WriteLine("GetAsync: " + obj); OnGetObject?.Invoke(obj); return Task.FromResult(true); } @@ -54,7 +52,6 @@ namespace FreeSql.Internal.ObjectPool public void OnReturn(Object obj) { - //Console.WriteLine("Return: " + obj); } public bool OnCheckAvailable(Object obj) diff --git a/FreeSql/Internal/ObjectPool/ObjectPool.cs b/FreeSql/Internal/ObjectPool/ObjectPool.cs index 6e760519..ac4d21e6 100644 --- a/FreeSql/Internal/ObjectPool/ObjectPool.cs +++ b/FreeSql/Internal/ObjectPool/ObjectPool.cs @@ -9,6 +9,40 @@ using System.Threading.Tasks; namespace FreeSql.Internal.ObjectPool { + internal class TestTrace + { + internal static void WriteLine(string text, ConsoleColor backgroundColor) + { + try //#643 + { + var bgcolor = Console.BackgroundColor; + var forecolor = Console.ForegroundColor; + Console.BackgroundColor = backgroundColor; + + switch (backgroundColor) + { + case ConsoleColor.Yellow: + Console.ForegroundColor = ConsoleColor.White; + break; + case ConsoleColor.DarkGreen: + Console.ForegroundColor = ConsoleColor.White; + break; + } + Console.Write(text); + Console.BackgroundColor = bgcolor; + Console.ForegroundColor = forecolor; + Console.WriteLine(); + } + catch + { + try + { + System.Diagnostics.Debug.WriteLine(text); + } + catch { } + } + } + } /// /// 对象池管理类 @@ -74,16 +108,7 @@ namespace FreeSql.Internal.ObjectPool { if (UnavailableException != null) - { - var bgcolor = Console.BackgroundColor; - var forecolor = Console.ForegroundColor; - Console.BackgroundColor = ConsoleColor.DarkYellow; - Console.ForegroundColor = ConsoleColor.White; - Console.Write($"【{Policy.Name}】恢复检查时间:{DateTime.Now.AddSeconds(interval)}"); - Console.BackgroundColor = bgcolor; - Console.ForegroundColor = forecolor; - Console.WriteLine(); - } + TestTrace.WriteLine($"【{Policy.Name}】恢复检查时间:{DateTime.Now.AddSeconds(interval)}", ConsoleColor.DarkYellow); while (UnavailableException != null) { @@ -97,7 +122,7 @@ namespace FreeSql.Internal.ObjectPool try { - var conn = getFree(false); + var conn = GetFree(false); if (conn == null) throw new Exception($"CheckAvailable 无法获得资源,{this.Statistics}"); try @@ -116,14 +141,7 @@ namespace FreeSql.Internal.ObjectPool } catch (Exception ex) { - var bgcolor = Console.BackgroundColor; - var forecolor = Console.ForegroundColor; - Console.BackgroundColor = ConsoleColor.DarkYellow; - Console.ForegroundColor = ConsoleColor.White; - Console.Write($"【{Policy.Name}】仍然不可用,下一次恢复检查时间:{DateTime.Now.AddSeconds(interval)},错误:({ex.Message})"); - Console.BackgroundColor = bgcolor; - Console.ForegroundColor = forecolor; - Console.WriteLine(); + TestTrace.WriteLine($"【{Policy.Name}】仍然不可用,下一次恢复检查时间:{DateTime.Now.AddSeconds(interval)},错误:({ex.Message})", ConsoleColor.DarkYellow); } } @@ -160,14 +178,7 @@ namespace FreeSql.Internal.ObjectPool Policy.OnAvailable(); - var bgcolor = Console.BackgroundColor; - var forecolor = Console.ForegroundColor; - Console.BackgroundColor = ConsoleColor.DarkGreen; - Console.ForegroundColor = ConsoleColor.White; - Console.Write($"【{Policy.Name}】已恢复工作"); - Console.BackgroundColor = bgcolor; - Console.ForegroundColor = forecolor; - Console.WriteLine(); + TestTrace.WriteLine($"【{Policy.Name}】已恢复工作", ConsoleColor.DarkGreen); } } @@ -177,7 +188,7 @@ namespace FreeSql.Internal.ObjectPool try { - var conn = getFree(false); + var conn = GetFree(false); if (conn == null) throw new Exception($"LiveCheckAvailable 无法获得资源,{this.Statistics}"); try @@ -260,7 +271,7 @@ namespace FreeSql.Internal.ObjectPool /// 获取可用资源,或创建资源 /// /// - private Object getFree(bool checkAvailable) + private Object GetFree(bool checkAvailable) { if (running == false) @@ -300,7 +311,7 @@ namespace FreeSql.Internal.ObjectPool public Object Get(TimeSpan? timeout = null) { - var obj = getFree(true); + var obj = GetFree(true); if (obj == null) { @@ -357,7 +368,7 @@ namespace FreeSql.Internal.ObjectPool async public Task> GetAsync() { - var obj = getFree(true); + var obj = GetFree(true); if (obj == null) { diff --git a/Providers/FreeSql.Provider.Firebird/新建文本文档.txt b/Providers/FreeSql.Provider.Firebird/新建文本文档.txt deleted file mode 100644 index a6d19602..00000000 --- a/Providers/FreeSql.Provider.Firebird/新建文本文档.txt +++ /dev/null @@ -1,21 +0,0 @@ -case DataType.Firebird: - type = Type.GetType("FreeSql.Firebird.FirebirdProvider`1,FreeSql.Provider.Firebird")?.MakeGenericType(typeof(TMark)); - if (type == null) throwNotFind("FreeSql.Provider.Firebird.dll", "FreeSql.Firebird.FirebirdProvider<>"); - break; - - - - - static Lazy firebirdLazy = new Lazy(() => new FreeSql.FreeSqlBuilder() - .UseConnectionString(FreeSql.DataType.Firebird, @"database=localhost:D:\fbdata\EXAMPLES.fdb;user=sysdba;password=123456;max pool size=5") - //.UseConnectionFactory(FreeSql.DataType.Firebird, () => new FirebirdSql.Data.FirebirdClient.FbConnection(@"database=localhost:D:\fbdata\EXAMPLES.fdb;user=sysdba;password=123456;max pool size=5")) - .UseAutoSyncStructure(true) - .UseLazyLoading(true) - .UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper) - //.UseNoneCommandParameter(true) - - .UseMonitorCommand( - cmd => Trace.WriteLine(cmd.CommandText), //监听SQL命令对象,在执行前 - (cmd, traceLog) => Console.WriteLine(traceLog)) - .Build()); - public static IFreeSql firebird => firebirdLazy.Value; \ No newline at end of file