修改配置缓存逻辑

This commit is contained in:
bob
2025-08-11 17:20:09 +08:00
parent 9085c3003a
commit d2f6ba7c94
30 changed files with 214 additions and 56 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,100 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\work\\FantasyNetTest\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:FantasyNetTest\\Form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\work\\FantasyNetTest\\fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\work\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:FantasyNetTest\\TestProtocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\work\\FantasyNetTest\\FantasyNetTest\\Config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:FantasyNetTest\\Config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|D:\\work\\FantasyNetTest\\FantasyNetTest\\Log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:FantasyNetTest\\Log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Form1.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeToolTip": "FantasyNetTest\\Form1.cs",
"ViewState": "AgIAACQAAAAAAAAAAAAgwHECAAAEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T14:06:30.336Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "Form1.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Form1.cs",
"ToolTip": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "..\\..\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T11:09:51.154Z"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "TestProtocol.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\TestProtocol.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"RelativeToolTip": "FantasyNetTest\\TestProtocol.cs",
"ViewState": "AQIAAAYAAAAAAAAAAADwvxcAAAAlAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T09:28:41.991Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Config.json",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Config.json",
"RelativeDocumentMoniker": "FantasyNetTest\\Config.json",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Config.json",
"RelativeToolTip": "FantasyNetTest\\Config.json",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAMAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
"WhenOpened": "2025-08-10T07:28:50.344Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "Log.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Log.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"RelativeToolTip": "FantasyNetTest\\Log.cs",
"ViewState": "AQIAAEsAAAAAAAAAAAAYwB8AAAApAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T06:36:37.693Z"
}
]
}
]
}
]
}

View File

@@ -1,25 +1,29 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\myself\\Games\\FantasyNetTest\\",
"WorkspaceRootPath": "D:\\work\\FantasyNetTest\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\myself\\games\\fantasynettest\\fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\work\\fantasynettest\\fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|solutionrelative:fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|D:\\myself\\Games\\FantasyNetTest\\fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|D:\\work\\FantasyNetTest\\fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|solutionrelative:fantasynettest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
},
{
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\myself\\games\\fantasynettest\\fantasynettest\\testprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\work\\fantasynettest\\fantasynettest\\form1.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|solutionrelative:fantasynettest\\form1.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\work\\fantasynettest\\fantasynettest\\testprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|solutionrelative:fantasynettest\\testprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\myself\\games\\fantasynettest\\fantasynettest\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\work\\fantasynettest\\fantasynettest\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|solutionrelative:fantasynettest\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\myself\\games\\fantasynettest\\fantasynettest\\log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|d:\\work\\fantasynettest\\fantasynettest\\log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{812F24C9-1386-4A5F-AC1D-1840E28FA05D}|FantasyNetTest\\FantasyNetTest.csproj|solutionrelative:fantasynettest\\log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@@ -30,17 +34,30 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 0,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Form1.Designer.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.Designer.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Form1.Designer.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.Designer.cs",
"RelativeToolTip": "FantasyNetTest\\Form1.Designer.cs",
"ViewState": "AgIAAIwAAAAAAAAAAAAiwLoAAAASAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-11T09:04:01.709Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Form1.cs",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Form1.cs",
"ToolTip": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeToolTip": "FantasyNetTest\\Form1.cs",
"ViewState": "AQIAAGcCAAAAAAAAAAAiwHUCAAAAAAAA",
"ViewState": "AgIAADkAAAAAAAAAAAAgwPcCAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T14:06:30.336Z",
"EditorCaption": ""
@@ -49,9 +66,9 @@
"$type": "Document",
"DocumentIndex": 1,
"Title": "Form1.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Form1.cs",
"ToolTip": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs [\u8BBE\u8BA1]",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs [\u8BBE\u8BA1]",
"RelativeToolTip": "FantasyNetTest\\Form1.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T11:09:51.154Z",
@@ -59,23 +76,24 @@
},
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 3,
"Title": "TestProtocol.cs",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\TestProtocol.cs",
"ToolTip": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"RelativeToolTip": "FantasyNetTest\\TestProtocol.cs",
"ViewState": "AQIAAAYAAAAAAAAAAADwvxcAAAAlAAAA",
"ViewState": "AgIAAAYAAAAAAAAAAADwvxcAAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T09:28:41.991Z"
"WhenOpened": "2025-08-10T09:28:41.991Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 4,
"Title": "Config.json",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Config.json",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Config.json",
"RelativeDocumentMoniker": "FantasyNetTest\\Config.json",
"ToolTip": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Config.json",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Config.json",
"RelativeToolTip": "FantasyNetTest\\Config.json",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAMAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
@@ -83,11 +101,11 @@
},
{
"$type": "Document",
"DocumentIndex": 4,
"DocumentIndex": 5,
"Title": "Log.cs",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"RelativeDocumentMoniker": "FantasyNetTest\\Log.cs",
"ToolTip": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"ToolTip": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"RelativeToolTip": "FantasyNetTest\\Log.cs",
"ViewState": "AQIAAEsAAAAAAAAAAAAYwB8AAAApAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,8 +1,11 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArgumentNullException_002Ecs_002Fl_003AC_0021_003FUsers_003Fbob_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F7fcc41fe48c43f71d1476329de953fce8565fcc5dbf3c8c6fdb81c216b19c4_003FArgumentNullException_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AComboBox_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fce02df019cd24b8b9cbae16d58cdd1e7cee8a0_003F41_003Faa378fa3_003FComboBox_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADockStyle_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fce02df019cd24b8b9cbae16d58cdd1e7cee8a0_003F1e_003F1b6a177c_003FDockStyle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fde3edec1170e48a0a2478d8743508635c8e910_003F1b_003F30d746c0_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANativeWindow_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fce02df019cd24b8b9cbae16d58cdd1e7cee8a0_003F63_003F48c3a174_003FNativeWindow_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANativeWindow_002Ecs_002Fl_003AC_0021_003FUsers_003Fbob_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fda570befe0d840bbba1e7d691e03cce1cef908_003F89_003F17236176_003FNativeWindow_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APath_002EWindows_002Ecs_002Fl_003AC_0021_003FUsers_003Fbob_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F4c2266d9aba4c4ba36aec62278534ed6bbd881431c65810dd69b8d57bbf_003FPath_002EWindows_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APropertyInfo_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fde3edec1170e48a0a2478d8743508635c8e910_003F07_003F70ad38ae_003FPropertyInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATextBoxBase_002Ecs_002Fl_003AC_0021_003FUsers_003F60527_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fce02df019cd24b8b9cbae16d58cdd1e7cee8a0_003F73_003F00565224_003FTextBoxBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=FantasyNetTest_002FForm1/@EntryIndexedValue">True</s:Boolean>

View File

@@ -13,13 +13,13 @@ public class Config
/// </summary>
public int Heartbeat { get; set; } = 5;
/// <summary>
/// 默认账号
/// </summary>
public string Account { get; set; } = "";
/// <summary>
/// 协议目录
/// </summary>
public string ProtocolScriptPath { get; set; } = "";
/// <summary>
/// 缓存账号列表
/// </summary>
public HashSet<string> Accounts { get; set; } = [];
}

View File

@@ -1,6 +1,5 @@
{
"Server": "127.0.0.1:20001",
"Heartbeat": 5,
"ProtocolScriptPath": "D:\\myself\\Games\\Fishing2\\Assets\\Scripts\\Generate",
"Account": "test003"
"ProtocolScriptPath": "D:\\work\\Fishing2\\Assets\\Scripts\\Generate"
}

View File

@@ -35,7 +35,7 @@ partial class Form1
logTextBox = new RichTextBox();
groupBox1 = new GroupBox();
buttonConnect = new Button();
textBoxAccount = new TextBox();
comboBoxAccount = new ComboBox();
groupBox2 = new GroupBox();
panel1 = new Panel();
buttonSend = new Button();
@@ -43,6 +43,7 @@ partial class Form1
groupBox3 = new GroupBox();
comboBoxProtocol = new ComboBox();
timer2 = new System.Windows.Forms.Timer(components);
linkLabel2 = new LinkLabel();
groupBox4.SuspendLayout();
groupBox1.SuspendLayout();
groupBox2.SuspendLayout();
@@ -87,7 +88,7 @@ partial class Form1
// groupBox1
//
groupBox1.Controls.Add(buttonConnect);
groupBox1.Controls.Add(textBoxAccount);
groupBox1.Controls.Add(comboBoxAccount);
groupBox1.Location = new Point(7, 7);
groupBox1.Name = "groupBox1";
groupBox1.Size = new Size(316, 62);
@@ -97,20 +98,21 @@ partial class Form1
//
// buttonConnect
//
buttonConnect.Location = new Point(235, 23);
buttonConnect.Location = new Point(235, 22);
buttonConnect.Name = "buttonConnect";
buttonConnect.Size = new Size(75, 23);
buttonConnect.Size = new Size(75, 26);
buttonConnect.TabIndex = 2;
buttonConnect.Text = "登录";
buttonConnect.UseVisualStyleBackColor = true;
buttonConnect.Click += buttonConnect_Click;
//
// textBoxAccount
// comboBoxAccount
//
textBoxAccount.Location = new Point(10, 23);
textBoxAccount.Name = "textBoxAccount";
textBoxAccount.Size = new Size(219, 23);
textBoxAccount.TabIndex = 0;
comboBoxAccount.FormattingEnabled = true;
comboBoxAccount.Location = new Point(10, 23);
comboBoxAccount.Name = "comboBoxAccount";
comboBoxAccount.Size = new Size(219, 25);
comboBoxAccount.TabIndex = 0;
//
// groupBox2
//
@@ -150,6 +152,7 @@ partial class Form1
// groupBox3
//
groupBox3.Controls.Add(comboBoxProtocol);
groupBox3.Controls.Add(linkLabel2);
groupBox3.Location = new Point(7, 75);
groupBox3.Name = "groupBox3";
groupBox3.Size = new Size(316, 64);
@@ -171,6 +174,19 @@ partial class Form1
timer2.Interval = 16;
timer2.Tick += timer2_Tick;
//
// linkLabel2
//
linkLabel2.AutoSize = true;
linkLabel2.LinkBehavior = LinkBehavior.NeverUnderline;
linkLabel2.LinkColor = Color.Black;
linkLabel2.Location = new Point(295, 13);
linkLabel2.Name = "linkLabel2";
linkLabel2.Size = new Size(16, 17);
linkLabel2.TabIndex = 3;
linkLabel2.TabStop = true;
linkLabel2.Text = "R";
linkLabel2.LinkClicked += linkLabel2_LinkClicked;
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
@@ -186,9 +202,9 @@ partial class Form1
groupBox4.ResumeLayout(false);
groupBox4.PerformLayout();
groupBox1.ResumeLayout(false);
groupBox1.PerformLayout();
groupBox2.ResumeLayout(false);
groupBox3.ResumeLayout(false);
groupBox3.PerformLayout();
ResumeLayout(false);
}
@@ -198,13 +214,15 @@ partial class Form1
private GroupBox groupBox2;
private GroupBox groupBox4;
private RichTextBox logTextBox;
private TextBox textBoxAccount;
// private TextBox textBoxAccount;
private Button buttonConnect;
private Button buttonSend;
private System.Windows.Forms.Timer timer1;
private LinkLabel linkLabel1;
private GroupBox groupBox3;
private ComboBox comboBoxProtocol;
private ComboBox comboBoxAccount;
private Panel panel1;
private System.Windows.Forms.Timer timer2;
private LinkLabel linkLabel2;
}

View File

@@ -25,7 +25,7 @@ public partial class Form1 : Form
private Scene _scene;
private string PathRoot;
private string _nowAccount;
public Form1()
{
@@ -38,7 +38,11 @@ public partial class Form1 : Form
comboBoxProtocol.DropDownStyle = ComboBoxStyle.DropDownList;
_config ??= new Config();
LoadConfig();
textBoxAccount.Text = _config.Account;
if (_config.Accounts.Count > 0)
{
comboBoxAccount.Text = _config.Accounts.First();
}
_scriptLoader = new ScriptLoader();
@@ -128,7 +132,6 @@ public partial class Form1 : Form
#endregion
#region
private Session? _session;
@@ -293,7 +296,6 @@ public partial class Form1 : Form
#endregion
#region Config
private void LoadConfig()
@@ -305,7 +307,6 @@ public partial class Form1 : Form
var cfg = JsonSerializer.Deserialize<Config>(jsonContent);
if (cfg != null)
{
_config.Account = cfg.Account;
_config.Server = cfg.Server;
_config.Heartbeat = cfg.Heartbeat;
_config.ProtocolScriptPath = cfg.ProtocolScriptPath;
@@ -315,7 +316,8 @@ public partial class Form1 : Form
private void SaveConfig()
{
_config.Account = textBoxAccount.Text;
var account = comboBoxAccount.Text;
_config.Accounts.Add(account);
var configPath = Path.Combine(Application.StartupPath, "Config.json");
var json = JsonSerializer.Serialize(_config);
File.WriteAllText(configPath, json);
@@ -354,7 +356,6 @@ public partial class Form1 : Form
var index = comboBox.SelectedIndex;
var proto = comboBox.SelectedItem?.ToString();
Log.Info($"选中协议:{proto} Index={index}");
SelectedProtocol(_allRequest[index]);
}
@@ -381,7 +382,6 @@ public partial class Form1 : Form
// 清除现有控件
containerPanel.Controls.Clear();
// 创建TableLayoutPanel
var tablePanel = new TableLayoutPanel
{
@@ -421,7 +421,6 @@ public partial class Form1 : Form
// 设置固定的行高
int rowHeight = 30; // 每行固定高度
// 添加属性和值输入框
for (int i = 0; i < properties.Length; i++)
{
@@ -626,7 +625,9 @@ public partial class Form1 : Form
#region
private string ProtocolPathPath = Path.Combine(Application.StartupPath, "Protocol");
private string ProtocolPathPath => string.IsNullOrEmpty(_nowAccount)
? Path.Combine(Application.StartupPath, "Protocol")
: Path.Combine(Application.StartupPath, _nowAccount, "Protocol");
private void CacheProtocol(object obj)
{
@@ -710,16 +711,17 @@ public partial class Form1 : Form
private void buttonConnect_Click(object sender, EventArgs e)
{
_nowAccount = comboBoxAccount.Text;
if (_session == null)
{
if (string.IsNullOrEmpty(textBoxAccount.Text))
if (string.IsNullOrEmpty(comboBoxAccount.Text))
{
Log.Error("未输入账号");
return;
}
//登录
OnLoginButtonClick(textBoxAccount.Text).Coroutine();
OnLoginButtonClick(comboBoxAccount.Text).Coroutine();
SwitchLoginButtonState();
}
else
@@ -753,5 +755,10 @@ public partial class Form1 : Form
}
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Log.Info("重新加载协议");
}
#endregion
}

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Microsoft ResX Schema
Version 2.0
@@ -48,7 +48,7 @@
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -123,4 +123,7 @@
<metadata name="timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>109, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>430</value>
</metadata>
</root>

View File

@@ -23,6 +23,10 @@ public static class CoderLoader
var interfaces = type.GetInterfaces();
if (interfaces.Contains(reqTpe) && !type.IsAbstract)
{
if (interfaces.Contains(typeof(IRouteMessage)) && !interfaces.Contains(typeof(ICustomRouteRequest)))
{
continue;
}
_requestTypes.Add(type);
}
}
@@ -107,9 +111,9 @@ public static class CoderLoader
{
if (propertyInfo.Name == fieldName)
{
}
}
PropertyInfo? field = type.GetProperty(fieldName); // 默认只查找公共实例字段
if (field == null)