lith 5 år sedan
förälder
incheckning
8584ad55b4
100 ändrade filer med 869 tillägg och 283 borttagningar
  1. 6 5
      dotnet/Doc/Release/pack sers_lib.bat
  2. 6 6
      dotnet/Doc/Release/publish sers.bat
  3. 79 63
      dotnet/Sers.sln
  4. 5 5
      dotnet/Sers/ApiLoader/Sers.NetcoreLoader/ApiLoader.cs
  5. 5 4
      dotnet/Sers/ApiLoader/Sers.NetcoreLoader/Extensions/LocalApiServiceExtensions.cs
  6. 3 3
      dotnet/Sers/ApiLoader/Sers.NetcoreLoader/LocalApiNode.cs
  7. 0 0
      dotnet/Sers/ApiLoader/Sers.NetcoreLoader/Properties/PublishProfiles/FolderProfile.pubxml
  8. 4 4
      dotnet/Sers/ApiLoader/Sers.NetcoreLoader/Sers.NetcoreLoader.csproj
  9. 3 4
      dotnet/Sers/ApiLoader/Sers.Serslot/ApiLoader.cs
  10. 3 3
      dotnet/Sers/ApiLoader/Sers.Serslot/ControllerHelp.cs
  11. 0 0
      dotnet/Sers/ApiLoader/Sers.Serslot/ExceptionFilter/ExceptionFilter.cs
  12. 6 4
      dotnet/Sers/ApiLoader/Sers.Serslot/Extensions/LocalApiServiceExtensions.cs
  13. 1 1
      dotnet/Sers/ApiLoader/Sers.Serslot/Extensions/SerslotServer_ProcessRequest_Extensions.cs
  14. 1 1
      dotnet/Sers/ApiLoader/Sers.Serslot/Extensions/WebHostBuilderSerslotExtensions.cs
  15. 3 3
      dotnet/Sers/ApiLoader/Sers.Serslot/LocalApiNode.cs
  16. 0 0
      dotnet/Sers/ApiLoader/Sers.Serslot/Properties/PublishProfiles/FolderProfile.pubxml
  17. 5 3
      dotnet/Sers/ApiLoader/Sers.Serslot/Sers.Serslot.csproj
  18. 4 4
      dotnet/Sers/ApiLoader/Sers.Serslot/SerslotServer.cs
  19. 2 2
      dotnet/Sers/Sers.CL/Ipc/Sers.CL.Ipc.SharedMemory/Sers.CL.Ipc.SharedMemory.csproj
  20. 2 2
      dotnet/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Sers.CL.Socket.Iocp.csproj
  21. 2 2
      dotnet/Sers/Sers.CL/Socket/Sers.CL.Socket.ThreadWait/Sers.CL.Socket.ThreadWait.csproj
  22. 5 5
      dotnet/Sers/Sers.CL/Test/CommunicationManage/Client/ProgramQps.cs
  23. 1 1
      dotnet/Sers/Sers.CL/Test/CommunicationManage/Client/Statistics/StatisticsQpsInfo.cs
  24. 4 4
      dotnet/Sers/Sers.CL/Test/CommunicationManage/Server/Program.cs
  25. 1 1
      dotnet/Sers/Sers.CL/Test/CommunicationManage/Server/Statistics/StatisticsQpsInfo.cs
  26. 2 6
      dotnet/Sers/Sers.CL/Test/MessageDelivery/DeliveryTest/Program.cs
  27. 2 2
      dotnet/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/Sers.CL.WebSocket.csproj
  28. 2 2
      dotnet/Sers/Sers.CL/Zmq/FullDuplex/Sers.CL.Zmq.FullDuplex/Sers.CL.Zmq.FullDuplex.csproj
  29. 2 2
      dotnet/Sers/Sers.CL/Zmq/ThreadWait/Sers.CL.ClrZmq.ThreadWait/Sers.CL.ClrZmq.ThreadWait.csproj
  30. 0 1
      dotnet/Sers/Sers.Core/Sers.Core/Module/Api/ApiDesc/SsModelEntity.cs
  31. 0 1
      dotnet/Sers/Sers.Core/Sers.Core/Module/Api/ApiDesc/SsModelProperty.cs
  32. 7 6
      dotnet/Sers/Sers.Core/Sers.Core/Module/Api/LocalApi/LocalApiService.cs
  33. 2 4
      dotnet/Sers/Sers.Core/Sers.Core/Module/ApiLoader/ApiLoaderMng.cs
  34. 0 1
      dotnet/Sers/Sers.Core/Sers.Core/Module/Valid/Sers1/SsValidation.cs
  35. 8 5
      dotnet/Sers/Sers.Core/Sers.Core/Sers.Core.csproj
  36. 1 2
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/RpcVerify/SsRpcVerifyAttribute.cs
  37. 1 1
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/RpcVerify/SsRpcVerifyBaseAttribute.cs
  38. 3 3
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsCallerSourceAttribute.cs
  39. 3 3
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsCmpAttribute.cs
  40. 1 1
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsEqualAttribute.cs
  41. 3 2
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsIsNullAttribute.cs
  42. 1 1
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsNotEqualAttribute.cs
  43. 1 1
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsRegexAttribute.cs
  44. 0 0
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/Demo/ApiModel_User.cs
  45. 0 0
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsEqualAttribute.cs
  46. 0 0
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsMaxValueAttribute.cs
  47. 0 0
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsMinValueAttribute.cs
  48. 0 0
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsSizeAttribute.cs
  49. 7 8
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiLoader.cs
  50. 3 3
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiLoaderConfig.cs
  51. 1 1
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/IApiController.cs
  52. 2 2
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/LocalApiNode.cs
  53. 4 4
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/RpcVerify2/RpcVerify2Loader.cs
  54. 9 9
      dotnet/Sers/Sers.Core/Sers.Core/SersLoader/SsModelBuilder.cs
  55. 2 2
      dotnet/Sers/Sers.Gateway/Sers.Gateway/Sers.Gateway.csproj
  56. 1 2
      dotnet/Sers/Sers.Hardware/Net46/Sers.Hardware.Net46.Exe/Ms/CpuInfo.cs
  57. 2 2
      dotnet/Sers/Sers.Hardware/Net46/Sers.Hardware.Net46.Exe/Ms/NetworkInfo.cs
  58. 2 1
      dotnet/Sers/Sers.Hardware/Net46/Sers.Hardware.Net46.Exe/Program.cs
  59. 2 2
      dotnet/Sers/Sers.Hardware/Sers.Hardware/Sers.Hardware.csproj
  60. 2 2
      dotnet/Sers/Sers.Ioc/Sers.Ioc/Sers.Ioc.csproj
  61. 3 0
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Base/Extensions/ApiNodeExtensions.cs
  62. 0 0
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Base/Extensions/ServiceStationExtensions.cs
  63. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ApiDescController.cs
  64. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ApiStationController.cs
  65. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/RateLimitController.cs
  66. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ServerStationController.cs
  67. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ServiceCenterController.cs
  68. 0 0
      dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Extensions/ServiceCenter_GoverExtensions.cs
  69. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.ServiceCenter/Controllers/ServiceStationController.cs
  70. 2 2
      dotnet/Sers/Sers.ServiceCenter/Sers.ServiceCenter/ServiceCenter.cs
  71. 2 2
      dotnet/Sers/Sers.ServiceStation/Sers.ServiceStation/Sers.ServiceStation.csproj
  72. 4 4
      dotnet/Sers/Sers.ServiceStation/Sers.ServiceStation/ServiceStation.cs
  73. 1 2
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Controllers/ValuesController.cs
  74. 6 6
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Did.NetcoreLoader.Demo.csproj
  75. 2 2
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Program.cs
  76. 0 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Properties/PublishProfiles/FolderProfile.pubxml
  77. 0 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Properties/launchSettings.json
  78. 2 9
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Startup.cs
  79. 0 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/appsettings.Development.json
  80. 0 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/appsettings.json
  81. 279 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Controllers/ValuesController.cs
  82. 35 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Did.NetcoreLoader.HellolWorld.csproj
  83. 44 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Program.cs
  84. 22 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Properties/PublishProfiles/FolderProfile.pubxml
  85. 30 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Properties/launchSettings.json
  86. 40 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Startup.cs
  87. 0 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/appsettings.Development.json
  88. 84 0
      dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/appsettings.json
  89. 4 0
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/App.Demo.Station.csproj
  90. 10 9
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/Demo/SampleController.cs
  91. 4 5
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/PubSub/Controller/PublishController.cs
  92. 1 1
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/PubSub/Controller/UserSubController.cs
  93. 4 4
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/PubSub/SubscriberDemo.cs
  94. 37 0
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Did.SersLoader.Demo.csproj
  95. 5 5
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Program.cs
  96. 0 0
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Properties/PublishProfiles/FolderProfile.pubxml
  97. 9 8
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/appsettings.json
  98. 0 0
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/mappings.json
  99. 0 0
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/wwwroot/demo/jqueryupload.html
  100. 0 0
      dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/wwwroot/demo/upload.html

+ 6 - 5
dotnet/Doc/Release/pack sers_lib.bat

@@ -100,17 +100,18 @@ cd /d ../../../
 
 
 echo 'pack Sers.Serslot'
-cd /d netcore\Serslot\Sers.Serslot
+cd /d Sers\ApiLoader\Sers.Serslot
 dotnet build --configuration Release
 dotnet pack --configuration Release --output ..\..\..\Doc\Release\nuget
-cd /d ../../../ 
+cd /d ../../../  
 
 
-echo 'pack Sers.ApiLoader.WebApi21'
-cd /d netcore\WebApi21\Sers.ApiLoader.WebApi21
+echo 'pack Sers.NetcoreLoader'
+cd /d Sers\ApiLoader\Sers.NetcoreLoader
 dotnet build --configuration Release
 dotnet pack --configuration Release --output ..\..\..\Doc\Release\nuget
-cd /d ../../../ 
+cd /d ../../../  
+ 
 
 cd /d Doc\Release
 

+ 6 - 6
dotnet/Doc/Release/publish sers.bat

@@ -19,16 +19,16 @@ dotnet publish --configuration Release --output ..\..\..\Doc\Release\ServiceCent
 cd /d ../../../
 
 echo 'publish Robot'
-cd /d netcore\Station\Robot\App.Robot.Station
+cd /d netcore\Station\App.Robot.Station
 dotnet build --configuration Release
-dotnet publish --configuration Release --output ..\..\..\..\Doc\Release\Robot
-cd /d ../../../../
+dotnet publish --configuration Release --output ..\..\..\Doc\Release\Robot
+cd /d ../../../
 
 echo 'publish Demo'
-cd /d netcore\Station\Demo\App.Demo.Station
+cd /d netcore\Station\App.Demo.Station
 dotnet build --configuration Release
-dotnet publish --configuration Release --output ..\..\..\..\Doc\Release\Demo
-cd /d ../../../../
+dotnet publish --configuration Release --output ..\..\..\Doc\Release\Demo
+cd /d ../../../
 
  
 cd /d Doc\Release

+ 79 - 63
dotnet/Sers.sln

@@ -19,10 +19,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Station", "Station", "{3E62
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gateway", "Gateway", "{D06867E2-E739-4E00-827A-F604E9844CBD}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Demo", "Demo", "{2FF3A992-36AB-4369-A05B-7684D0B457AF}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Robot", "Robot", "{B869DCD0-0573-41C1-82D6-59C5FF17C315}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sers.Hardware", "Sers.Hardware", "{B9DBEC9A-1220-484C-A6C3-FF10757F117A}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.Hardware", "Sers\Sers.Hardware\Sers.Hardware\Sers.Hardware.csproj", "{6E69A650-C60E-4E6C-A725-B00E2B45C5B0}"
@@ -57,17 +53,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Gover.Gateway", "netcor
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.ServiceCenter", "netcore\ServiceCenter\App.ServiceCenter\App.ServiceCenter.csproj", "{8FFC9209-7FA9-4B5B-B410-B6B316D2E3AA}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Robot.Station", "netcore\Station\Robot\App.Robot.Station\App.Robot.Station.csproj", "{8010ED31-A1F0-4292-A70C-F39D5A8572BE}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Zmq", "Zmq", "{60A2862F-A007-46EE-B6FA-801F2F673A07}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ThreadWait", "ThreadWait", "{99B93100-C63E-4B2C-AC80-092A02EDE10C}"
 EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebApi21", "WebApi21", "{DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.WebApi21.Station", "netcore\WebApi21\App.WebApi21.Station\App.WebApi21.Station.csproj", "{70D6F463-AB83-421C-89BA-D8C3FEFBD0FE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.ApiLoader.WebApi21", "netcore\WebApi21\Sers.ApiLoader.WebApi21\Sers.ApiLoader.WebApi21.csproj", "{C67F5248-22D0-4810-A296-611F6DB3D786}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NetcoreLoader", "NetcoreLoader", "{DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Vit", "Vit", "{C845E999-2AF8-4593-8504-AA76BDDAFBD6}"
 EndProject
@@ -83,10 +73,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vit.Ioc", "Vit\Vit.Ioc\Vit.
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.Core.MsTest", "Test\Sers\Sers.Core\Sers.Core.MsTest\Sers.Core.MsTest.csproj", "{E64CC125-FB1E-4D3A-8D05-BA5A85D28582}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Demo.Station", "netcore\Station\Demo\App.Demo.Station\App.Demo.Station.csproj", "{7C6A5EE4-65C4-4766-96F1-09683152390D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Ioc.Station", "netcore\Station\Demo\App.Ioc.Station\App.Ioc.Station.csproj", "{8EC88C69-A05D-46C5-8F4D-819328525443}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{B0C8734C-7CAC-4EA4-BF49-4ECE4876BB5D}"
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{25BC0652-B003-4DF5-87E5-327BE2A6FCEF}"
@@ -131,8 +117,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MessageDelivery", "MessageD
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DeliveryTest", "Sers\Sers.CL\Test\MessageDelivery\DeliveryTest\DeliveryTest.csproj", "{BD2BD62B-5B1D-4CF3-AD1C-4330DD6C0DB1}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.Serslot", "netcore\Serslot\Sers.Serslot\Sers.Serslot.csproj", "{DFA9C52E-8689-4518-B799-0149439807C1}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FullDuplex", "FullDuplex", "{DA1CCBE3-A503-4177-B262-AD4A1E077E71}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.CL.Zmq.FullDuplex", "Sers\Sers.CL\Zmq\FullDuplex\Sers.CL.Zmq.FullDuplex\Sers.CL.Zmq.FullDuplex.csproj", "{E1DB58F9-17F4-43AD-A1E2-A0465A1B4716}"
@@ -143,9 +127,31 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.Gateway", "Sers\Sers.G
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vit.Net.Http.FormFile", "Vit\Vit.Net.Http.FormFile\Vit.Net.Http.FormFile.csproj", "{02CF94E4-59E8-413E-B709-7A75A2258E31}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Did.Serslot.Demo", "netcore\Serslot\Did.Serslot.Demo\Did.Serslot.Demo.csproj", "{6CF2CAD0-A811-4019-909F-5001BBE81A07}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StationDemo", "StationDemo", "{130F5CAA-BF3F-444D-B590-57F9050588D4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiLoader", "ApiLoader", "{BBFFA808-BD39-461C-A89C-5E9F8C78345C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SersLoader", "SersLoader", "{7AA53B3C-6798-45EB-B1A9-C4226E93B5E7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.SersLoader.Demo", "StationDemo\SersLoader\Did.SersLoader.Demo\Did.SersLoader.Demo.csproj", "{2DEC5641-014D-4B24-B0D9-EAF65C343D3C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.SersLoader.HelloWorld", "StationDemo\SersLoader\Did.SersLoader.HelloWorld\Did.SersLoader.HelloWorld.csproj", "{F160F45B-E9C8-43DC-A069-FBCDD1A8CECC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Ioc.Station", "netcore\Station\App.Ioc.Station\App.Ioc.Station.csproj", "{4A9A5EAD-90C9-49F5-8254-D0BBD4E16DF1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Robot.Station", "netcore\Station\App.Robot.Station\App.Robot.Station.csproj", "{25F6EE8A-CFA3-4745-BFD5-01C6A2632957}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.NetcoreLoader", "Sers\ApiLoader\Sers.NetcoreLoader\Sers.NetcoreLoader.csproj", "{E2185621-0592-47ED-8E66-5F0AC01AD5CC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sers.Serslot", "Sers\ApiLoader\Sers.Serslot\Sers.Serslot.csproj", "{DB63FAD0-E04B-4961-90FD-FB815AFFDB4B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.NetcoreLoader.Demo", "StationDemo\NetcoreLoader\Did.NetcoreLoader.Demo\Did.NetcoreLoader.Demo.csproj", "{4B2D7996-FD91-4775-8BA0-987C45547084}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.Serslot.Demo", "StationDemo\Serslot\Did.Serslot.Demo\Did.Serslot.Demo.csproj", "{F2FAF3AF-59E1-4B71-86A0-78B980C55474}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.Serslot.HelloWorld", "StationDemo\Serslot\Did.Serslot.HelloWorld\Did.Serslot.HelloWorld.csproj", "{6611EC51-AEE4-4EF7-A9D2-2302F2F61845}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.Serslot.HelloWorld", "netcore\Serslot\Did.Serslot.HelloWorld\Did.Serslot.HelloWorld.csproj", "{4D79547F-01FA-493B-804E-34BF9F9466FE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Did.NetcoreLoader.HellolWorld", "StationDemo\NetcoreLoader\Did.NetcoreLoader.HelloWorld\Did.NetcoreLoader.HellolWorld.csproj", "{141C89FB-54A7-4283-8649-D6EF51B22FA9}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -197,18 +203,6 @@ Global
 		{8FFC9209-7FA9-4B5B-B410-B6B316D2E3AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{8FFC9209-7FA9-4B5B-B410-B6B316D2E3AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{8FFC9209-7FA9-4B5B-B410-B6B316D2E3AA}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8010ED31-A1F0-4292-A70C-F39D5A8572BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8010ED31-A1F0-4292-A70C-F39D5A8572BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8010ED31-A1F0-4292-A70C-F39D5A8572BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8010ED31-A1F0-4292-A70C-F39D5A8572BE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{70D6F463-AB83-421C-89BA-D8C3FEFBD0FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{70D6F463-AB83-421C-89BA-D8C3FEFBD0FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{70D6F463-AB83-421C-89BA-D8C3FEFBD0FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{70D6F463-AB83-421C-89BA-D8C3FEFBD0FE}.Release|Any CPU.Build.0 = Release|Any CPU
-		{C67F5248-22D0-4810-A296-611F6DB3D786}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{C67F5248-22D0-4810-A296-611F6DB3D786}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C67F5248-22D0-4810-A296-611F6DB3D786}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{C67F5248-22D0-4810-A296-611F6DB3D786}.Release|Any CPU.Build.0 = Release|Any CPU
 		{3D93159D-0B56-44A3-8C3E-B8610FD05045}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{3D93159D-0B56-44A3-8C3E-B8610FD05045}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{3D93159D-0B56-44A3-8C3E-B8610FD05045}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -225,14 +219,6 @@ Global
 		{E64CC125-FB1E-4D3A-8D05-BA5A85D28582}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E64CC125-FB1E-4D3A-8D05-BA5A85D28582}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E64CC125-FB1E-4D3A-8D05-BA5A85D28582}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7C6A5EE4-65C4-4766-96F1-09683152390D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7C6A5EE4-65C4-4766-96F1-09683152390D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7C6A5EE4-65C4-4766-96F1-09683152390D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7C6A5EE4-65C4-4766-96F1-09683152390D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8EC88C69-A05D-46C5-8F4D-819328525443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8EC88C69-A05D-46C5-8F4D-819328525443}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8EC88C69-A05D-46C5-8F4D-819328525443}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8EC88C69-A05D-46C5-8F4D-819328525443}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B686E6B8-1509-4768-8602-AA06711C3F9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B686E6B8-1509-4768-8602-AA06711C3F9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B686E6B8-1509-4768-8602-AA06711C3F9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -281,10 +267,6 @@ Global
 		{BD2BD62B-5B1D-4CF3-AD1C-4330DD6C0DB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{BD2BD62B-5B1D-4CF3-AD1C-4330DD6C0DB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{BD2BD62B-5B1D-4CF3-AD1C-4330DD6C0DB1}.Release|Any CPU.Build.0 = Release|Any CPU
-		{DFA9C52E-8689-4518-B799-0149439807C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DFA9C52E-8689-4518-B799-0149439807C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DFA9C52E-8689-4518-B799-0149439807C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{DFA9C52E-8689-4518-B799-0149439807C1}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E1DB58F9-17F4-43AD-A1E2-A0465A1B4716}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E1DB58F9-17F4-43AD-A1E2-A0465A1B4716}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E1DB58F9-17F4-43AD-A1E2-A0465A1B4716}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -301,14 +283,46 @@ Global
 		{02CF94E4-59E8-413E-B709-7A75A2258E31}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{02CF94E4-59E8-413E-B709-7A75A2258E31}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{02CF94E4-59E8-413E-B709-7A75A2258E31}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6CF2CAD0-A811-4019-909F-5001BBE81A07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6CF2CAD0-A811-4019-909F-5001BBE81A07}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6CF2CAD0-A811-4019-909F-5001BBE81A07}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6CF2CAD0-A811-4019-909F-5001BBE81A07}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4D79547F-01FA-493B-804E-34BF9F9466FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4D79547F-01FA-493B-804E-34BF9F9466FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4D79547F-01FA-493B-804E-34BF9F9466FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4D79547F-01FA-493B-804E-34BF9F9466FE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2DEC5641-014D-4B24-B0D9-EAF65C343D3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2DEC5641-014D-4B24-B0D9-EAF65C343D3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2DEC5641-014D-4B24-B0D9-EAF65C343D3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2DEC5641-014D-4B24-B0D9-EAF65C343D3C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F160F45B-E9C8-43DC-A069-FBCDD1A8CECC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F160F45B-E9C8-43DC-A069-FBCDD1A8CECC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F160F45B-E9C8-43DC-A069-FBCDD1A8CECC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F160F45B-E9C8-43DC-A069-FBCDD1A8CECC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4A9A5EAD-90C9-49F5-8254-D0BBD4E16DF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4A9A5EAD-90C9-49F5-8254-D0BBD4E16DF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4A9A5EAD-90C9-49F5-8254-D0BBD4E16DF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4A9A5EAD-90C9-49F5-8254-D0BBD4E16DF1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{25F6EE8A-CFA3-4745-BFD5-01C6A2632957}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{25F6EE8A-CFA3-4745-BFD5-01C6A2632957}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{25F6EE8A-CFA3-4745-BFD5-01C6A2632957}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{25F6EE8A-CFA3-4745-BFD5-01C6A2632957}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E2185621-0592-47ED-8E66-5F0AC01AD5CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E2185621-0592-47ED-8E66-5F0AC01AD5CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E2185621-0592-47ED-8E66-5F0AC01AD5CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E2185621-0592-47ED-8E66-5F0AC01AD5CC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DB63FAD0-E04B-4961-90FD-FB815AFFDB4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DB63FAD0-E04B-4961-90FD-FB815AFFDB4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DB63FAD0-E04B-4961-90FD-FB815AFFDB4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DB63FAD0-E04B-4961-90FD-FB815AFFDB4B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4B2D7996-FD91-4775-8BA0-987C45547084}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4B2D7996-FD91-4775-8BA0-987C45547084}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4B2D7996-FD91-4775-8BA0-987C45547084}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4B2D7996-FD91-4775-8BA0-987C45547084}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F2FAF3AF-59E1-4B71-86A0-78B980C55474}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F2FAF3AF-59E1-4B71-86A0-78B980C55474}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F2FAF3AF-59E1-4B71-86A0-78B980C55474}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F2FAF3AF-59E1-4B71-86A0-78B980C55474}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6611EC51-AEE4-4EF7-A9D2-2302F2F61845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6611EC51-AEE4-4EF7-A9D2-2302F2F61845}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6611EC51-AEE4-4EF7-A9D2-2302F2F61845}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6611EC51-AEE4-4EF7-A9D2-2302F2F61845}.Release|Any CPU.Build.0 = Release|Any CPU
+		{141C89FB-54A7-4283-8649-D6EF51B22FA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{141C89FB-54A7-4283-8649-D6EF51B22FA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{141C89FB-54A7-4283-8649-D6EF51B22FA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{141C89FB-54A7-4283-8649-D6EF51B22FA9}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -322,8 +336,6 @@ Global
 		{ADF8B647-D701-4460-8384-8FA8E7FAEC11} = {A0DE26A4-A6A1-48D6-9858-6509E2E36ECD}
 		{3E627B33-8349-446E-BAE9-884FCE3595D1} = {A0DE26A4-A6A1-48D6-9858-6509E2E36ECD}
 		{D06867E2-E739-4E00-827A-F604E9844CBD} = {A0DE26A4-A6A1-48D6-9858-6509E2E36ECD}
-		{2FF3A992-36AB-4369-A05B-7684D0B457AF} = {3E627B33-8349-446E-BAE9-884FCE3595D1}
-		{B869DCD0-0573-41C1-82D6-59C5FF17C315} = {3E627B33-8349-446E-BAE9-884FCE3595D1}
 		{B9DBEC9A-1220-484C-A6C3-FF10757F117A} = {5522AB94-C73C-4BB6-A2DB-8E84061D0D14}
 		{6E69A650-C60E-4E6C-A725-B00E2B45C5B0} = {B9DBEC9A-1220-484C-A6C3-FF10757F117A}
 		{9D8E52DE-A34A-40B7-AA24-AD960D314B44} = {B9DBEC9A-1220-484C-A6C3-FF10757F117A}
@@ -339,25 +351,20 @@ Global
 		{F773BB7D-F3D8-416B-8743-377128551868} = {D06867E2-E739-4E00-827A-F604E9844CBD}
 		{3AE85F9E-41F5-4FF9-84A6-73B1A6EAB211} = {ADF8B647-D701-4460-8384-8FA8E7FAEC11}
 		{8FFC9209-7FA9-4B5B-B410-B6B316D2E3AA} = {ADF8B647-D701-4460-8384-8FA8E7FAEC11}
-		{8010ED31-A1F0-4292-A70C-F39D5A8572BE} = {B869DCD0-0573-41C1-82D6-59C5FF17C315}
 		{60A2862F-A007-46EE-B6FA-801F2F673A07} = {43888F55-C8DF-43CA-94D5-8CED6AE66D67}
 		{99B93100-C63E-4B2C-AC80-092A02EDE10C} = {60A2862F-A007-46EE-B6FA-801F2F673A07}
-		{DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4} = {A0DE26A4-A6A1-48D6-9858-6509E2E36ECD}
-		{70D6F463-AB83-421C-89BA-D8C3FEFBD0FE} = {DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4}
-		{C67F5248-22D0-4810-A296-611F6DB3D786} = {DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4}
+		{DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4} = {130F5CAA-BF3F-444D-B590-57F9050588D4}
 		{3D93159D-0B56-44A3-8C3E-B8610FD05045} = {9D48C58A-06FB-4471-BEE6-5795027F8378}
 		{4E3DBB4B-C54A-41D8-A905-AFA871FB9150} = {F6D90A49-B744-4264-A988-B3EB7C8BA15C}
 		{9D48C58A-06FB-4471-BEE6-5795027F8378} = {C845E999-2AF8-4593-8504-AA76BDDAFBD6}
 		{66076BFD-0EBF-479D-8231-32499EE328AC} = {C845E999-2AF8-4593-8504-AA76BDDAFBD6}
 		{198B2DF1-FFC5-41AB-B836-C54E8B07667C} = {66076BFD-0EBF-479D-8231-32499EE328AC}
 		{E64CC125-FB1E-4D3A-8D05-BA5A85D28582} = {37633A5F-54B5-4179-8BCD-B7B422B4857C}
-		{7C6A5EE4-65C4-4766-96F1-09683152390D} = {2FF3A992-36AB-4369-A05B-7684D0B457AF}
-		{8EC88C69-A05D-46C5-8F4D-819328525443} = {2FF3A992-36AB-4369-A05B-7684D0B457AF}
 		{B0C8734C-7CAC-4EA4-BF49-4ECE4876BB5D} = {9D48C58A-06FB-4471-BEE6-5795027F8378}
 		{25BC0652-B003-4DF5-87E5-327BE2A6FCEF} = {66076BFD-0EBF-479D-8231-32499EE328AC}
 		{37633A5F-54B5-4179-8BCD-B7B422B4857C} = {C3954FC1-88A0-4915-AF47-E0B75AAAA63A}
 		{8ECF169A-14B8-469F-AA72-F1125238B5D7} = {B9DBEC9A-1220-484C-A6C3-FF10757F117A}
-		{015B5793-0478-4884-A58B-8889639FD65A} = {A0DE26A4-A6A1-48D6-9858-6509E2E36ECD}
+		{015B5793-0478-4884-A58B-8889639FD65A} = {130F5CAA-BF3F-444D-B590-57F9050588D4}
 		{B686E6B8-1509-4768-8602-AA06711C3F9F} = {B0C8734C-7CAC-4EA4-BF49-4ECE4876BB5D}
 		{6C04582F-F873-4B09-885A-D51F7602A196} = {25BC0652-B003-4DF5-87E5-327BE2A6FCEF}
 		{83CC90EB-7389-4F3C-855B-BEC5FE60FAB0} = {97C34C06-AE79-4E1A-8D04-EB0107643302}
@@ -375,14 +382,23 @@ Global
 		{E8965AC0-EB68-4027-AC4A-4FD1FBCB25AC} = {CDB42445-C074-4DF4-98C3-FD1978C3E372}
 		{4E874DC3-754A-4FE2-92B5-98ADFF74B369} = {077D1A80-2842-4191-ABAA-BFC30661577D}
 		{BD2BD62B-5B1D-4CF3-AD1C-4330DD6C0DB1} = {4E874DC3-754A-4FE2-92B5-98ADFF74B369}
-		{DFA9C52E-8689-4518-B799-0149439807C1} = {015B5793-0478-4884-A58B-8889639FD65A}
 		{DA1CCBE3-A503-4177-B262-AD4A1E077E71} = {60A2862F-A007-46EE-B6FA-801F2F673A07}
 		{E1DB58F9-17F4-43AD-A1E2-A0465A1B4716} = {DA1CCBE3-A503-4177-B262-AD4A1E077E71}
 		{B1CB847A-A78D-4229-BB8D-FABD37445DE8} = {C845E999-2AF8-4593-8504-AA76BDDAFBD6}
 		{F76CA330-B9B7-4191-A420-CC3E2A18D3FF} = {B673B4DA-E225-4A14-A6E2-74AD4673EA96}
 		{02CF94E4-59E8-413E-B709-7A75A2258E31} = {C845E999-2AF8-4593-8504-AA76BDDAFBD6}
-		{6CF2CAD0-A811-4019-909F-5001BBE81A07} = {015B5793-0478-4884-A58B-8889639FD65A}
-		{4D79547F-01FA-493B-804E-34BF9F9466FE} = {015B5793-0478-4884-A58B-8889639FD65A}
+		{BBFFA808-BD39-461C-A89C-5E9F8C78345C} = {5522AB94-C73C-4BB6-A2DB-8E84061D0D14}
+		{7AA53B3C-6798-45EB-B1A9-C4226E93B5E7} = {130F5CAA-BF3F-444D-B590-57F9050588D4}
+		{2DEC5641-014D-4B24-B0D9-EAF65C343D3C} = {7AA53B3C-6798-45EB-B1A9-C4226E93B5E7}
+		{F160F45B-E9C8-43DC-A069-FBCDD1A8CECC} = {7AA53B3C-6798-45EB-B1A9-C4226E93B5E7}
+		{4A9A5EAD-90C9-49F5-8254-D0BBD4E16DF1} = {3E627B33-8349-446E-BAE9-884FCE3595D1}
+		{25F6EE8A-CFA3-4745-BFD5-01C6A2632957} = {3E627B33-8349-446E-BAE9-884FCE3595D1}
+		{E2185621-0592-47ED-8E66-5F0AC01AD5CC} = {BBFFA808-BD39-461C-A89C-5E9F8C78345C}
+		{DB63FAD0-E04B-4961-90FD-FB815AFFDB4B} = {BBFFA808-BD39-461C-A89C-5E9F8C78345C}
+		{4B2D7996-FD91-4775-8BA0-987C45547084} = {DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4}
+		{F2FAF3AF-59E1-4B71-86A0-78B980C55474} = {015B5793-0478-4884-A58B-8889639FD65A}
+		{6611EC51-AEE4-4EF7-A9D2-2302F2F61845} = {015B5793-0478-4884-A58B-8889639FD65A}
+		{141C89FB-54A7-4283-8649-D6EF51B22FA9} = {DA14C04D-FEEF-4A3C-A9F2-BBA25897B9A4}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {C7DA16E3-9949-49FA-B0B4-F830636DE60F}

+ 5 - 5
dotnet/netcore/WebApi21/Sers.ApiLoader.WebApi21/ApiLoader.cs → dotnet/Sers/ApiLoader/Sers.NetcoreLoader/ApiLoader.cs

@@ -2,16 +2,16 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
+using Sers.SersLoader;
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.LocalApi;
-using Sers.Core.Module.ApiLoader;
+using Sers.Serslot;
 using Vit.Extensions;
 using Vit.Ioc;
-using Sers.Serslot21;
 
-namespace Sers.ApiLoader.WebApi21
+namespace Sers.NetcoreLoader
 {
-    public class ApiLoader : Sers.ApiLoader
+    public class ApiLoader : SersLoader.ApiLoader
     {
         static ApiLoader()
         {
@@ -87,7 +87,7 @@ namespace Sers.ApiLoader.WebApi21
                 apiDesc.OriRouteSet(oriRoute);
                 apiDesc.SysDescAppend("oriRoute: " + oriRoute);
 
-                IApiNode apiNode = new ApiDiscovery.WebApi21.LocalApiNode(apiDesc, method);
+                IApiNode apiNode = new LocalApiNode(apiDesc, method);
                 return apiNode;
             }).ToList();             
         }

+ 5 - 4
dotnet/netcore/WebApi21/Sers.ApiLoader.WebApi21/Extensions/LocalApiServiceExtensions.cs → dotnet/Sers/ApiLoader/Sers.NetcoreLoader/Extensions/LocalApiServiceExtensions.cs

@@ -1,19 +1,20 @@
 
 using Sers.Core.Module.Api.LocalApi;
-using Sers.Core.Module.ApiLoader;
 using System.Reflection;
+using Sers.SersLoader;
+using ApiLoader = Sers.NetcoreLoader.ApiLoader;
 
 namespace Vit.Extensions
 {
     public static partial class LocalApiServiceExtensions
     {
         /// <summary>
-        /// 调用WebApi21加载器加载api
+        /// 调用netcore加载器加载api
         /// </summary>
         /// <param name="localApiService"></param>
         /// <param name="assembly"></param>
 
-        public static void LoadWebApi21(this LocalApiService localApiService, Assembly assembly)
+        public static void LoadNetcoreApi(this LocalApiService localApiService, Assembly assembly)
         {
             if (null == localApiService)
             {
@@ -21,7 +22,7 @@ namespace Vit.Extensions
             }
 
             var config = new ApiLoaderConfig { assembly= assembly };
-            localApiService.apiNodeMng.AddApiNode(new Sers.ApiLoader.WebApi21.ApiLoader().LoadApi(config));
+            localApiService.apiNodeMng.AddApiNode(new ApiLoader().LoadApi(config));
  
         }
 

+ 3 - 3
dotnet/netcore/WebApi21/Sers.ApiLoader.WebApi21/LocalApiNode.cs → dotnet/Sers/ApiLoader/Sers.NetcoreLoader/LocalApiNode.cs

@@ -4,14 +4,14 @@ using System.Reflection;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
-using Vit.Extensions;
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.LocalApi;
 using Sers.Core.Module.Rpc;
-using Vit.Ioc;
 using Vit.Core.Util.Dynamic;
+using Vit.Extensions;
+using Vit.Ioc;
 
-namespace Sers.ApiDiscovery.WebApi21
+namespace Sers.NetcoreLoader
 {
     [JsonObject(MemberSerialization.OptIn)]
     public class LocalApiNode: IApiNode

+ 0 - 0
dotnet/netcore/Serslot/Sers.Serslot/Properties/PublishProfiles/FolderProfile.pubxml → dotnet/Sers/ApiLoader/Sers.NetcoreLoader/Properties/PublishProfiles/FolderProfile.pubxml


+ 4 - 4
dotnet/netcore/WebApi21/Sers.ApiLoader.WebApi21/Sers.ApiLoader.WebApi21.csproj → dotnet/Sers/ApiLoader/Sers.NetcoreLoader/Sers.NetcoreLoader.csproj

@@ -1,13 +1,13 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 
   <PropertyGroup>
-    <DocumentationFile>bin\Debug\netstandard2.0\Sers.ApiLoader.WebApi21.xml</DocumentationFile>
+    <DocumentationFile>bin\Debug\netstandard2.0\Sers.NetcoreLoader.xml</DocumentationFile>
   </PropertyGroup>
 
 
@@ -20,7 +20,7 @@
     <ProjectReference Include="..\..\..\Sers\Sers.Core\Sers.Core\Sers.Core.csproj" />
     <ProjectReference Include="..\..\..\Sers\Sers.Ioc\Sers.Ioc\Sers.Ioc.csproj" />
     <ProjectReference Include="..\..\..\Sers\Sers.ServiceStation\Sers.ServiceStation\Sers.ServiceStation.csproj" />
-    <ProjectReference Include="..\..\Serslot\Sers.Serslot\Sers.Serslot.csproj" />
+    <ProjectReference Include="..\Sers.Serslot\Sers.Serslot.csproj" />
   </ItemGroup>
 
 

+ 3 - 4
dotnet/netcore/Serslot/Sers.Serslot/ApiLoader.cs → dotnet/Sers/ApiLoader/Sers.Serslot/ApiLoader.cs

@@ -2,15 +2,14 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
+using Sers.SersLoader;
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.LocalApi;
-using Sers.Core.Module.ApiLoader;
 using Vit.Extensions;
- 
 
-namespace Sers.Serslot21
+namespace Sers.Serslot
 {
-    public class ApiLoader : Sers.ApiLoader.Sers.ApiLoader
+    public class ApiLoader : SersLoader.ApiLoader
     {
 
         SerslotServer server;

+ 3 - 3
dotnet/netcore/Serslot/Sers.Serslot/ControllerHelp.cs → dotnet/Sers/ApiLoader/Sers.Serslot/ControllerHelp.cs

@@ -1,11 +1,11 @@
-using Microsoft.AspNetCore.Mvc;
-using System;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
 using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
 
-namespace Sers.Serslot21
+namespace Sers.Serslot
 {
     public class ControllerHelp
     {

+ 0 - 0
dotnet/netcore/Serslot/Sers.Serslot/ExceptionFilter/ExceptionFilter.cs → dotnet/Sers/ApiLoader/Sers.Serslot/ExceptionFilter/ExceptionFilter.cs


+ 6 - 4
dotnet/netcore/Serslot/Sers.Serslot/Extensions/LocalApiServiceExtensions.cs → dotnet/Sers/ApiLoader/Sers.Serslot/Extensions/LocalApiServiceExtensions.cs

@@ -1,23 +1,25 @@
 
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.LocalApi;
-using Sers.Core.Module.ApiLoader;
-using Sers.Serslot21;
 using System;
 using System.Collections.Generic;
 using System.Reflection;
+using Sers.SersLoader;
+using Sers.Serslot;
+using ApiLoader = Sers.Serslot.ApiLoader;
+using LocalApiNode = Sers.Serslot.LocalApiNode;
 
 namespace Vit.Extensions
 {
     public static partial class LocalApiServiceExtensions
     {
         /// <summary>
-        /// 调用WebApi21加载器加载api
+        /// 调用Serslot加载器加载api
         /// </summary>
         /// <param name="data"></param>
         /// <param name="assembly"></param>
         /// <param name="server"></param>
-        public static void LoadWebApi21(this LocalApiService data, Assembly assembly, SerslotServer server)
+        public static void LoadSerslotApi(this LocalApiService data, Assembly assembly, SerslotServer server)
         {
             if (null == data)
             {

+ 1 - 1
dotnet/netcore/Serslot/Sers.Serslot/Extensions/SerslotServer_ProcessRequest_Extensions.cs → dotnet/Sers/ApiLoader/Sers.Serslot/Extensions/SerslotServer_ProcessRequest_Extensions.cs

@@ -3,7 +3,7 @@ using Sers.Core.Module.Rpc;
 using System;
 using System.IO;
 using Microsoft.AspNetCore.Http;
-using Sers.Serslot21;
+using Sers.Serslot;
 
 namespace Vit.Extensions
 {

+ 1 - 1
dotnet/netcore/Serslot/Sers.Serslot/Extensions/WebHostBuilderSerslotExtensions.cs → dotnet/Sers/ApiLoader/Sers.Serslot/Extensions/WebHostBuilderSerslotExtensions.cs

@@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Hosting.Server;
 using Microsoft.Extensions.DependencyInjection;
 using Newtonsoft.Json.Linq;
-using Sers.Serslot21;
+using Sers.Serslot;
 
 namespace Vit.Extensions
 {

+ 3 - 3
dotnet/netcore/Serslot/Sers.Serslot/LocalApiNode.cs → dotnet/Sers/ApiLoader/Sers.Serslot/LocalApiNode.cs

@@ -1,10 +1,10 @@
 using System;
 using Newtonsoft.Json;
-using Vit.Extensions;
 using Sers.Core.Module.Api.ApiDesc;
-using Sers.Core.Module.Api.LocalApi; 
+using Sers.Core.Module.Api.LocalApi;
+using Vit.Extensions;
 
-namespace Sers.Serslot21
+namespace Sers.Serslot
 {
     [JsonObject(MemberSerialization.OptIn)]
     public class LocalApiNode: IApiNode

+ 0 - 0
dotnet/netcore/WebApi21/Sers.ApiLoader.WebApi21/Properties/PublishProfiles/FolderProfile.pubxml → dotnet/Sers/ApiLoader/Sers.Serslot/Properties/PublishProfiles/FolderProfile.pubxml


+ 5 - 3
dotnet/netcore/Serslot/Sers.Serslot/Sers.Serslot.csproj → dotnet/Sers/ApiLoader/Sers.Serslot/Sers.Serslot.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 
@@ -17,9 +17,11 @@
 
 
   <ItemGroup>
-    <ProjectReference Include="..\..\..\Sers\Sers.ServiceStation\Sers.ServiceStation\Sers.ServiceStation.csproj" />
+    <ProjectReference Include="..\..\Sers.ServiceStation\Sers.ServiceStation\Sers.ServiceStation.csproj" />
   </ItemGroup>
 
 
+ 
+
 
 </Project>

+ 4 - 4
dotnet/netcore/Serslot/Sers.Serslot/SerslotServer.cs → dotnet/Sers/ApiLoader/Sers.Serslot/SerslotServer.cs

@@ -1,5 +1,7 @@
 using System;
+using System.Collections.Generic;
 using System.IO;
+using System.Reflection;
 using System.Threading;
 using System.Threading.Tasks;
 using Microsoft.AspNetCore.Hosting;
@@ -8,10 +10,8 @@ using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http.Features;
 using Vit.Core.Module.Log;
 using Vit.Extensions;
-using System.Reflection;
-using System.Collections.Generic;
 
-namespace Sers.Serslot21
+namespace Sers.Serslot
 {
     public class SerslotServer : IServer
     {
@@ -292,7 +292,7 @@ namespace Sers.Serslot21
 
                 ServiceStation.ServiceStation.Instance.LoadApi();
 
-                ServiceStation.ServiceStation.Instance.localApiService.LoadWebApi21(Assembly.GetEntryAssembly(),this);       
+                ServiceStation.ServiceStation.Instance.localApiService.LoadSerslotApi(Assembly.GetEntryAssembly(),this);       
                 
 
                 #endregion

+ 2 - 2
dotnet/Sers/Sers.CL/Ipc/Sers.CL.Ipc.SharedMemory/Sers.CL.Ipc.SharedMemory.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 2 - 2
dotnet/Sers/Sers.CL/Socket/Sers.CL.Socket.Iocp/Sers.CL.Socket.Iocp.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 2 - 2
dotnet/Sers/Sers.CL/Socket/Sers.CL.Socket.ThreadWait/Sers.CL.Socket.ThreadWait.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 5 - 5
dotnet/Sers/Sers.CL/Test/CommunicationManage/Client/ProgramQps.cs

@@ -1,13 +1,13 @@
 using System;
+using System.Collections.Generic;
 using System.Threading;
-using Vit.Extensions;
-using Vit.Core.Util.Statistics;
 using System.Threading.Tasks;
-using System.Collections.Generic;
-using Vit.Core.Module.Log;
+using CLClient.Statistics;
 using Sers.Core.CL.CommunicationManage;
+using Vit.Core.Module.Log;
+using Vit.Extensions;
 
-namespace Client
+namespace CLClient
 {
     class ProgramQps
     {

+ 1 - 1
dotnet/Sers/Sers.CL/Test/CommunicationManage/Client/Statistics/StatisticsQpsInfo.cs

@@ -4,7 +4,7 @@ using System;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace Vit.Core.Util.Statistics
+namespace CLClient.Statistics
 {
     public class StatisticsQpsInfo
     {

+ 4 - 4
dotnet/Sers/Sers.CL/Test/CommunicationManage/Server/Program.cs

@@ -1,12 +1,12 @@
 using System;
-using System.Threading;
-using Vit.Core.Util.Statistics;
 using System.Collections.Generic;
-using Vit.Core.Module.Log;
+using System.Threading;
+using CLServer.Statistics;
 using Sers.Core.CL.CommunicationManage;
 using Sers.Core.CL.MessageOrganize;
+using Vit.Core.Module.Log;
 
-namespace ConsoleApp1
+namespace CLServer
 {
     class Program
     {

+ 1 - 1
dotnet/Sers/Sers.CL/Test/CommunicationManage/Server/Statistics/StatisticsQpsInfo.cs

@@ -4,7 +4,7 @@ using System;
 using System.Threading;
 using System.Threading.Tasks;
 
-namespace Vit.Core.Util.Statistics
+namespace CLServer.Statistics
 {
     public class StatisticsQpsInfo
     {

+ 2 - 6
dotnet/Sers/Sers.CL/Test/MessageDelivery/DeliveryTest/Program.cs

@@ -1,13 +1,9 @@
 using System;
-using System.Threading;
-using Vit.Extensions;
- 
-using System.Threading.Tasks;
 using System.Collections.Generic;
+using System.Threading;
 using Vit.Core.Module.Log;
-using Sers.Core.CL.CommunicationManage;
 
-namespace Client
+namespace DeliveryTest
 {
     class Program
     {

+ 2 - 2
dotnet/Sers/Sers.CL/WebSocket/Sers.CL.WebSocket/Sers.CL.WebSocket.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 2 - 2
dotnet/Sers/Sers.CL/Zmq/FullDuplex/Sers.CL.Zmq.FullDuplex/Sers.CL.Zmq.FullDuplex.csproj

@@ -1,9 +1,9 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
   

+ 2 - 2
dotnet/Sers/Sers.CL/Zmq/ThreadWait/Sers.CL.ClrZmq.ThreadWait/Sers.CL.ClrZmq.ThreadWait.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
   

+ 0 - 1
dotnet/Sers/Sers.Core/Sers.Core/Module/Api/ApiDesc/SsModelEntity.cs

@@ -1,6 +1,5 @@
 using System.Collections.Generic;
 using Newtonsoft.Json;
-using Sers.ApiLoader.Sers.Attribute;
 using Vit.Core.Util.ComponentModel.Model;
 
 namespace Sers.Core.Module.Api.ApiDesc

+ 0 - 1
dotnet/Sers/Sers.Core/Sers.Core/Module/Api/ApiDesc/SsModelProperty.cs

@@ -1,5 +1,4 @@
 using Newtonsoft.Json;
-using Sers.ApiLoader.Sers.Attribute;
 using Vit.Core.Util.ComponentModel.Model;
 
 namespace Sers.Core.Module.Api.ApiDesc

+ 7 - 6
dotnet/Sers/Sers.Core/Sers.Core/Module/Api/LocalApi/LocalApiService.cs

@@ -11,6 +11,7 @@ using Vit.Core.Util.ConfigurationManager;
 using Vit.Core.Util.Pool;
 using Vit.Core.Util.Threading;
 using System.Reflection;
+using Sers.SersLoader;
 using Sers.Core.CL.CommunicationManage;
 using Sers.Core.CL.MessageOrganize;
 using Sers.Core.Module.Message;
@@ -73,21 +74,21 @@ namespace Sers.Core.Module.Api.LocalApi
 
 
         /// <summary>
-        /// 调用SsApi加载器加载api
+        /// 调用SersApi加载器加载api
         /// </summary>
         /// <param name="config"></param>
-        public void LoadSsApi(ApiLoaderConfig config)
+        public void LoadSersApi(ApiLoaderConfig config)
         {
-            apiNodeMng.AddApiNode(new Sers.ApiLoader.Sers.ApiLoader().LoadApi(config));
+            apiNodeMng.AddApiNode(new SersLoader.ApiLoader().LoadApi(config));
         }
 
         /// <summary>
-        /// 调用SsApi加载器加载api
+        /// 调用SersApi加载器加载api
         /// </summary>
         /// <param name="assembly"></param>
-        public void LoadSsApi(Assembly assembly)
+        public void LoadSersApi(Assembly assembly)
         {
-            apiNodeMng.AddApiNode(new Sers.ApiLoader.Sers.ApiLoader().LoadApi(new ApiLoaderConfig { assembly = assembly }));
+            apiNodeMng.AddApiNode(new SersLoader.ApiLoader().LoadApi(new ApiLoaderConfig { assembly = assembly }));
         }
 
         #endregion

+ 2 - 4
dotnet/Sers/Sers.Core/Sers.Core/Module/ApiLoader/ApiLoaderMng.cs

@@ -2,10 +2,8 @@
 using Vit.Extensions;
 using Sers.Core.Module.Api.LocalApi;
 using Vit.Core.Module.Log;
-using Vit.Core.Util.Common;
 using System;
 using System.Collections.Generic;
-using System.Reflection;
 using Sers.Core.Module.Reflection;
 
 namespace Sers.Core.Module.ApiLoader
@@ -52,8 +50,8 @@ namespace Sers.Core.Module.ApiLoader
         {
             //(x.1) get className    
             var className = config["loader_className"].ConvertToString();
-            if (string.IsNullOrEmpty(className) || className == "Sers.ApiLoader.Sers.ApiLoader")
-                return new Sers.ApiLoader.Sers.ApiLoader();
+            if (string.IsNullOrEmpty(className) || className == typeof(Sers.SersLoader.ApiLoader).FullName)
+                return new SersLoader.ApiLoader();
 
             var assemblyFile = config["loader_assemblyFile"].ConvertToString();
              

+ 0 - 1
dotnet/Sers/Sers.Core/Sers.Core/Module/Valid/Sers1/SsValidation.cs

@@ -1,5 +1,4 @@
 using Newtonsoft.Json.Linq;
-using Sers.ApiLoader.Sers.Attribute;
 using Vit.Core.Util.ComponentModel.Model;
 using Vit.Core.Util.ComponentModel.SsError;
 

+ 8 - 5
dotnet/Sers/Sers.Core/Sers.Core/Sers.Core.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 
@@ -11,9 +11,12 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <Compile Remove="ApiLoader\Sers\ApiDesc\Attribute\Valid\delete\**" />
-    <EmbeddedResource Remove="ApiLoader\Sers\ApiDesc\Attribute\Valid\delete\**" />
-    <None Remove="ApiLoader\Sers\ApiDesc\Attribute\Valid\delete\**" />
+    <Compile Remove="SersLoader\ApiDesc\Attribute\Valid\delete\**" />
+    <Compile Remove="SersLoader\ApiDesc\Attribute\Valid\delete\**" />
+    <EmbeddedResource Remove="SersLoader\ApiDesc\Attribute\Valid\delete\**" />
+    <EmbeddedResource Remove="SersLoader\ApiDesc\Attribute\Valid\delete\**" />
+    <None Remove="SersLoader\ApiDesc\Attribute\Valid\delete\**" />
+    <None Remove="SersLoader\ApiDesc\Attribute\Valid\delete\**" />
     <Compile Remove="Module\Api\LocalApi\ApiTrace\Rpc\RpcContextWithApiTrace.cs" />
   </ItemGroup>  
  

+ 1 - 2
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/RpcVerify/SsRpcVerifyAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/RpcVerify/SsRpcVerifyAttribute.cs

@@ -3,8 +3,7 @@ using Newtonsoft.Json.Linq;
 using Vit.Core.Util.ComponentModel.SsError;
 using Vit.Extensions;
 
-
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.RpcVerify
 {
     [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)]
     public  class SsRpcVerifyAttribute : SsRpcVerifyBaseAttribute

+ 1 - 1
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/RpcVerify/SsRpcVerifyBaseAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/RpcVerify/SsRpcVerifyBaseAttribute.cs

@@ -1,7 +1,7 @@
 using System;
 using Newtonsoft.Json.Linq;
 
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.RpcVerify
 {
     [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)]
     public abstract class SsRpcVerifyBaseAttribute : System.Attribute

+ 3 - 3
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/SsCallerSourceAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsCallerSourceAttribute.cs

@@ -1,10 +1,10 @@
 using System;
 using System.Collections.Generic;
-using Vit.Extensions;
 using Sers.Core.Module.Api.Rpc;
+using Sers.SersLoader.ApiDesc.Attribute.RpcVerify;
+using Vit.Extensions;
 
-
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.Valid
 {
     /// <summary>
     /// 调用来源限制(内部调用 外部调用)

+ 3 - 3
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/SsCmpAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsCmpAttribute.cs

@@ -1,7 +1,7 @@
-using Vit.Extensions;
+using Sers.SersLoader.ApiDesc.Attribute.RpcVerify;
+using Vit.Extensions;
 
-
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.Valid
 {
     public class SsCmpAttribute : SsRpcVerifyAttribute
     {

+ 1 - 1
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/SsEqualAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsEqualAttribute.cs

@@ -1,4 +1,4 @@
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.Valid
 {
     public class SsEqualAttribute : SsCmpAttribute
     {

+ 3 - 2
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/SsIsNullAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsIsNullAttribute.cs

@@ -1,6 +1,7 @@
-using Vit.Extensions;
+using Sers.SersLoader.ApiDesc.Attribute.RpcVerify;
+using Vit.Extensions;
 
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.Valid
 {
  
     public class SsIsNullAttribute : SsRpcVerifyAttribute

+ 1 - 1
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/SsNotEqualAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsNotEqualAttribute.cs

@@ -1,5 +1,5 @@
 
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.Valid
 {
     public class SsNotEqualAttribute : SsCmpAttribute
     {

+ 1 - 1
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/SsRegexAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/SsRegexAttribute.cs

@@ -1,5 +1,5 @@
 
-namespace Sers.ApiLoader.Sers.Attribute
+namespace Sers.SersLoader.ApiDesc.Attribute.Valid
 {
     /// <summary>
     /// 正则限制

+ 0 - 0
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/delete/Demo/ApiModel_User.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/Demo/ApiModel_User.cs


+ 0 - 0
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/delete/SsEqualAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsEqualAttribute.cs


+ 0 - 0
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/delete/SsMaxValueAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsMaxValueAttribute.cs


+ 0 - 0
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/delete/SsMinValueAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsMinValueAttribute.cs


+ 0 - 0
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiDesc/Attribute/Valid/delete/SsSizeAttribute.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiDesc/Attribute/Valid/delete/SsSizeAttribute.cs


+ 7 - 8
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiLoader.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiLoader.cs

@@ -2,21 +2,20 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
+using Newtonsoft.Json.Linq;
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.LocalApi;
-using Vit.Core.Module.Log;
 using Sers.Core.Module.ApiLoader;
-using Vit.Core.Util.ConfigurationManager;
-using Vit.Core.Util.XmlComment;
-using Sers.ApiLoader.Sers.Attribute;
-using Sers.ApiLoader.Sers.RpcVerify2;
-using Newtonsoft.Json.Linq;
-using Vit.Extensions;
+using Sers.SersLoader.RpcVerify2;
+using Vit.Core.Module.Log;
 using Vit.Core.Util.Common;
 using Vit.Core.Util.ComponentModel.Api;
 using Vit.Core.Util.ComponentModel.Model;
+using Vit.Core.Util.ConfigurationManager;
+using Vit.Core.Util.XmlComment;
+using Vit.Extensions;
 
-namespace Sers.ApiLoader.Sers
+namespace Sers.SersLoader
 {
     public class ApiLoader : IApiLoader
     {

+ 3 - 3
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/ApiLoaderConfig.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/ApiLoaderConfig.cs

@@ -1,8 +1,8 @@
-using Vit.Core.Util.Extensible;
-using System;
+using System;
 using System.Reflection;
+using Vit.Core.Util.Extensible;
 
-namespace Sers.Core.Module.ApiLoader
+namespace Sers.SersLoader
 {
     public class ApiLoaderConfig: Extensible
     {

+ 1 - 1
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/IApiController.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/IApiController.cs

@@ -1,4 +1,4 @@
-namespace Sers.ApiLoader.Sers
+namespace Sers.SersLoader
 {
     public interface  IApiController
     {

+ 2 - 2
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/LocalApiNode.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/LocalApiNode.cs

@@ -1,12 +1,12 @@
 using System;
 using System.Reflection;
 using Newtonsoft.Json;
-using Vit.Extensions;
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.LocalApi;
 using Vit.Core.Util.Dynamic;
+using Vit.Extensions;
 
-namespace Sers.ApiLoader.Sers
+namespace Sers.SersLoader
 {
     [JsonObject(MemberSerialization.OptIn)]
     public class LocalApiNode: IApiNode

+ 4 - 4
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/RpcVerify2/RpcVerify2Loader.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/RpcVerify2/RpcVerify2Loader.cs

@@ -1,9 +1,9 @@
-using Newtonsoft.Json.Linq;
+using System.Linq;
 using System.Reflection;
-using System.Linq;
-using Sers.ApiLoader.Sers.Attribute;
+using Newtonsoft.Json.Linq;
+using Sers.SersLoader.ApiDesc.Attribute.RpcVerify;
 
-namespace Sers.ApiLoader.Sers.RpcVerify2
+namespace Sers.SersLoader.RpcVerify2
 {
     public class RpcVerify2Loader
     {

+ 9 - 9
dotnet/Sers/Sers.Core/Sers.Core/ApiLoader/Sers/SsModelBuilder.cs → dotnet/Sers/Sers.Core/Sers.Core/SersLoader/SsModelBuilder.cs

@@ -1,18 +1,18 @@
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using Vit.Extensions;
-using Sers.Core.Module.Api.ApiDesc;
-using Vit.Core.Module.Log;
-using Vit.Core.Util.XmlComment;
-using System;
+using System;
 using System.Collections.Generic;
+using System.Data;
 using System.Linq;
 using System.Reflection;
-using System.Data;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Sers.Core.Module.Api.ApiDesc;
+using Vit.Core.Module.Log;
 using Vit.Core.Util.ComponentModel.Api;
 using Vit.Core.Util.ComponentModel.Model;
+using Vit.Core.Util.XmlComment;
+using Vit.Extensions;
 
-namespace Sers.ApiLoader.Sers
+namespace Sers.SersLoader
 {
     public class SsModelBuilder
     {

+ 2 - 2
dotnet/Sers/Sers.Gateway/Sers.Gateway/Sers.Gateway.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 1 - 2
dotnet/Sers/Sers.Hardware/Net46/Sers.Hardware.Net46.Exe/Ms/CpuInfo.cs

@@ -2,10 +2,9 @@
 
 using System;
 using System.Diagnostics;
-
 using Microsoft.VisualBasic.Devices;
 
-namespace Sers.Hardware.Net46
+namespace Sers.Hardware.Net46.Exe.Ms
 {
 
 

+ 2 - 2
dotnet/Sers/Sers.Hardware/Net46/Sers.Hardware.Net46.Exe/Ms/NetworkInfo.cs

@@ -1,9 +1,9 @@
 using System;
 using System.Collections.Generic;
-using System.Net.NetworkInformation;
 using System.Diagnostics;
+using System.Net.NetworkInformation;
 
-namespace Sers.Hardware.Net46
+namespace Sers.Hardware.Net46.Exe.Ms
 {
     internal class NetworkInfo : IDisposable
     {

+ 2 - 1
dotnet/Sers/Sers.Hardware/Net46/Sers.Hardware.Net46.Exe/Program.cs

@@ -1,6 +1,7 @@
 using System;
+using Sers.Hardware.Net46.Exe.Ms;
 
-namespace Sers.Hardware.Net46
+namespace Sers.Hardware.Net46.Exe
 {
 
 

+ 2 - 2
dotnet/Sers/Sers.Hardware/Sers.Hardware/Sers.Hardware.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 2 - 2
dotnet/Sers/Sers.Ioc/Sers.Ioc/Sers.Ioc.csproj

@@ -1,8 +1,8 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 3 - 0
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Base/Extension/ApiNodeExtensions.cs → dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Base/Extensions/ApiNodeExtensions.cs

@@ -13,6 +13,9 @@ namespace Vit.Extensions
         {
             return data?.GetDataByConvert<EServiceStationStatus?>("Status")?? EServiceStationStatus.暂停;
         }
+
+
+
         public static void Status_Set(this ApiNode data, EServiceStationStatus value)
         {
             data?.SetData("Status", value);

+ 0 - 0
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Base/Extension/ServiceStationExtensions.cs → dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Base/Extensions/ServiceStationExtensions.cs


+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ApiDescController.cs

@@ -1,9 +1,9 @@
 using System.Collections.Generic;
 using Sers.Core.Module.Api.ApiDesc;
 using Sers.Core.Module.Api.Rpc;
-using Sers.ApiLoader.Sers;
-using Sers.ApiLoader.Sers.Attribute;
+using Sers.SersLoader;
 using System.Linq;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Sers.Gover.Base;
 using Vit.Core.Util.ComponentModel.Api;
 using Vit.Core.Util.ComponentModel.Data;

+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ApiStationController.cs

@@ -1,7 +1,7 @@
 using System.Collections.Generic;
 using Sers.Core.Module.Api.Rpc;
-using Sers.ApiLoader.Sers.Attribute;
-using Sers.ApiLoader.Sers;
+using Sers.SersLoader;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Sers.Gover.Base;
 using Sers.Gover.Base.Model;
 using Vit.Core.Util.ComponentModel.Api;

+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/RateLimitController.cs

@@ -1,7 +1,7 @@
 using Newtonsoft.Json.Linq;
 using Sers.Core.Module.Api.Rpc;
-using Sers.ApiLoader.Sers;
-using Sers.ApiLoader.Sers.Attribute;
+using Sers.SersLoader;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Sers.Gover.Base;
 using Sers.Gover.RateLimit;
 using Vit.Core.Util.ComponentModel.Api;

+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ServerStationController.cs

@@ -1,7 +1,7 @@
 using System.Collections.Generic;
 using Sers.Core.Module.Api.Rpc;
-using Sers.ApiLoader.Sers;
-using Sers.ApiLoader.Sers.Attribute;
+using Sers.SersLoader;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Sers.Gover.Base;
 using Sers.Gover.Base.Model;
 using Vit.Core.Util.ComponentModel.Api;

+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Controller/ApiControllers/ServiceCenterController.cs

@@ -4,8 +4,8 @@ using Newtonsoft.Json.Linq;
 using Vit.Extensions;
 using Vit.Core.Module.Log;
 using System.Diagnostics;
-using Sers.ApiLoader.Sers;
-using Sers.ApiLoader.Sers.Attribute;
+using Sers.SersLoader;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Sers.Hardware.Usage;
 using Vit.Core.Util.ComponentModel.Api;
 using Vit.Core.Util.ComponentModel.Data;

+ 0 - 0
dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Extension/ServiceCenter_GoverExtensions.cs → dotnet/Sers/Sers.ServiceCenter/Sers.Gover/Extensions/ServiceCenter_GoverExtensions.cs


+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.ServiceCenter/Controllers/ServiceStationController.cs

@@ -1,6 +1,6 @@
 using Sers.Core.Module.Api.Rpc;
-using Sers.ApiLoader.Sers;
-using Sers.ApiLoader.Sers.Attribute;
+using Sers.SersLoader;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Sers.Core.CL.CommunicationManage;
 using Sers.ServiceCenter.Entity;
 using Vit.Core.Util.ComponentModel.Api;

+ 2 - 2
dotnet/Sers/Sers.ServiceCenter/Sers.ServiceCenter/ServiceCenter.cs

@@ -7,7 +7,6 @@ using Sers.Core.Module.PubSub;
 using System.Collections.Generic;
 using Sers.Core.Module.Api.LocalApi;
 using Sers.Core.Module.Api;
-using Sers.Core.Module.ApiLoader;
 using Sers.ServiceCenter.ApiCenter;
 using Newtonsoft.Json.Linq;
 using Sers.Core.Module.Env;
@@ -17,6 +16,7 @@ using System.Linq;
 using Sers.Core.CL.CommunicationManage;
 using Sers.Core.CL.MessageOrganize;
 using System.Threading.Tasks;
+using Sers.SersLoader;
 
 namespace Sers.ServiceCenter
 {
@@ -176,7 +176,7 @@ namespace Sers.ServiceCenter
         /// <param name="config"></param>
         public void LoadSsApi(ApiLoaderConfig config)
         {
-            localApiService.LoadSsApi(config);
+            localApiService.LoadSersApi(config);
         }
 
 

+ 2 - 2
dotnet/Sers/Sers.ServiceStation/Sers.ServiceStation/Sers.ServiceStation.csproj

@@ -1,9 +1,9 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
  
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
-    <Version>2.1.1.283</Version>
+    <Version>2.1.1.288</Version>
     <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
   </PropertyGroup>
 

+ 4 - 4
dotnet/Sers/Sers.ServiceStation/Sers.ServiceStation/ServiceStation.cs

@@ -7,7 +7,6 @@ using System;
 using System.Reflection;
 using Sers.Core.Module.Api.LocalApi;
 using Sers.Core.Module.PubSub;
-using Sers.Core.Module.ApiLoader;
 using Vit.Core.Util.ConfigurationManager;
 using System.Collections.Generic;
 using System.Linq;
@@ -17,6 +16,7 @@ using Sers.Core.Module.Env;
 using Sers.Core.Module.Message;
 using Vit.Core.Util.ComponentModel.Data;
 using System.Threading.Tasks;
+using Sers.SersLoader;
 
 namespace Sers.ServiceStation
 {
@@ -42,8 +42,8 @@ namespace Sers.ServiceStation
             ServiceStation.Init();
 
             //(x.2) Discovery
-            //ServiceStation.Instance.LoadSsApi(typeof(Program).Assembly);
-            //ServiceStation.Instance.LoadSsApi(typeof(Program).Assembly, new Sers.Core.Module.ApiLoader.ApiLoaderConfig { apiStationName = "Demo" });
+            //ServiceStation.Instance.LoadSersApi(typeof(Program).Assembly);
+            //ServiceStation.Instance.LoadSersApi(typeof(Program).Assembly, new Sers.Core.Module.ApiLoader.ApiLoaderConfig { apiStationName = "Demo" });
             ServiceStation.Instance.LoadApi();
 
             //(x.3) Start
@@ -171,7 +171,7 @@ namespace Sers.ServiceStation
         /// <param name="config"></param>
         public void LoadSsApi(ApiLoaderConfig config)
         {
-            localApiService.LoadSsApi(config);
+            localApiService.LoadSersApi(config);
         }
 
 

+ 1 - 2
dotnet/netcore/WebApi21/App.WebApi21.Station/Controllers/ValuesController.cs → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Controllers/ValuesController.cs

@@ -1,10 +1,9 @@
 using System.Collections.Generic;
 using System.Threading;
 using System.Threading.Tasks;
-using Microsoft.AspNetCore.Http.Features;
 using Microsoft.AspNetCore.Mvc;
 
-namespace App.Station.Controllers
+namespace Did.NetcoreLoader.Demo.Controllers
 {
     [Route("apidemo/[controller]")]
     [Route("apidemo/v1")]

+ 6 - 6
dotnet/netcore/WebApi21/App.WebApi21.Station/App.WebApi21.Station.csproj → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Did.NetcoreLoader.Demo.csproj

@@ -7,6 +7,10 @@
     <StartupObject />
   </PropertyGroup>
 
+  <PropertyGroup>
+    <DocumentationFile>bin\Debug\netcoreapp2.1\Did.NetcoreLoader.Demo.xml</DocumentationFile>
+  </PropertyGroup>
+
   <ItemGroup>
     <Folder Include="wwwroot\" />
   </ItemGroup>
@@ -17,7 +21,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\Sers.ApiLoader.WebApi21\Sers.ApiLoader.WebApi21.csproj" />
+    <ProjectReference Include="..\..\..\Sers\ApiLoader\Sers.NetcoreLoader\Sers.NetcoreLoader.csproj" />
   </ItemGroup>
 
   <ItemGroup>
@@ -26,10 +30,6 @@
     </Content>
   </ItemGroup>
 
-  <ItemGroup>
-    <None Update="start.bat">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-  </ItemGroup>
+ 
 
 </Project>

+ 2 - 2
dotnet/netcore/WebApi21/App.WebApi21.Station/Program.cs → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Program.cs

@@ -4,7 +4,7 @@ using Newtonsoft.Json.Linq;
 using Sers.ServiceStation;
 using Vit.Extensions;
 
-namespace App.Station
+namespace Did.NetcoreLoader.Demo
 {
     public class Program
     {
@@ -19,7 +19,7 @@ namespace App.Station
                 global::Sers.Core.Module.Rpc.RpcFactory.Instance.UseIoc();
 
                 #region (x.x)加载api             
-                ServiceStation.Instance.localApiService.LoadWebApi21(typeof(Program).Assembly);
+                ServiceStation.Instance.localApiService.LoadNetcoreApi(typeof(Program).Assembly);
                 ServiceStation.Instance.LoadApi(); 
                 #endregion
 

+ 0 - 0
dotnet/netcore/WebApi21/App.WebApi21.Station/Properties/PublishProfiles/FolderProfile.pubxml → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Properties/PublishProfiles/FolderProfile.pubxml


+ 0 - 0
dotnet/netcore/WebApi21/App.WebApi21.Station/Properties/launchSettings.json → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Properties/launchSettings.json


+ 2 - 9
dotnet/netcore/WebApi21/App.WebApi21.Station/Startup.cs → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/Startup.cs

@@ -1,17 +1,10 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.HttpsPolicy;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Options;
 
-namespace App.Station
+namespace Did.NetcoreLoader.Demo
 {
     public class Startup
     {

+ 0 - 0
dotnet/netcore/Serslot/Did.Serslot.Demo/appsettings.Development.json → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/appsettings.Development.json


+ 0 - 0
dotnet/netcore/WebApi21/App.WebApi21.Station/appsettings.json → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.Demo/appsettings.json


+ 279 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Controllers/ValuesController.cs

@@ -0,0 +1,279 @@
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Did.NetcoreLoader.HellolWorld.Controllers
+{
+    [Route("apidemo/[controller]")]
+    [Route("apidemo/v1")]
+    [ApiController]
+    public class ValuesController : ControllerBase
+    {
+
+        #region (x.1)route
+
+        /// <summary>
+        /// GET apidemo/Values
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public object  Route0()
+        {
+            //var requestFeature = Request.HttpContext.Features.Get<IHttpRequestFeature>();             
+            return "GET apidemo/Values";
+        }
+
+
+        /// <summary>
+        /// GET apidemo/Values/route_x
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("route1")]
+        [HttpGet("route2")]
+        [HttpGet("/apidemo/Values/route3")]
+        public object Route1()
+        {            
+            return new{
+                Request.Path,
+                Method = Request.Method
+            };
+        }
+
+
+        /// <summary>
+        /// GET apidemo/Values/route4
+        /// </summary>
+        /// <returns></returns>     
+        [HttpGet("[action]")]
+        public object route4()
+        {
+            return new
+            {
+                name= "GET apidemo/Values/route4",
+                Request.Path,
+                Method = Request.Method
+            };
+        }
+        #endregion
+
+
+        #region (x.2) result
+
+        /// <summary>
+        /// GET apidemo/Values/result1
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("result1")]
+        public object Result1()
+        {
+            return "GET apidemo/Values/result1";
+        }
+
+        /// <summary>
+        /// GET apidemo/Values/result2
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("result2")]
+        public ActionResult<string> Result2()
+        {
+            return "GET apidemo/Values/result2";
+        }
+
+
+        /// <summary>
+        /// GET apidemo/Values/result3
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("result3")]
+        public ActionResult<IEnumerable<string>> Result3()
+        {
+            return new string[] { "GET apidemo/Values/result3", "" };
+        }
+
+
+        /// <summary>
+        /// GET apidemo/Values/result4
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("result4")]
+        public async Task<string> Result4()
+        {
+            await Task.Run(() => { Thread.Sleep(2000); });
+
+            return "GET apidemo/Values/result4";
+        }
+
+        /// <summary>
+        /// GET apidemo/Values/result5
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("result5")]
+        public async Task<ActionResult<string>> Result5()
+        {
+            await Task.Run(() => { Thread.Sleep(2000); });
+
+            return "GET apidemo/Values/result5";
+        }
+        #endregion
+
+
+        #region (x.3) HttpMethod
+
+        /// <summary>
+        /// GET apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("method")]
+        public string Method_Get()
+        {
+            return "GET apidemo/Values/method";
+        }
+
+        /// <summary>
+        /// POST apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("method")]
+        public string Method_Post()
+        {
+            return "POST apidemo/Values/method";
+        }
+
+        /// <summary>
+        /// Put apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpPut("method")]
+        public string Method_Put()
+        {
+            return "Put apidemo/Values/method";
+        }
+
+        /// <summary>
+        /// Delete apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpDelete("method")]
+        public string Method_Delete()
+        {
+            return "Delete apidemo/Values/method";
+        }
+
+        /// <summary>
+        /// Head apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpHead("method")]
+        public string Method_Head()
+        {
+            return "Head apidemo/Values/method";
+        }
+
+        /// <summary>
+        /// Options apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpOptions("method")]
+        public string Method_Options()
+        {
+            return "Options apidemo/Values/method";
+        }
+
+        /// <summary>
+        /// Patch apidemo/Values/method
+        /// </summary>
+        /// <returns></returns>
+        [HttpPatch("method")]
+        public string Method_Patch()
+        {
+            return "Patch apidemo/Values/method";
+        }
+
+
+        /// <summary>
+        /// get|post apidemo/Values/method2
+        /// </summary>
+        /// <returns></returns>
+        [Route("method2")]
+        [HttpGet,HttpPost]
+        public object Method2()
+        {
+            return new
+            {
+                Request.Path,
+                Method = Request.Method
+            };
+        }
+        #endregion
+
+
+        #region (x.4) Arg
+
+
+        /// <summary>
+        /// GET apidemo/Values/arg1/{id}/{id2}
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("arg1/{id}/{id2}")]
+        public object Arg1(string id,string id2)
+        {
+            return new {
+                route= "GET apidemo/Values/arg1/{id}/{id2}",
+                arg = new { id,id2 }
+            }; 
+        }
+
+        ///// <summary>
+        ///// GET apidemo/Values/arg2/arg2?id={id}
+        ///// </summary>
+        ///// <returns></returns>
+        //[HttpGet("arg2?id={id}")]
+        //public object Arg2(string id)
+        //{
+        //    return new
+        //    {
+        //        route = "GET apidemo/Values/arg2/arg2?id={id}",
+        //        arg = new { id }
+        //    };
+        //}
+
+
+        /// <summary>
+        /// POST apidemo/Values/arg3
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("arg3")]
+        public object Arg3([FromBody] string arg1)
+        {
+            return new
+            {
+                route = "POST apidemo/Values/arg3",
+                arg = new { arg1 }
+            };
+        }
+
+
+
+        /// <summary>
+        /// POST apidemo/Values/arg4
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("arg4")]
+        public object Arg4([FromBody] Arg4Model arg)
+        {
+            return new
+            {
+                route = "POST apidemo/Values/arg4",
+                arg = arg
+            };
+        }
+        public class Arg4Model {
+            public string arg1 { get; set; }
+            public string arg2 { get; set; }
+        };
+        #endregion
+
+
+    }
+}

+ 35 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Did.NetcoreLoader.HellolWorld.csproj

@@ -0,0 +1,35 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <ApplicationIcon />
+    <OutputType>Exe</OutputType>
+    <StartupObject />
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <DocumentationFile>bin\Debug\netcoreapp2.1\Did.NetcoreLoader.HellolWorld.xml</DocumentationFile>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="wwwroot\" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.AspNetCore.App" />
+    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />    
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\Sers\ApiLoader\Sers.NetcoreLoader\Sers.NetcoreLoader.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Content Update="appsettings.json">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+
+ 
+
+</Project>

+ 44 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Program.cs

@@ -0,0 +1,44 @@
+using Microsoft.AspNetCore;
+using Microsoft.AspNetCore.Hosting;
+using Newtonsoft.Json.Linq;
+using Sers.ServiceStation;
+using Vit.Extensions;
+
+namespace Did.NetcoreLoader.HellolWorld
+{
+    public class Program
+    {
+        public static void Main(string[] args)
+        {
+            if (null != Vit.Core.Util.ConfigurationManager.ConfigurationManager.Instance.Get<JToken>("Sers"))
+            {
+                //start by sers
+
+                ServiceStation.Init();
+
+                global::Sers.Core.Module.Rpc.RpcFactory.Instance.UseIoc();
+
+                #region (x.x)加载api             
+                ServiceStation.Instance.localApiService.LoadNetcoreApi(typeof(Program).Assembly);
+                ServiceStation.Instance.LoadApi(); 
+                #endregion
+
+
+                ServiceStation.Start();
+
+                ServiceStation.RunAwait();
+
+            }
+            else
+            {
+                //start by AspNetCore Original
+                CreateWebHostBuilder(args).Build().Run();
+            }
+        }
+
+        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
+            WebHost.CreateDefaultBuilder(args)
+               .UseUrls(Vit.Core.Util.ConfigurationManager.ConfigurationManager.Instance.GetByPath<string[]>("server.urls"))
+               .UseStartup<Startup>();
+    }
+}

+ 22 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Properties/PublishProfiles/FolderProfile.pubxml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+此文件由 Web 项目的发布/打包过程使用。可以通过编辑此 MSBuild 文件
+自定义此过程的行为。为了解与此相关的更多内容,请访问 https://go.microsoft.com/fwlink/?LinkID=208121。 
+-->
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <WebPublishMethod>FileSystem</WebPublishMethod>
+    <PublishProvider>FileSystem</PublishProvider>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <SiteUrlToLaunchAfterPublish />
+    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
+    <ExcludeApp_Data>False</ExcludeApp_Data>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <ProjectGuid>70d6f463-ab83-421c-89ba-d8c3fefbd0fe</ProjectGuid>
+    <SelfContained>false</SelfContained>
+    <_IsPortable>true</_IsPortable>
+    <publishUrl>bin\station</publishUrl>
+    <DeleteExistingFiles>True</DeleteExistingFiles>
+  </PropertyGroup>
+</Project>

+ 30 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Properties/launchSettings.json

@@ -0,0 +1,30 @@
+{
+  "$schema": "http://json.schemastore.org/launchsettings.json",
+  "iisSettings": {
+    "windowsAuthentication": false, 
+    "anonymousAuthentication": true, 
+    "iisExpress": {
+      "applicationUrl": "http://localhost:50665",
+      "sslPort": 44308
+    }
+  },
+  "profiles": {
+    "IIS Express": {
+      "commandName": "IISExpress",
+      "launchBrowser": true,
+      "launchUrl": "api/values",
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development"
+      }
+    },
+    "App.WebApp2._1.Station": {
+      "commandName": "Project",
+      "launchBrowser": true,
+      "launchUrl": "api/values",
+      "applicationUrl": "https://localhost:5001;http://localhost:5000",
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development"
+      }
+    }
+  }
+}

+ 40 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/Startup.cs

@@ -0,0 +1,40 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Did.NetcoreLoader.HellolWorld
+{
+    public class Startup
+    {
+        public Startup(IConfiguration configuration)
+        {
+            Configuration = configuration;
+        }
+
+        public IConfiguration Configuration { get; }
+
+        // This method gets called by the runtime. Use this method to add services to the container.
+        public void ConfigureServices(IServiceCollection services)
+        {
+            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
+        }
+
+        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
+        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
+        {
+            if (env.IsDevelopment())
+            {
+                app.UseDeveloperExceptionPage();
+            }
+            else
+            {
+                app.UseHsts();
+            }
+
+            app.UseHttpsRedirection();
+            app.UseMvc();
+        }
+    }
+}

+ 0 - 0
dotnet/netcore/Serslot/Did.Serslot.HelloWorld/appsettings.Development.json → dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/appsettings.Development.json


+ 84 - 0
dotnet/StationDemo/NetcoreLoader/Did.NetcoreLoader.HelloWorld/appsettings.json

@@ -0,0 +1,84 @@
+{
+  "Logging": {
+    "LogLevel": {
+      "Default": "Warning"
+    }
+  },
+
+
+  "Sers": {
+    /* 通讯层配置 */
+    "CL": {
+      /* one conn is one channel.can be multiable */
+      "Client": [
+        {
+          // Socket.Iocp
+          /* (x.1) type - Iocp */
+          /* the class of builder in assemblyFile  */
+          "className": "Sers.CL.Socket.Iocp.OrganizeClientBuilder",
+
+          /* (x.2) conn config */
+          /* 服务端 host地址。例如: "127.0.0.1"、"sersms.com" */
+          "host": "127.0.0.1",
+          /* 服务端 监听端口号。例如: 4501 */
+          "port": 4501,
+
+
+          /* 连接秘钥,用以验证连接安全性。服务端和客户端必须一致 */
+          "secretKey": "SersCL"
+        }
+      ]
+    },
+
+
+    /* LocalApiService 配置,可不指定 */
+    "LocalApiService": {
+
+      /* 后台服务的线程个数(单位个,默认0,代表不开启服务) */
+      "workThreadCount": 4,
+
+      /* Api加载器配置 */
+      "ApiLoaders": [
+        {
+          /* 加载器的类名,可为 Sers.ApiLoader.Ss.ApiLoader 、 Sers.ApiLoader.WebApi21.ApiLoader 等。若不指定则默认为"Sers.ApiLoader.Ss.ApiLoader" */
+          "loader_className": "Sers.ApiLoader.WebApi21.ApiLoader",
+          /* 在此Assembly中查找服务(如 Sers.Core.Station.dll 、Sers.ApiLoader.WebApi21.dll) */
+          "loader_assemblyFile": "Sers.ApiLoader.WebApi21.dll",
+
+          /* 在此Assembly中查找服务(如 App.StationDemo.Station)(assembly、assemblyFile、assemblyName 指定任一即可) */
+          "assemblyName": "App.WebApi21.Station"
+        }
+      ]
+
+
+    },
+
+
+    /* ServiceStation配置,可不指定 */
+    "ServiceStation": {
+
+      /* serviceStation站点信息 */
+      "serviceStationInfo": {
+        "serviceStationName": "WebApi21"
+      }
+    }
+  },
+
+  /* Vit工具配置,可不指定 */
+  "Vit": {
+
+    /* 日志配置,可不指定 */
+    "Logger": {
+      /* print the log to console. default:false  */
+      "PrintToConsole": true
+    }
+  },
+
+
+
+  /* asp.net core 原始web服务配置 */
+  "server": {
+    "urls": [ "http://localhost:5001", "http://127.0.0.1:5002", "http://*:5003" ]
+  }
+
+}

+ 4 - 0
dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/App.Demo.Station.csproj

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>

+ 10 - 9
dotnet/netcore/Station/Demo/App.Demo.Station/Controllers/Demo/SampleController.cs → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/Demo/SampleController.cs

@@ -1,24 +1,25 @@
 using System;
 using System.Collections.Generic;
+using System.Threading;
+using Did.SersLoader.Demo.Controllers.PubSub;
 using Newtonsoft.Json;
-using Vit.Extensions;
 using Sers.Core.Module.Api;
+using Sers.Core.Module.Api.LocalApi.StaticFileTransmit;
 using Sers.Core.Module.Api.Rpc;
 using Sers.Core.Module.App;
-using Sers.Core.Module.Rpc;
-using Vit.Core.Util.ConfigurationManager;
-using Sers.ApiLoader.Sers.Attribute;
-using Sers.ApiLoader.Sers;
-using System.Threading;
-using App.Demo.Station.Controllers.PubSub;
 using Sers.Core.Module.Message;
+using Sers.Core.Module.Rpc;
+using Sers.SersLoader;
+using Sers.SersLoader.ApiDesc.Attribute.RpcVerify;
+using Sers.SersLoader.ApiDesc.Attribute.Valid;
 using Vit.Core.Util.ComponentModel.Api;
 using Vit.Core.Util.ComponentModel.Data;
 using Vit.Core.Util.ComponentModel.Model;
+using Vit.Core.Util.ConfigurationManager;
+using Vit.Extensions;
 using Vit.Net.Http.FormFile;
-using Sers.Core.Module.Api.LocalApi.StaticFileTransmit;
 
-namespace App.Demo.Station.Controllers.Demo
+namespace Did.SersLoader.Demo.Controllers.Demo
 {
     //站点名称,可多个。若不指定,则从 配置文件中LocalApiService中的"apiStationNames"获取
     [SsStationName("demo")]

+ 4 - 5
dotnet/netcore/Station/Demo/App.Demo.Station/Controllers/PubSub/Controller/PublishController.cs → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/PubSub/Controller/PublishController.cs

@@ -1,12 +1,11 @@
-using Sers.ApiLoader.Sers;
-using Sers.ApiLoader.Sers.Attribute;
-using Vit.Extensions;
-using Sers.Core.Module.PubSub;
+using Sers.Core.Module.PubSub;
 using Sers.Core.Module.Rpc;
+using Sers.SersLoader;
 using Vit.Core.Util.ComponentModel.Api;
 using Vit.Core.Util.ComponentModel.Data;
+using Vit.Extensions;
 
-namespace App.Demo.Station.Controllers.PubSub.Controller
+namespace Did.SersLoader.Demo.Controllers.PubSub.Controller
 {
 
     //路由前缀,可不指定

+ 1 - 1
dotnet/netcore/Station/Demo/App.Demo.Station/Controllers/PubSub/Controller/UserSubController.cs → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/PubSub/Controller/UserSubController.cs

@@ -1,6 +1,6 @@
 using System;
 
-namespace App.Demo.Station.Controllers.PubSub.Controller
+namespace Did.SersLoader.Demo.Controllers.PubSub.Controller
 {
     public class MsgItem
     {

+ 4 - 4
dotnet/netcore/Station/Demo/App.Demo.Station/Controllers/PubSub/SubscriberDemo.cs → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Controllers/PubSub/SubscriberDemo.cs

@@ -1,10 +1,10 @@
-using Newtonsoft.Json.Linq;
+using System;
+using Newtonsoft.Json.Linq;
 using Sers.Core.Module.PubSub;
-using System;
-using Vit.Extensions;
 using Vit.Core.Module.Log;
+using Vit.Extensions;
 
-namespace App.Demo.Station.Controllers.PubSub
+namespace Did.SersLoader.Demo.Controllers.PubSub
 {
     public class SubscriberDemo
     {

+ 37 - 0
dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Did.SersLoader.Demo.csproj

@@ -0,0 +1,37 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <Version>2.1.1.288</Version>
+    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
+    <Description>https://github.com/sersms/Sers/tree/2.1.1/release</Description>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <DocumentationFile>bin\Debug\netcoreapp2.1\Did.SersLoader.Demo.xml</DocumentationFile>   
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="wwwroot\" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <None Update="mappings.json">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
+    <Content Include="appsettings.json">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\Sers\Sers.CL\Ipc\Sers.CL.Ipc.SharedMemory\Sers.CL.Ipc.SharedMemory.csproj" />
+    <ProjectReference Include="..\..\..\Sers\Sers.CL\WebSocket\Sers.CL.WebSocket\Sers.CL.WebSocket.csproj" />
+    <ProjectReference Include="..\..\..\Sers\Sers.CL\Zmq\FullDuplex\Sers.CL.Zmq.FullDuplex\Sers.CL.Zmq.FullDuplex.csproj" />
+    <ProjectReference Include="..\..\..\Sers\Sers.CL\Zmq\ThreadWait\Sers.CL.ClrZmq.ThreadWait\Sers.CL.ClrZmq.ThreadWait.csproj" />
+    <ProjectReference Include="..\..\..\Sers\Sers.ServiceStation\Sers.ServiceStation\Sers.ServiceStation.csproj" />
+    <ProjectReference Include="..\..\..\Vit\Vit.Net.Http.FormFile\Vit.Net.Http.FormFile.csproj" />
+  </ItemGroup> 
+
+</Project>

+ 5 - 5
dotnet/netcore/Station/Demo/App.Demo.Station/Program.cs → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Program.cs

@@ -1,7 +1,7 @@
-using Sers.ServiceStation;
-using Vit.Extensions;
+using Sers.SersLoader;
+using Sers.ServiceStation;
 
-namespace App.Demo.Station
+namespace Did.SersLoader.Demo
 {
     public class Program
     {
@@ -20,8 +20,8 @@ namespace App.Demo.Station
 
 
             #region (x.2)加载api
-            //ServiceStation.Instance.LoadSsApi(typeof(Program).Assembly);
-            ServiceStation.Instance.LoadSsApi(typeof(Program).Assembly, new Sers.Core.Module.ApiLoader.ApiLoaderConfig { apiStationName = "demo" });
+            //ServiceStation.Instance.LoadSersApi(typeof(Program).Assembly);
+            ServiceStation.Instance.LoadSsApi(typeof(Program).Assembly, new ApiLoaderConfig { apiStationName = "demo" });
             ServiceStation.Instance.LoadApi();
             #endregion
 

+ 0 - 0
dotnet/netcore/Station/Demo/App.Demo.Station/Properties/PublishProfiles/FolderProfile.pubxml → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/Properties/PublishProfiles/FolderProfile.pubxml


+ 9 - 8
dotnet/netcore/Station/Demo/App.Demo.Station/appsettings.json → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/appsettings.json

@@ -149,18 +149,19 @@
       /* Api加载器配置 */
       "//ApiLoaders": [
         {
-          /* 加载器的类名,可为 Sers.ApiLoader.Ss.ApiLoader 、 Sers.ApiLoader.WebApi21.ApiLoader 等。若不指定则默认为"Sers.ApiLoader.Ss.ApiLoader" */
-          //"loader_className": "Sers.ApiLoader.WebApi21.ApiLoader",
-          /* 在此Assembly中查找服务(如 Sers.Core.Station.dll 、Sers.ApiLoader.WebApi21.dll) */
-          //"loader_assemblyFile": "Sers.ApiLoader.WebApi21.dll",
+          /* 在此Assembly中查找api加载器(如 Sers.Core.dll 、Sers.NetcoreLoader.dll 、 Sers.Serslot.dll ) */
+          //"loader_assemblyFile": "Sers.Core.dll",
+          /* 加载器的类名,可为 Sers.SersLoader.ApiLoader 、 Sers.NetcoreLoader.ApiLoader、 Sers.Serslot.ApiLoader 等。若不指定则默认为"Sers.SersLoader.ApiLoader" */
+          //"loader_className": "Sers.SersLoader.ApiLoader",
+
 
 
           //(通过反射从此包中获取要加载的api)
-          /* 在此Assembly中查找服务(如 App.StationDemo.Station.dll)(assembly、assemblyFile、assemblyName 指定任一即可) */
-          "assemblyFile": "App.StationDemo.Station.dll",
+          /* 在此Assembly中查找服务(如 Did.SersLoader.Demo.dll)(assembly、assemblyFile、assemblyName 指定任一即可) */
+          "assemblyFile": "Did.SersLoader.Demo.dll",
 
-          /* 在此Assembly中查找服务(如 App.StationDemo.Station)(assembly、assemblyFile、assemblyName 指定任一即可) */
-          //"assemblyName": "App.StationDemo.Station",
+          /* 在此Assembly中查找服务(如 Did.SersLoader.Demo)(assembly、assemblyFile、assemblyName 指定任一即可) */
+          //"assemblyName": "Did.SersLoader.Demo",
 
 
 

+ 0 - 0
dotnet/netcore/Station/Demo/App.Demo.Station/mappings.json → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/mappings.json


+ 0 - 0
dotnet/netcore/Station/Demo/App.Demo.Station/wwwroot/demo/jqueryupload.html → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/wwwroot/demo/jqueryupload.html


+ 0 - 0
dotnet/netcore/Station/Demo/App.Demo.Station/wwwroot/demo/upload.html → dotnet/StationDemo/SersLoader/Did.SersLoader.Demo/wwwroot/demo/upload.html


Vissa filer visades inte eftersom för många filer har ändrats