修改配置缓存逻辑

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, "Version": 1,
"WorkspaceRootPath": "D:\\myself\\Games\\FantasyNetTest\\", "WorkspaceRootPath": "D:\\work\\FantasyNetTest\\",
"Documents": [ "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}" "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" "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}" "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}" "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}" "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": [ "DocumentGroups": [
{ {
"DockedWidth": 200, "DockedWidth": 200,
"SelectedChildIndex": 0, "SelectedChildIndex": 1,
"Children": [ "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", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 0,
"Title": "Form1.cs", "Title": "Form1.cs",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs", "DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeDocumentMoniker": "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", "RelativeToolTip": "FantasyNetTest\\Form1.cs",
"ViewState": "AQIAAGcCAAAAAAAAAAAiwHUCAAAAAAAA", "ViewState": "AgIAADkAAAAAAAAAAAAgwPcCAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T14:06:30.336Z", "WhenOpened": "2025-08-10T14:06:30.336Z",
"EditorCaption": "" "EditorCaption": ""
@@ -49,9 +66,9 @@
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 1,
"Title": "Form1.cs [\u8BBE\u8BA1]", "Title": "Form1.cs [\u8BBE\u8BA1]",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Form1.cs", "DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Form1.cs",
"RelativeDocumentMoniker": "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]", "RelativeToolTip": "FantasyNetTest\\Form1.cs [\u8BBE\u8BA1]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T11:09:51.154Z", "WhenOpened": "2025-08-10T11:09:51.154Z",
@@ -59,23 +76,24 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 2, "DocumentIndex": 3,
"Title": "TestProtocol.cs", "Title": "TestProtocol.cs",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs", "DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\TestProtocol.cs",
"RelativeDocumentMoniker": "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", "RelativeToolTip": "FantasyNetTest\\TestProtocol.cs",
"ViewState": "AQIAAAYAAAAAAAAAAADwvxcAAAAlAAAA", "ViewState": "AgIAAAYAAAAAAAAAAADwvxcAAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-10T09:28:41.991Z" "WhenOpened": "2025-08-10T09:28:41.991Z",
"EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 3, "DocumentIndex": 4,
"Title": "Config.json", "Title": "Config.json",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Config.json", "DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Config.json",
"RelativeDocumentMoniker": "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", "RelativeToolTip": "FantasyNetTest\\Config.json",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAMAAAABAAAA", "ViewState": "AQIAAAAAAAAAAAAAAAAAAAMAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
@@ -83,11 +101,11 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 4, "DocumentIndex": 5,
"Title": "Log.cs", "Title": "Log.cs",
"DocumentMoniker": "D:\\myself\\Games\\FantasyNetTest\\FantasyNetTest\\Log.cs", "DocumentMoniker": "D:\\work\\FantasyNetTest\\FantasyNetTest\\Log.cs",
"RelativeDocumentMoniker": "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", "RelativeToolTip": "FantasyNetTest\\Log.cs",
"ViewState": "AQIAAEsAAAAAAAAAAAAYwB8AAAApAAAA", "ViewState": "AQIAAEsAAAAAAAAAAAAYwB8AAAApAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "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"> <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_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_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_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_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_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: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> <s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=FantasyNetTest_002FForm1/@EntryIndexedValue">True</s:Boolean>

View File

@@ -13,13 +13,13 @@ public class Config
/// </summary> /// </summary>
public int Heartbeat { get; set; } = 5; public int Heartbeat { get; set; } = 5;
/// <summary>
/// 默认账号
/// </summary>
public string Account { get; set; } = "";
/// <summary> /// <summary>
/// 协议目录 /// 协议目录
/// </summary> /// </summary>
public string ProtocolScriptPath { get; set; } = ""; 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", "Server": "127.0.0.1:20001",
"Heartbeat": 5, "Heartbeat": 5,
"ProtocolScriptPath": "D:\\myself\\Games\\Fishing2\\Assets\\Scripts\\Generate", "ProtocolScriptPath": "D:\\work\\Fishing2\\Assets\\Scripts\\Generate"
"Account": "test003"
} }

View File

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

View File

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

View File

@@ -123,4 +123,7 @@
<metadata name="timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>109, 17</value> <value>109, 17</value>
</metadata> </metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>430</value>
</metadata>
</root> </root>

View File

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