diff --git a/Common/Common.csproj b/Common/Common.csproj
index a7490a8..4c29373 100644
--- a/Common/Common.csproj
+++ b/Common/Common.csproj
@@ -12,6 +12,8 @@
true
Some advanced visual controls and utilities for Windows app.
true
+ true
+ Logo.ico
logo.png
ui tiles lwa
diff --git a/Materials/WinKit.ico b/Common/Logo.ico
similarity index 100%
rename from Materials/WinKit.ico
rename to Common/Logo.ico
diff --git a/Console/Console.csproj b/Console/Console.csproj
index 38fb017..0883f53 100644
--- a/Console/Console.csproj
+++ b/Console/Console.csproj
@@ -10,6 +10,8 @@
The console utilities and rich user interface console.
https://github.com/nuscien/trivial/wiki/console
true
+ true
+ Logo.ico
cmd.png
https://github.com/nuscien/trivial/raw/master/Materials/logo.png
console
diff --git a/Console/Logo.ico b/Console/Logo.ico
new file mode 100644
index 0000000..516294d
Binary files /dev/null and b/Console/Logo.ico differ
diff --git a/Debugger/Helper.cs b/Debugger/Helper.cs
index 01aa808..5edea2b 100644
--- a/Debugger/Helper.cs
+++ b/Debugger/Helper.cs
@@ -272,7 +272,7 @@ internal static void AddKeyValuePairs(BaseJsonValueNode json, UIElementCollectio
kindElement.Value = InternalResource.Number;
if (json is IJsonValueNode l)
{
- kindElement.Value = l.Value <= JsonIntegerNode.MaxSafeInteger && l.Value >= JsonIntegerNode.MinSafeInteger ? "Integer" : "Integer (unsafe)";
+ kindElement.Value = l.Value <= JsonIntegerNode.MaxSafeInteger && l.Value >= JsonIntegerNode.MinSafeInteger ? InternalResource.Integer : $"{InternalResource.Integer} ({InternalResource.Unsafe})";
AddKeyValuePair(panel, InternalResource.Value, l.Value.ToString());
AddLocaleString(panel, l.Value);
}
diff --git a/Debugger/InternalResource.Designer.cs b/Debugger/InternalResource.Designer.cs
index 3d4a670..d369ddc 100644
--- a/Debugger/InternalResource.Designer.cs
+++ b/Debugger/InternalResource.Designer.cs
@@ -96,6 +96,15 @@ internal static string Comment {
}
}
+ ///
+ /// 查找类似 Copy 的本地化字符串。
+ ///
+ internal static string Copy {
+ get {
+ return ResourceManager.GetString("Copy", resourceCulture);
+ }
+ }
+
///
/// 查找类似 Count 的本地化字符串。
///
@@ -249,6 +258,15 @@ internal static string Undefined {
}
}
+ ///
+ /// 查找类似 Unsafe 的本地化字符串。
+ ///
+ internal static string Unsafe {
+ get {
+ return ResourceManager.GetString("Unsafe", resourceCulture);
+ }
+ }
+
///
/// 查找类似 Value 的本地化字符串。
///
diff --git a/Debugger/InternalResource.en.resx b/Debugger/InternalResource.en.resx
index e34a45f..2b0320d 100644
--- a/Debugger/InternalResource.en.resx
+++ b/Debugger/InternalResource.en.resx
@@ -183,4 +183,10 @@
False
+
+ Unsafe
+
+
+ Copy
+
\ No newline at end of file
diff --git a/Debugger/InternalResource.resx b/Debugger/InternalResource.resx
index 8189fb1..7a9ac2b 100644
--- a/Debugger/InternalResource.resx
+++ b/Debugger/InternalResource.resx
@@ -183,4 +183,10 @@
False
+
+ Unsafe
+
+
+ Copy
+
\ No newline at end of file
diff --git a/Debugger/InternalResource.zh-Hans.resx b/Debugger/InternalResource.zh-Hans.resx
index 3062e72..53175e7 100644
--- a/Debugger/InternalResource.zh-Hans.resx
+++ b/Debugger/InternalResource.zh-Hans.resx
@@ -183,4 +183,10 @@
假
+
+ 不安全
+
+
+ 复制
+
\ No newline at end of file
diff --git a/Debugger/JsonDebuggerVisualizer.cs b/Debugger/JsonDebuggerVisualizer.cs
new file mode 100644
index 0000000..8e41d9d
--- /dev/null
+++ b/Debugger/JsonDebuggerVisualizer.cs
@@ -0,0 +1,75 @@
+using Microsoft.VisualStudio.DebuggerVisualizers;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Runtime.InteropServices.ComTypes;
+using System.Text;
+using System.Text.Json;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Threading.Tasks;
+using Trivial.Collection;
+using Trivial.Data;
+using Trivial.Diagnostics;
+using Trivial.Reflection;
+using Trivial.Text;
+
+#if NETFRAMEWORK
+[assembly: System.Diagnostics.DebuggerVisualizer(
+typeof(JsonDebuggerVisualizer),
+typeof(JsonObjectSource),
+Target = typeof(JsonObjectNode),
+Description = "JSON object node visualizer")]
+[assembly: System.Diagnostics.DebuggerVisualizer(
+typeof(JsonDebuggerVisualizer),
+typeof(JsonObjectSource),
+Target = typeof(JsonArrayNode),
+Description = "JSON array node visualizer")]
+#endif
+
+namespace Trivial.Diagnostics;
+
+#if NETFRAMEWORK
+///
+/// The Visual Studio debugger visualizer for JSON.
+///
+internal class JsonDebuggerVisualizer : DialogDebuggerVisualizer
+{
+ ///
+ /// Initializes a new instance of the JsonDebuggerVisualizer class.
+ ///
+ public JsonDebuggerVisualizer()
+ : base(FormatterPolicy.Json)
+ {
+ }
+
+ ///
+ protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
+ {
+ //var data = (objectProvider as IVisualizerObjectProvider3)?.GetObject();
+ var data = (objectProvider as IVisualizerObjectProvider3)?.GetObject();
+ var form = new JsonViewerWindow();
+ form.Set(data);
+ form.ShowDialog();
+ }
+}
+#endif
+
+///
+/// The visualizer object source for JSON.
+///
+internal class JsonObjectSource : VisualizerObjectSource
+{
+ ///
+ public override void GetData(object target, Stream outgoingData)
+ {
+ var o = target as BaseJsonValueNode;
+ var writer = new Utf8JsonWriter(outgoingData);
+ o.WriteTo(writer);
+ }
+
+ ///
+ public override object CreateReplacementObject(object target, Stream incomingData)
+ => JsonSerializer.Deserialize(incomingData);
+}
diff --git a/Debugger/JsonObjectNodeDebuggerVisualizer.cs b/Debugger/JsonObjectNodeDebuggerVisualizer.cs
deleted file mode 100644
index d1cd81d..0000000
--- a/Debugger/JsonObjectNodeDebuggerVisualizer.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-#if NETFRAMEWORK
-using Microsoft.VisualStudio.DebuggerVisualizers;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Runtime.InteropServices.ComTypes;
-using System.Text;
-using System.Text.Json;
-using System.Threading;
-using System.Threading.Tasks;
-using Trivial.Collection;
-using Trivial.Data;
-using Trivial.Reflection;
-using Trivial.Text;
-
-[assembly: System.Diagnostics.DebuggerVisualizer(
-typeof(Trivial.Diagnostics.JsonObjectNodeDebuggerVisualizer),
-typeof(VisualizerObjectSource),
-Target = typeof(JsonObjectNode),
-Description = "JSON object node visualizer")]
-[assembly: System.Diagnostics.DebuggerVisualizer(
-typeof(Trivial.Diagnostics.JsonObjectNodeDebuggerVisualizer),
-typeof(VisualizerObjectSource),
-Target = typeof(JsonArrayNode),
-Description = "JSON array node visualizer")]
-
-namespace Trivial.Diagnostics;
-
-///
-/// The Visual Studio debugger visualizer for JSON object node.
-///
-public class JsonObjectNodeDebuggerVisualizer : DialogDebuggerVisualizer
-{
- ///
- /// Initializes a new instance of the JsonObjectNodeDebuggerVisualizer class.
- ///
- public JsonObjectNodeDebuggerVisualizer()
- : base(FormatterPolicy.Json)
- {
- }
-
- ///
- protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
- {
- var data = (objectProvider as IVisualizerObjectProvider3)?.GetObject();
- var form = new JsonViewerWindow();
- form.Set(data);
- form.ShowDialog();
- }
-}
-#endif
diff --git a/Debugger/JsonViewer.xaml b/Debugger/JsonViewer.xaml
index 32dc6ab..0b6d61f 100644
--- a/Debugger/JsonViewer.xaml
+++ b/Debugger/JsonViewer.xaml
@@ -12,7 +12,7 @@
-
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 4282c59..9e45380 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -7,6 +7,7 @@
+
diff --git a/Web/Web.csproj b/Web/Web.csproj
index f216659..5cf641c 100644
--- a/Web/Web.csproj
+++ b/Web/Web.csproj
@@ -9,6 +9,7 @@
Trivial.Web
A library for web API.
true
+ true
web.png
https://github.com/nuscien/trivial/raw/master/Materials/logo.png
web mvc