32个文件已修改
77个文件已添加
1 文件已重命名
| | |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|d:\\workspace\\pdmswplugin2\\customrictbox\\customrichbox.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|solutionrelative:customrictbox\\customrichbox.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|d:\\workspace\\pdmswplugin2\\customrictbox\\customrichbox.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|solutionrelative:customrictbox\\customrichbox.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|d:\\workspace\\pdmswplugin2\\pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\eventhandler\\baseattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\eventhandler\\baseattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|d:\\workspace\\pdmswplugin2\\pdmsw\\log4net.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", |
| | | "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\log4net.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "DrawApprove.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "ViewState": "AgIAAIcBAAAAAAAAAAAcwJYBAAANAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-04T04:19:25.271Z", |
| | | "DocumentIndex": 2, |
| | | "Title": "DrawApprove.xaml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml", |
| | | "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", |
| | | "WhenOpened": "2024-10-09T03:31:27.843Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "CustomRichBox.xaml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml", |
| | | "RelativeDocumentMoniker": "CustomRictBox\\CustomRichBox.xaml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml", |
| | | "RelativeToolTip": "CustomRictBox\\CustomRichBox.xaml", |
| | | "DocumentIndex": 1, |
| | | "Title": "PdmControl.xaml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", |
| | | "WhenOpened": "2024-09-04T02:32:36.605Z", |
| | | "WhenOpened": "2024-10-09T03:30:57.686Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "CustomRichBox.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "RelativeDocumentMoniker": "CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "RelativeToolTip": "CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "ViewState": "AgIAAMgBAAAAAAAAAAAuwBACAAAxAAAAAAAAAA==", |
| | | "Title": "DrawApprove.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "ViewState": "AgIAAAYCAAAAAAAAAAAkwCICAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-04T02:27:06.101Z", |
| | | "WhenOpened": "2024-10-09T03:22:18.864Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "log4net.config", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\log4net.config", |
| | | "RelativeDocumentMoniker": "PdmSw\\log4net.config", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\log4net.config", |
| | | "RelativeToolTip": "PdmSw\\log4net.config", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAQAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|", |
| | | "WhenOpened": "2024-09-26T10:24:04.161Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "SwAddin.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", |
| | | "RelativeDocumentMoniker": "PdmSw\\SwAddin.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", |
| | | "RelativeToolTip": "PdmSw\\SwAddin.cs", |
| | | "ViewState": "AgIAACIAAAAAAAAAAAA5wCkAAAAvAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-26T08:51:00.927Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "BaseAttacher.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "ViewState": "AgIAAKoAAAAAAAAAAAA0wMcAAAApAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-25T09:56:45.504Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "MainControl.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "ViewState": "AgIAAIwAAAAAAAAAAAA+wOQAAABDAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-25T09:54:37.505Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "PdmControl.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "ViewState": "AgIAAM0EAAAAAAAAAAAAAOEEAAAvAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-25T06:09:00.747Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
| | |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\constant\\pluginconst.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|d:\\workspace\\pdmswplugin2\\customrictbox\\customrichbox.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|solutionrelative:customrictbox\\customrichbox.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{1033FBD8-8700-4CD0-808A-BB97DB057A6B}|PdmSwPlugin.PDM\\PdmSwPlugin.PDM.csproj|solutionrelative:pdmswplugin.pdm\\pdmcontrol.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BE239D32-7253-4D19-8793-159E98545B55}|PdmSwPlugin.DrawApprove\\PdmSwPlugin.DrawApprove.csproj|solutionrelative:pdmswplugin.drawapprove\\drawapprove.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|d:\\workspace\\pdmswplugin2\\pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{7ACEDAA9-2DE8-4485-837A-E7D58812A6DC}|PdmSw\\PdmSw.csproj|solutionrelative:pdmsw\\swaddin.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|d:\\workspace\\pdmswplugin2\\customrictbox\\customrichbox.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{44BCE7B9-F984-426B-9997-FC1FB1A49CC0}|CustomRictBox\\PdmSwPlugin.UI.csproj|solutionrelative:customrictbox\\customrichbox.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\swaddin\\maincontrol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|d:\\workspace\\pdmswplugin2\\pdmswplugin.main\\eventhandler\\baseattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{6E609A8C-583B-4607-A510-FA84218C4A31}|PdmSwPlugin.Main\\PdmSwPlugin.Main.csproj|solutionrelative:pdmswplugin.main\\eventhandler\\baseattacher.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 0, |
| | | "SelectedChildIndex": 4, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "PluginConst.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\Constant\\PluginConst.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.Main\\Constant\\PluginConst.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-04T04:59:17.992Z", |
| | | "DocumentIndex": 1, |
| | | "Title": "PdmControl.xaml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", |
| | | "WhenOpened": "2024-10-09T03:30:57.686Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "DrawApprove.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.DrawApprove\\DrawApprove.xaml.cs", |
| | | "ViewState": "AgIAAIcBAAAAAAAAAAAcwJYBAAANAAAAAAAAAA==", |
| | | "Title": "SwAddin.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", |
| | | "RelativeDocumentMoniker": "PdmSw\\SwAddin.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSw\\SwAddin.cs", |
| | | "RelativeToolTip": "PdmSw\\SwAddin.cs", |
| | | "ViewState": "AgIAACIAAAAAAAAAAAA5wCkAAAAvAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-04T04:19:25.271Z", |
| | | "WhenOpened": "2024-09-26T08:51:00.927Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "BaseAttacher.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.Main\\EventHandler\\BaseAttacher.cs", |
| | | "ViewState": "AgIAAKoAAAAAAAAAAAA0wMcAAAApAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-25T09:56:45.504Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "CustomRichBox.xaml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml", |
| | | "RelativeDocumentMoniker": "CustomRictBox\\CustomRichBox.xaml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml", |
| | | "RelativeToolTip": "CustomRictBox\\CustomRichBox.xaml", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", |
| | | "WhenOpened": "2024-09-04T02:32:36.605Z", |
| | | "Title": "MainControl.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.Main\\SwAddIn\\MainControl.cs", |
| | | "ViewState": "AgIAAIwAAAAAAAAAAAA+wOQAAABDAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-25T09:54:37.505Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "CustomRichBox.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "RelativeDocumentMoniker": "CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "RelativeToolTip": "CustomRictBox\\CustomRichBox.xaml.cs", |
| | | "ViewState": "AgIAAMgBAAAAAAAAAAAuwM4BAABAAAAAAAAAAA==", |
| | | "DocumentIndex": 0, |
| | | "Title": "PdmControl.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "RelativeDocumentMoniker": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "RelativeToolTip": "PdmSwPlugin.PDM\\PdmControl.xaml.cs", |
| | | "ViewState": "AgIAANAEAAAAAAAAAAAAAOIEAAAZAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-04T02:27:06.101Z", |
| | | "WhenOpened": "2024-09-25T06:09:00.747Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
| | |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <OutputPath>bin\x64\Debug\</OutputPath> |
| | | <OutputPath>..\PdmSw\bin\x64\Debug\AutoUpdater\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <DebugType>full</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | |
| | | using System.Diagnostics; |
| | | using System.IO; |
| | | using System.Reflection; |
| | | using System.Runtime.InteropServices; |
| | | using System.Threading; |
| | | using System.Windows; |
| | | using VersionControl; |
| | |
| | | GetCurrentVersion(); |
| | | // 检查插件的更新 |
| | | CheckPluginUpdate(); |
| | | } |
| | | } |
| | | |
| | | public void KillProcessByFullPath(string exePath) |
| | | { |
| | | string exeName = Path.GetFileNameWithoutExtension(exePath); |
| | | Process[] ps = Process.GetProcessesByName(exeName); |
| | | if (ps.Length > 0) |
| | | { |
| | | foreach (Process p in ps) |
| | | { |
| | | if (new Uri(p.MainModule.FileName) == new Uri(exePath)) |
| | | { |
| | | p.Kill(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 终止两个Listener相关进程 |
| | | /// </summary> |
| | | public void KillListenerProcess() |
| | | { |
| | | string dir = Path.GetDirectoryName(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); |
| | | string path1 = Path.Combine(dir, "Listener", "SolidWorksListener.exe"); |
| | | string path2 = Path.Combine(dir, "Alert.exe"); |
| | | KillProcessByFullPath(path1); |
| | | // 暂停一秒不然AlertKill不掉 |
| | | Thread.Sleep(1000); |
| | | KillProcessByFullPath(path2); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 启动Listener相关进程 |
| | | /// </summary> |
| | | public void StartListenerProcess() |
| | | { |
| | | string dir = Path.GetDirectoryName(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); |
| | | string path1 = Path.Combine(dir, "Listener", "SolidWorksListener.exe"); |
| | | if (File.Exists(path1)) |
| | | { |
| | | ProcessStartInfo info = new ProcessStartInfo |
| | | { |
| | | FileName = path1, |
| | | WorkingDirectory = Path.GetDirectoryName(path1) |
| | | }; |
| | | |
| | | new Process |
| | | { |
| | | StartInfo = info |
| | | }.Start(); |
| | | } |
| | | } |
| | | |
| | |
| | | label.Content = "下载完成,解压中,请勿关闭程序..."; |
| | | // 临时解压目录,防止解压出错 |
| | | InitUnZipDir(); |
| | | // kill掉监听程序,避免文件占用 |
| | | KillListenerProcess(); |
| | | // 等待一秒释放exe占用 |
| | | Thread.Sleep(1000); |
| | | |
| | | // 插件文件夹 默认在 AutoUpdater.exe 的上级目录中 |
| | | string pluginDir = new DirectoryInfo(TempDir).Parent.Parent.FullName; |
| | | using (ZipInputStream zipIn = new ZipInputStream(File.Open(localFilePath, FileMode.Open))) |
| | |
| | | |
| | | private void DoFinished() |
| | | { |
| | | // 启动监听进程 |
| | | StartListenerProcess(); |
| | | label.Content = "更新完成"; |
| | | bar.IsIndeterminate = false; |
| | | if (SwAppPath != null) |
| | |
| | | <Reference Include="PresentationFramework" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="SB .xaml.cs"> |
| | | <DependentUpon>SB .xaml</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Sb.cs" /> |
| | | <Page Include="Resources\Icons.xaml"> |
| | | <Generator>MSBuild:Compile</Generator> |
| | |
| | | <DependentUpon>CustomRichBox.xaml</DependentUpon> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | <Page Include="SB .xaml"> |
| | | <SubType>Designer</SubType> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | </Page> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs"> |
New file |
| | |
| | | <UserControl x:Class="PdmSwPlugin.UI.SB" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | xmlns:local="clr-namespace:PdmSwPlugin.UI" |
| | | mc:Ignorable="d" |
| | | d:DesignHeight="450" d:DesignWidth="800"> |
| | | <ComboBox Text="{Binding SelectedText}" IsEditable="True" ItemsSource="{Binding Path=BookExs}"> |
| | | <ComboBox.ItemTemplate> |
| | | <DataTemplate> |
| | | <StackPanel Orientation="Horizontal"> |
| | | <CheckBox IsChecked="{Binding IsChecked}" /> |
| | | <TextBlock Text="{Binding Book.Name}" /> |
| | | </StackPanel> |
| | | </DataTemplate> |
| | | </ComboBox.ItemTemplate> |
| | | </ComboBox> |
| | | </UserControl> |
New file |
| | |
| | | using System.Collections.Generic; |
| | | using System.Collections.ObjectModel; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Windows.Controls; |
| | | |
| | | namespace PdmSwPlugin.UI |
| | | { |
| | | /// <summary> |
| | | /// SB.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class SB : UserControl, INotifyPropertyChanged |
| | | { |
| | | public event PropertyChangedEventHandler PropertyChanged; |
| | | |
| | | protected void RaisePropertyChanged(string propertyName) |
| | | { |
| | | if (PropertyChanged != null) |
| | | { |
| | | PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); |
| | | } |
| | | } |
| | | |
| | | public SB() |
| | | { |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | private string _selectedText = string.Empty; |
| | | |
| | | public string SelectedText |
| | | { |
| | | get |
| | | { |
| | | return _selectedText; |
| | | } |
| | | set |
| | | { |
| | | if (_selectedText != value) |
| | | { |
| | | _selectedText = value; |
| | | RaisePropertyChanged("SelectedText"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private ObservableCollection<INotifyPropertyChanged> _dataSource; |
| | | |
| | | public ObservableCollection<INotifyPropertyChanged> DataSource |
| | | { |
| | | get |
| | | { |
| | | if (_dataSource == null) |
| | | { |
| | | _dataSource = new ObservableCollection<INotifyPropertyChanged>(); |
| | | |
| | | _dataSource.CollectionChanged += (sender, e) => |
| | | { |
| | | if (e.OldItems != null) |
| | | { |
| | | foreach (INotifyPropertyChanged bookEx in e.OldItems) |
| | | { |
| | | bookEx.PropertyChanged -= ItemPropertyChanged; |
| | | } |
| | | } |
| | | |
| | | if (e.NewItems != null) |
| | | { |
| | | foreach (INotifyPropertyChanged bookEx in e.NewItems) |
| | | { |
| | | bookEx.PropertyChanged += ItemPropertyChanged; |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | return _dataSource; |
| | | } |
| | | } |
| | | |
| | | private void ItemPropertyChanged(object sender, PropertyChangedEventArgs e) |
| | | { |
| | | /*if (e.PropertyName == "IsChecked") |
| | | { |
| | | BookEx bookEx = sender as BookEx; |
| | | |
| | | if (bookEx != null) |
| | | { |
| | | IEnumerable<BookEx> bookExs = BookExs.Where(b => b.IsChecked == true); |
| | | |
| | | StringBuilder builder = new StringBuilder(); |
| | | |
| | | foreach (BookEx item in bookExs) |
| | | { |
| | | builder.Append(item.Book.Name + " "); |
| | | } |
| | | |
| | | SelectedText = builder == null ? string.Empty : builder.ToString(); |
| | | } |
| | | }*/ |
| | | } |
| | | } |
| | | } |
| | |
| | | ; AppName |
| | | #define AppName = "PdmSwPlugin" |
| | | ; 打包的应用文件夹路径 |
| | | #define AppDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\" |
| | | #define AppDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\" |
| | | ; 自动更新程序路径 |
| | | #define AutoUpdaterDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\Release\AutoUpdater\" |
| | | #define AutoUpdaterDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\AutoUpdater\" |
| | | ; 版本 |
| | | #define Version = "_0.0.0.40" |
| | | #define Version = "_0.0.0.42" |
| | | |
| | | ; 生成的Installer存放路径 |
| | | #define OutPutDir = "Z:\Main\Workspace\Output" |
| | | #define OutPutDir = "Z:\Output" |
| | | #define DllName = "PdmSwPlugin.dll" |
| | | |
| | | #define MyAppExeName "SolidWorksListener.exe" |
| | | |
| | | [Setup] |
| | | ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. |
| | |
| | | WizardStyle=modern |
| | | PrivilegesRequired=admin |
| | | UsedUserAreasWarning=no |
| | | AlwaysRestart=yes |
| | | |
| | | [Languages] |
| | | Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" |
| | | |
| | | [Files] |
| | | [Files] |
| | | Source: "{#AppDir}*"; DestDir: "{app}"; Excludes: "temp\*,Log\*"; Flags:recursesubdirs ignoreversion |
| | | ;Source: "InnoSetupUtil.dll"; DestDir: "{app}" |
| | | ;Source: "{#AutoUpdaterDir}*"; DestDir: "{app}\AutoUpdater"; Excludes: "download\*"; Flags: ignoreversion |
| | | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files |
| | | |
| | |
| | | |
| | | [Run] |
| | | Filename: {dotnet4064}\RegAsm.exe; Parameters: /codebase {#DllName}; WorkingDir: {app}; Flags: runhidden nowait skipifsilent; |
| | | Filename: {app}\Listener\SolidWorksListener.exe; WorkingDir: {app}\Listener\; Flags: runhidden nowait skipifsilent; |
| | | |
| | | [UninstallRun] |
| | | Filename: {dotnet4064}\RegAsm.exe; Parameters: /unregister {#DllName}; WorkingDir: {app}; RunOnceId: DelService; Flags: runhidden nowait; |
| | |
| | | Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: dword; ValueName: ""; ValueData: 0; Flags: deletevalue |
| | | Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "PDM插件"; Flags: deletevalue |
| | | Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Title"; ValueData: "PdmSw"; Flags: deletevalue |
| | | ; 监听器 |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; Flags: uninsdeletekey |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: string; ValueName: "DisplayName"; ValueData: "SolidWorks Listener"; Flags: deletevalue |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: string; ValueName: "ObjectName"; ValueData: "LocalSystem"; Flags: deletevalue |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: string; ValueName: "ImagePath"; ValueData: "{app}\Listener\PluginListener.exe"; Flags: deletevalue |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: dword; ValueName: "ErrorControl"; ValueData: 1; Flags: deletevalue |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: dword; ValueName: "Start"; ValueData: 2; Flags: deletevalue |
| | | ;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: dword; ValueName: "Type"; ValueData: 272; Flags: deletevalue |
| | | |
| | | ; 监听器2.0 |
| | | Root: HKCU64; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "SolidWorksListener"; ValueData: """{app}\Listener\SolidWorksListener.exe"""; Flags: deletevalue uninsdeletevalue |
| | | |
| | | |
| | | [Icons] |
| | | Name: "{group}\{cm:UninstallProgram,Test}"; Filename: "{uninstallexe}" |
| | | |
| | | [code] |
| | | // 自定义函数,终止服务 |
| | | function CheckSoftRun(strExeName: String): Boolean; |
| | | // 变量定义 |
| | | var ErrorCode: Integer; |
| | | var bRes: Boolean; |
| | | var cmdStr: String; // 命令 |
| | | begin |
| | | cmdStr := Format('/c net stop "%s"', [strExeName]); |
| | | if RegValueExists(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\SolidWorks Listener', 'ImagePath') then begin |
| | | // 终止服务 |
| | | bRes := ShellExec('open', ExpandConstant('{cmd}'), cmdStr, '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); |
| | | if bRes then begin |
| | | Result := true; |
| | | end else begin |
| | | MsgBox(ExpandConstant('{cm:checkSoftTip}'), mbCriticalError, MB_OKCANCEL); |
| | | Result := false; |
| | | Exit; |
| | | end; |
| | | end else begin |
| | | Result := true; |
| | | end; |
| | | end; |
| | | |
| | | function CheckSoftRun3(): Boolean; |
| | | var hWnd: Integer; |
| | | var ResultCode: Integer; |
| | | var exe1: String; |
| | | var exe2: String; |
| | | begin |
| | | // hWnd := StrToInt(ExpandConstant('{wizardhwnd}')); |
| | | exe1 := Format('/c powershell "Get-Process|Where-Object{$_.Path -eq \"%s\"}|Stop-Process|pause"', [ExpandConstant('{autopf}\HengXin\PdmSwPlugin\Listener\SolidWorksListener.exe')]); |
| | | exe1 := '/c taskkill /f /t /im SolidWorksListener.exe'; |
| | | exe2 := '/c taskkill /f /t /im Alert.exe'; |
| | | |
| | | ShellExec('open', ExpandConstant('{cmd}'), exe1, '', SW_HIDE, ewWaitUntilTerminated, ResultCode); |
| | | ShellExec('open', ExpandConstant('{cmd}'), exe2, '', SW_HIDE, ewWaitUntilTerminated, ResultCode); |
| | | Result:= true; |
| | | end; |
| | | |
| | | // 开始页下一步时判断软件是否运行 |
| | | function NextButtonClick(CurPageID: Integer): Boolean; |
| | | begin |
| | | if 1=CurPageID then begin |
| | | Result := CheckSoftRun3(); |
| | | Exit; |
| | | end; |
| | | Result:= true; |
| | | end; |
| | | |
| | | // 卸载时关闭软件 |
| | | function InitializeUninstall(): Boolean; |
| | | begin |
| | | Result := CheckSoftRun3(); |
| | | end; |
| | | |
| | | procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); |
| | | begin |
| | | if CurUninstallStep = usDone then |
| | |
| | | end; |
| | | |
| | | |
| | | [CustomMessages] |
| | | chinesesimplified.checkSoftTip=未能成功停止服务! |
| | | |
| | | |
New file |
| | |
| | | { |
| | | "Version": 1, |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|PdmAlert||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\settings\\toolsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:settings\\toolsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\loginwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:loginwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|d:\\workspace\\pdmswplugin2\\pdmalert\\||{B270807C-D8C6-49EB-8EBE-8E8D566637A1}|1e78f8db-6c07-4d61-a18f-7514010abd56" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | | { |
| | | "Orientation": 0, |
| | | "VerticalTabListWidth": 256, |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 0, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "PdmAlert", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\PdmAlert.csproj", |
| | | "RelativeDocumentMoniker": "PdmAlert.csproj", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\PdmAlert.csproj", |
| | | "RelativeToolTip": "PdmAlert.csproj", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|", |
| | | "WhenOpened": "2024-09-09T08:52:34.897Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "App.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\App.xaml.cs", |
| | | "RelativeDocumentMoniker": "App.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\App.xaml.cs", |
| | | "RelativeToolTip": "App.xaml.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAABAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-09T08:48:00.369Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "UpdaterSetting.xml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\UpdaterSetting.xml", |
| | | "RelativeDocumentMoniker": "Settings\\UpdaterSetting.xml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\UpdaterSetting.xml", |
| | | "RelativeToolTip": "Settings\\UpdaterSetting.xml", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|", |
| | | "WhenOpened": "2024-09-09T08:47:51.476Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "ToolSetting.xml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\ToolSetting.xml", |
| | | "RelativeDocumentMoniker": "Settings\\ToolSetting.xml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\ToolSetting.xml", |
| | | "RelativeToolTip": "Settings\\ToolSetting.xml", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|", |
| | | "WhenOpened": "2024-09-09T08:47:46.282Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "LoginWindow.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml.cs", |
| | | "RelativeDocumentMoniker": "LoginWindow.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml.cs", |
| | | "RelativeToolTip": "LoginWindow.xaml.cs", |
| | | "ViewState": "AgIAABMAAAAAAAAAAAAgwCUAAAAnAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-06T09:46:54.594Z" |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | |
| | | { |
| | | "Version": 1, |
| | | "WorkspaceRootPath": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\", |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|PdmAlert||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{EDC73C56-D0C5-4AC9-B296-3253915EF933}|..\\..\\CommonUpdater\\VersionControl\\VersionControl.csproj|c:\\main\\workspace\\visualstudio\\commonupdater\\versioncontrol\\util.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{11C62041-5E6E-4230-A5E8-4246C033BA67}|..\\..\\CommonUpdater\\AutoUpdater\\AutoUpdater.csproj|c:\\main\\workspace\\visualstudio\\commonupdater\\autoupdater\\settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{11C62041-5E6E-4230-A5E8-4246C033BA67}|..\\..\\CommonUpdater\\AutoUpdater\\AutoUpdater.csproj|c:\\main\\workspace\\visualstudio\\commonupdater\\autoupdater\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{11C62041-5E6E-4230-A5E8-4246C033BA67}|..\\..\\CommonUpdater\\AutoUpdater\\AutoUpdater.csproj|c:\\main\\workspace\\visualstudio\\commonupdater\\autoupdater\\util.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{EDC73C56-D0C5-4AC9-B296-3253915EF933}|..\\..\\CommonUpdater\\VersionControl\\VersionControl.csproj|c:\\main\\workspace\\visualstudio\\commonupdater\\versioncontrol\\versionutil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:settings\\updatersetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\loginwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\settings\\toolsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:settings\\toolsetting.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\loginwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:loginwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\loginwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}", |
| | | "RelativeMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|solutionrelative:loginwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|c:\\main\\workspace\\visualstudio\\pdmswplugin2\\pdmalert\\||{B270807C-D8C6-49EB-8EBE-8E8D566637A1}|1e78f8db-6c07-4d61-a18f-7514010abd56" |
| | | "AbsoluteMoniker": "D:0:0:{FC7FBDE7-D0D2-4E79-A586-501ABC73FE46}|PdmAlert.csproj|d:\\workspace\\pdmswplugin2\\pdmalert\\||{B270807C-D8C6-49EB-8EBE-8E8D566637A1}|1e78f8db-6c07-4d61-a18f-7514010abd56" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "PdmAlert", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\PdmAlert.csproj", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\PdmAlert.csproj", |
| | | "RelativeDocumentMoniker": "PdmAlert.csproj", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\PdmAlert.csproj", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\PdmAlert.csproj", |
| | | "RelativeToolTip": "PdmAlert.csproj", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|", |
| | | "WhenOpened": "2024-08-22T13:00:12.272Z", |
| | | "WhenOpened": "2024-09-09T08:52:34.897Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "Util.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\VersionControl\\Util.cs", |
| | | "RelativeDocumentMoniker": "..\\..\\CommonUpdater\\VersionControl\\Util.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\VersionControl\\Util.cs", |
| | | "RelativeToolTip": "..\\..\\CommonUpdater\\VersionControl\\Util.cs", |
| | | "ViewState": "AQIAAIMBAAAAAAAAAAAgwKcBAAANAAAA", |
| | | "Title": "App.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\App.xaml.cs", |
| | | "RelativeDocumentMoniker": "App.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\App.xaml.cs", |
| | | "RelativeToolTip": "App.xaml.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAABAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T12:56:26.502Z", |
| | | "WhenOpened": "2024-09-09T08:48:00.369Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "UpdaterSetting.xml", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\AutoUpdater\\Settings\\UpdaterSetting.xml", |
| | | "RelativeDocumentMoniker": "..\\..\\CommonUpdater\\AutoUpdater\\Settings\\UpdaterSetting.xml", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\AutoUpdater\\Settings\\UpdaterSetting.xml", |
| | | "RelativeToolTip": "..\\..\\CommonUpdater\\AutoUpdater\\Settings\\UpdaterSetting.xml", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAA8AAAARAAAA", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\UpdaterSetting.xml", |
| | | "RelativeDocumentMoniker": "Settings\\UpdaterSetting.xml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\UpdaterSetting.xml", |
| | | "RelativeToolTip": "Settings\\UpdaterSetting.xml", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|", |
| | | "WhenOpened": "2024-08-22T12:57:06.965Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2024-09-09T08:47:51.476Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "Title": "UpdaterSetting.xml", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\Settings\\UpdaterSetting.xml", |
| | | "RelativeDocumentMoniker": "Settings\\UpdaterSetting.xml", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\Settings\\UpdaterSetting.xml", |
| | | "RelativeToolTip": "Settings\\UpdaterSetting.xml", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAAcAAAARAAAA", |
| | | "Title": "ToolSetting.xml", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\ToolSetting.xml", |
| | | "RelativeDocumentMoniker": "Settings\\ToolSetting.xml", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\Settings\\ToolSetting.xml", |
| | | "RelativeToolTip": "Settings\\ToolSetting.xml", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|", |
| | | "WhenOpened": "2024-08-22T11:46:07.203Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2024-09-09T08:47:46.282Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "Title": "MainWindow.xaml.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\AutoUpdater\\MainWindow.xaml.cs", |
| | | "RelativeDocumentMoniker": "..\\..\\CommonUpdater\\AutoUpdater\\MainWindow.xaml.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\AutoUpdater\\MainWindow.xaml.cs", |
| | | "RelativeToolTip": "..\\..\\CommonUpdater\\AutoUpdater\\MainWindow.xaml.cs", |
| | | "ViewState": "AQIAAKsAAAAAAAAAAAD4v7sAAAA8AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T11:42:13.882Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "Title": "LoginWindow.xaml", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml", |
| | | "RelativeDocumentMoniker": "LoginWindow.xaml", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml", |
| | | "RelativeToolTip": "LoginWindow.xaml", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", |
| | | "WhenOpened": "2024-08-22T11:41:42.779Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "Title": "LoginWindow.xaml.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml.cs", |
| | | "RelativeDocumentMoniker": "LoginWindow.xaml.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PdmAlert\\LoginWindow.xaml.cs", |
| | | "RelativeToolTip": "LoginWindow.xaml.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAASAAAA", |
| | | "ViewState": "AgIAABMAAAAAAAAAAAAgwCUAAAAnAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T11:38:26.763Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "Util.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\AutoUpdater\\Util.cs", |
| | | "RelativeDocumentMoniker": "..\\..\\CommonUpdater\\AutoUpdater\\Util.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\AutoUpdater\\Util.cs", |
| | | "RelativeToolTip": "..\\..\\CommonUpdater\\AutoUpdater\\Util.cs", |
| | | "ViewState": "AQIAAGoAAAAAAAAAAAAkwKAAAAAFAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T11:14:30.598Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "VersionUtil.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\VersionControl\\VersionUtil.cs", |
| | | "RelativeDocumentMoniker": "..\\..\\CommonUpdater\\VersionControl\\VersionUtil.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\CommonUpdater\\VersionControl\\VersionUtil.cs", |
| | | "RelativeToolTip": "..\\..\\CommonUpdater\\VersionControl\\VersionUtil.cs", |
| | | "ViewState": "AQIAAGwAAAAAAAAAAAAAAAgAAAAjAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T10:35:18.104Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "MainWindow.xaml.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\MainWindow.xaml.cs", |
| | | "RelativeDocumentMoniker": "MainWindow.xaml.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\MainWindow.xaml.cs", |
| | | "RelativeToolTip": "MainWindow.xaml.cs", |
| | | "ViewState": "AQIAAMMAAAAAAAAAAAAnwNcAAAAJAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T10:31:21.777Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "MainWindow.xaml", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\MainWindow.xaml", |
| | | "RelativeDocumentMoniker": "MainWindow.xaml", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\MainWindow.xaml", |
| | | "RelativeToolTip": "MainWindow.xaml", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|", |
| | | "WhenOpened": "2024-08-22T10:31:19.726Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "Title": "App.xaml.cs", |
| | | "DocumentMoniker": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\App.xaml.cs", |
| | | "RelativeDocumentMoniker": "App.xaml.cs", |
| | | "ToolTip": "C:\\Main\\Workspace\\VisualStudio\\PdmSwPlugin2\\PdmAlert\\App.xaml.cs", |
| | | "RelativeToolTip": "App.xaml.cs", |
| | | "ViewState": "AQIAAGwAAAAAAAAAAAAywHIAAAANAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-22T10:29:45.832Z", |
| | | "EditorCaption": "" |
| | | "WhenOpened": "2024-09-06T09:46:54.594Z" |
| | | } |
| | | ] |
| | | } |
| | |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <PropertyGroup> |
| | | <PostBuildEvent>xcopy "C:\Main\Workspace\VisualStudio\CommonUpdater\AutoUpdater\bin\x64\$(ConfigurationName)\" "$(TargetDir)AutoUpdater\" /S /Y |
| | | <PostBuildEvent>xcopy "D:\Workspace\CommonUpdater\AutoUpdater\bin\x64\$(ConfigurationName)\" "$(TargetDir)AutoUpdater\" /S /Y |
| | | |
| | | IF "$(ConfigurationName)"=="Release" GOTO PRE |
| | | GOTO END |
| | |
| | | GOTO END |
| | | |
| | | :END |
| | | xcopy "$(TargetDir)Settings\UpdaterSetting.xml" "$(TargetDir)AutoUpdater\Settings\UpdaterSetting.xml" /Y |
| | | echo f| xcopy "$(TargetDir)Settings\UpdaterSetting.xml" "$(TargetDir)AutoUpdater\Settings\UpdaterSetting.xml" /E /Y |
| | | |
| | | </PostBuildEvent> |
| | | </PropertyGroup> |
| | |
| | | <Private>True</Private> |
| | | <EmbedInteropTypes>False</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Common, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\lib\SuperSocket.Common.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Facility"> |
| | | <HintPath>..\lib\SuperSocket.Facility.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketBase, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\lib\SuperSocket.SocketBase.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketEngine"> |
| | | <HintPath>..\lib\SuperSocket.SocketEngine.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System"> |
| | | <Name>System</Name> |
| | | <EmbedInteropTypes>False</EmbedInteropTypes> |
| | |
| | | using log4net; |
| | | using log4net.Appender; |
| | | using log4net.Config; |
| | | using log4net.Core; |
| | | using PdmSwPlugin.Common; |
| | | using PdmSwPlugin.Common.Setting; |
| | | using PdmSwPlugin.Main; |
| | |
| | | { |
| | | static SwAddin() |
| | | { |
| | | |
| | | // AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; |
| | | // AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += CurrentDomain_AssemblyResolve; |
| | | /// 设置log4net配置 |
| | |
| | | { |
| | | RemoveCommandMgr(); |
| | | RemovePMP(); |
| | | mainControl.StopTcpServer(); |
| | | attacher.DetachEventHandlers(); |
| | | attacher = null; |
| | | |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <log4net> |
| | | <!-- 控制台日志配置 --> |
| | | <appender name="Console" type="log4net.Appender.ConsoleAppender"> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | <!-- 控制台日志配置 --> |
| | | <appender name="Console" type="log4net.Appender.ConsoleAppender"> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | |
| | | <!-- 文件存储日志配置 --> |
| | | <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> |
| | | <!-- 保存文件的名称 --> |
| | | <file value="${SwPluginPath}/Log/" /> |
| | | <appendToFile value="true" /> |
| | | <rollingStyle value="Date" /> |
| | | <datePattern value="'log_'yyyyMMdd'.log'"/> |
| | | <staticLogFileName value="false"/> |
| | | <!-- 文件存储日志配置 --> |
| | | <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> |
| | | <!-- 保存文件的名称 --> |
| | | <file value="./Log/" /> |
| | | <appendToFile value="true" /> |
| | | <rollingStyle value="Date" /> |
| | | <datePattern value="'log_'yyyyMMdd'.log'"/> |
| | | <staticLogFileName value="false"/> |
| | | <!--<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />--> |
| | | |
| | | <!-- 文件的编码方式 --> |
| | | <param name="Encoding" value="UTF-8"/> |
| | | <!-- 每个文件的大小 --> |
| | | <maximumFileSize value="100KB" /> |
| | | <!-- 保存文件数量 --> |
| | | <maxSizeRollBackups value="2" /> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%date{ISO8601} [%logger] %level %class - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | <!-- 文件的编码方式 --> |
| | | <param name="Encoding" value="UTF-8"/> |
| | | <!-- 每个文件的大小 --> |
| | | <maximumFileSize value="100KB" /> |
| | | <!-- 保存文件数量 --> |
| | | <maxSizeRollBackups value="2" /> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%date{ISO8601} [%logger] [%thread] %level %class - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | |
| | | <root> |
| | | <level value="INFO" /> |
| | | <appender-ref ref="Console" /> |
| | | <appender-ref ref="RollingFile" /> |
| | | </root> |
| | | <root> |
| | | <level value="INFO" /> |
| | | <appender-ref ref="Console" /> |
| | | <appender-ref ref="RollingFile" /> |
| | | </root> |
| | | </log4net> |
| | |
| | | {"RootPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common","ProjectFileName":"PdmSwPlugin.Common.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Attribute\\PdmSwPlugin.cs"},{"SourceFile":"BomIniter\\NameUtil.cs"},{"SourceFile":"BomIniter\\YwtBomIniter.cs"},{"SourceFile":"ClassLoader.cs"},{"SourceFile":"Constants\\PriceCheckName.cs"},{"SourceFile":"Constants\\PropertyName.cs"},{"SourceFile":"Constants\\Settings.cs"},{"SourceFile":"Control\\RichHisWindow.xaml.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeDataGrid.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeGrid.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeItemContentControl.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeItemData.cs"},{"SourceFile":"Entity\\BusinessType.cs"},{"SourceFile":"Entity\\DrawAudit\\DrawAudit.cs"},{"SourceFile":"Entity\\DrawAudit\\DrawAuditHis.cs"},{"SourceFile":"Entity\\DrawAudit\\DrawAuditOrder.cs"},{"SourceFile":"Entity\\NoteAndPos.cs"},{"SourceFile":"Entity\\NotifyBase.cs"},{"SourceFile":"Entity\\Page.cs"},{"SourceFile":"Entity\\PartSpec.cs"},{"SourceFile":"Entity\\PdmPart.cs"},{"SourceFile":"BomIniter\\BomIniter.cs"},{"SourceFile":"BomIniter\\BomIniterHolder.cs"},{"SourceFile":"BomIniter\\LHJBomIniter.cs"},{"SourceFile":"Interface\\IContectSelectionChangeHandler.cs"},{"SourceFile":"Interface\\IContextHandler.cs"},{"SourceFile":"Setting\\PluginSetting.cs"},{"SourceFile":"Entity\\Pdm\\PdmBom.cs"},{"SourceFile":"Entity\\PluginInfo.cs"},{"SourceFile":"Entity\\PropertyInfo_2D.cs"},{"SourceFile":"Entity\\SldComponentInfo_DM.cs"},{"SourceFile":"Entity\\System\\PdmUser.cs"},{"SourceFile":"Event\\Events.cs"},{"SourceFile":"Exception\\PdmException.cs"},{"SourceFile":"Interface\\Base\\ActiveDocChangeHandlerBase.cs"},{"SourceFile":"Interface\\IActiveDocChangeHandler.cs"},{"SourceFile":"Interface\\ISwAppSetter.cs"},{"SourceFile":"properties\\AssemblyInfo.cs"},{"SourceFile":"Setting\\CustomerSetting.cs"},{"SourceFile":"Setting\\YwtUserSetting.cs"},{"SourceFile":"Util\\DictionaryUtil.cs"},{"SourceFile":"Util\\LimitedConcurrencyLevelTaskScheduler.cs"},{"SourceFile":"Util\\NumberUtil.cs"},{"SourceFile":"Util\\OpenDocContext.cs"},{"SourceFile":"Util\\Pdm\\ComponentAndTask.cs"},{"SourceFile":"Util\\Pdm\\BomTreeReader.cs"},{"SourceFile":"Util\\Permission\\PermissionUtil.cs"},{"SourceFile":"Util\\SwDMUtil.cs"},{"SourceFile":"Util\\UI\\MaskAdorner.cs"},{"SourceFile":"Util\\Common\\BeanUtil.cs"},{"SourceFile":"Util\\Common\\MsgBoxHelper.cs"},{"SourceFile":"Util\\CustomPropertyUtil.cs"},{"SourceFile":"Util\\DMSldFileExtentionChecker.cs"},{"SourceFile":"Util\\CustomerPropertiesWrapper.cs"},{"SourceFile":"Util\\Common\\DocUtil.cs"},{"SourceFile":"Util\\EngineeringDrawingFile.cs"},{"SourceFile":"Util\\EngineeringDrawingPropertiesClass.cs"},{"SourceFile":"Util\\FileExtentionChecker.cs"},{"SourceFile":"Util\\Common\\FileUtil.cs"},{"SourceFile":"Util\\GetDocumentPropertiesViaDM.cs"},{"SourceFile":"Util\\Http\\GlobalExceptionHandler.cs"},{"SourceFile":"Util\\Http\\HttpClientCreator.cs"},{"SourceFile":"Util\\Http\\HttpUtil.cs"},{"SourceFile":"Util\\Http\\Result.cs"},{"SourceFile":"Util\\Common\\JsonUtil.cs"},{"SourceFile":"Util\\Common\\MD5Util.cs"},{"SourceFile":"Util\\Pdm\\ModelUtil.cs"},{"SourceFile":"Util\\UI\\MultiExWindow.xaml.cs"},{"SourceFile":"Util\\WindowIntPtrUtil.cs"},{"SourceFile":"Util\\Xml\\XmlUtil.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\obj\\Debug\\Util\\UI\\MultiExWindow.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\obj\\Debug\\GeneratedInternalTypeHelper.g.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\IIS\\Microsoft Web Deploy V3\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\bin\\Debug\\PdmSwPlugin.UI.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\bin\\Debug\\PdmSwPlugin.UI.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.sldworks.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swconst.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swdocumentmgr.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\bin\\Debug\\PdmSwPlugin.Common.dll","OutputItemRelativePath":"PdmSwPlugin.Common.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} |
| | | {"RootPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common","ProjectFileName":"PdmSwPlugin.Common.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"Attribute\\PdmSwPlugin.cs"},{"SourceFile":"BomIniter\\NameUtil.cs"},{"SourceFile":"BomIniter\\YwtBomIniter.cs"},{"SourceFile":"ClassLoader.cs"},{"SourceFile":"Constants\\PriceCheckName.cs"},{"SourceFile":"Constants\\PropertyName.cs"},{"SourceFile":"Constants\\Settings.cs"},{"SourceFile":"Control\\RichHisWindow.xaml.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeDataGrid.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeGrid.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeItemContentControl.cs"},{"SourceFile":"Control\\TreeGrid\\Controls\\TreeItemData.cs"},{"SourceFile":"Entity\\BusinessType.cs"},{"SourceFile":"Entity\\DrawAudit\\DrawAudit.cs"},{"SourceFile":"Entity\\DrawAudit\\DrawAuditHis.cs"},{"SourceFile":"Entity\\DrawAudit\\DrawAuditOrder.cs"},{"SourceFile":"Entity\\NoteAndPos.cs"},{"SourceFile":"Entity\\NotifyBase.cs"},{"SourceFile":"Entity\\Page.cs"},{"SourceFile":"Entity\\PartSpec.cs"},{"SourceFile":"Entity\\PdmPart.cs"},{"SourceFile":"BomIniter\\BomIniter.cs"},{"SourceFile":"BomIniter\\BomIniterHolder.cs"},{"SourceFile":"BomIniter\\LHJBomIniter.cs"},{"SourceFile":"Interface\\IContectSelectionChangeHandler.cs"},{"SourceFile":"Interface\\IContextHandler.cs"},{"SourceFile":"Setting\\PluginSetting.cs"},{"SourceFile":"Entity\\Pdm\\PdmBom.cs"},{"SourceFile":"Entity\\PluginInfo.cs"},{"SourceFile":"Entity\\PropertyInfo_2D.cs"},{"SourceFile":"Entity\\SldComponentInfo_DM.cs"},{"SourceFile":"Entity\\System\\PdmUser.cs"},{"SourceFile":"Event\\Events.cs"},{"SourceFile":"Exception\\PdmException.cs"},{"SourceFile":"Interface\\Base\\ActiveDocChangeHandlerBase.cs"},{"SourceFile":"Interface\\IActiveDocChangeHandler.cs"},{"SourceFile":"Interface\\ISwAppSetter.cs"},{"SourceFile":"properties\\AssemblyInfo.cs"},{"SourceFile":"Setting\\CustomerSetting.cs"},{"SourceFile":"Setting\\YwtUserSetting.cs"},{"SourceFile":"Util\\BinUtil.cs"},{"SourceFile":"Util\\DictionaryUtil.cs"},{"SourceFile":"Util\\Encryptor.cs"},{"SourceFile":"Util\\LimitedConcurrencyLevelTaskScheduler.cs"},{"SourceFile":"Util\\NumberUtil.cs"},{"SourceFile":"Util\\OpenDocContext.cs"},{"SourceFile":"Util\\Pdm\\ComponentAndTask.cs"},{"SourceFile":"Util\\Pdm\\BomTreeReader.cs"},{"SourceFile":"Util\\Permission\\PermissionUtil.cs"},{"SourceFile":"Util\\SwDMUtil.cs"},{"SourceFile":"Util\\UI\\MaskAdorner.cs"},{"SourceFile":"Util\\Common\\BeanUtil.cs"},{"SourceFile":"Util\\Common\\MsgBoxHelper.cs"},{"SourceFile":"Util\\CustomPropertyUtil.cs"},{"SourceFile":"Util\\DMSldFileExtentionChecker.cs"},{"SourceFile":"Util\\CustomerPropertiesWrapper.cs"},{"SourceFile":"Util\\Common\\DocUtil.cs"},{"SourceFile":"Util\\EngineeringDrawingFile.cs"},{"SourceFile":"Util\\EngineeringDrawingPropertiesClass.cs"},{"SourceFile":"Util\\FileExtentionChecker.cs"},{"SourceFile":"Util\\Common\\FileUtil.cs"},{"SourceFile":"Util\\GetDocumentPropertiesViaDM.cs"},{"SourceFile":"Util\\Http\\GlobalExceptionHandler.cs"},{"SourceFile":"Util\\Http\\HttpClientCreator.cs"},{"SourceFile":"Util\\Http\\HttpUtil.cs"},{"SourceFile":"Util\\Http\\Result.cs"},{"SourceFile":"Util\\Common\\JsonUtil.cs"},{"SourceFile":"Util\\Common\\MD5Util.cs"},{"SourceFile":"Util\\Pdm\\ModelUtil.cs"},{"SourceFile":"Util\\UI\\MultiExWindow.xaml.cs"},{"SourceFile":"Util\\WindowIntPtrUtil.cs"},{"SourceFile":"Util\\Xml\\XmlUtil.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\obj\\x64\\Debug\\Control\\RichHisWindow.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\obj\\x64\\Debug\\Util\\UI\\MultiExWindow.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\obj\\x64\\Debug\\GeneratedInternalTypeHelper.g.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\bin\\x64\\Debug\\PdmSwPlugin.UI.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\Workspace\\PdmSwPlugin2\\CustomRictBox\\bin\\x64\\Debug\\PdmSwPlugin.UI.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.sldworks.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swconst.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swdocumentmgr.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\bin\\x64\\Debug\\PdmSwPlugin.Common.dll","OutputItemRelativePath":"PdmSwPlugin.Common.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} |
| | |
| | | set { _status = value; } |
| | | } |
| | | |
| | | private string _statusArr; |
| | | |
| | | public string statusArr |
| | | { |
| | | get { return _statusArr; } |
| | | set { _statusArr = value; } |
| | | } |
| | | |
| | | public string d3Md5 { get; set; } |
| | | public string d3RelativePath { get; set; } |
| | | public string d2Md5 { get; set; } |
| | |
| | | <Compile Include="properties\AssemblyInfo.cs" /> |
| | | <Compile Include="Setting\CustomerSetting.cs" /> |
| | | <Compile Include="Setting\YwtUserSetting.cs" /> |
| | | <Compile Include="Util\BinUtil.cs" /> |
| | | <Compile Include="Util\DictionaryUtil.cs" /> |
| | | <Compile Include="Util\Encryptor.cs" /> |
| | | <Compile Include="Util\LimitedConcurrencyLevelTaskScheduler.cs" /> |
| | | <Compile Include="Util\NumberUtil.cs" /> |
| | | <Compile Include="Util\OpenDocContext.cs" /> |
| | |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.swdocumentmgr"> |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.swdocumentmgr.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.swpublished"> |
| | | <HintPath>..\..\..\..\..\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.swpublished.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="System"> |
| | |
| | | </Setter.Value> |
| | | </Setter> |
| | | </Style> |
| | | |
| | | <Style x:Key="RButton" TargetType="{x:Type Button}" > |
| | | <Style.Resources> |
| | | <SolidColorBrush x:Key="TextColor">RED</SolidColorBrush> |
| | | </Style.Resources> |
| | | <Setter Property="Template"> |
| | | <Setter.Value> |
| | | <ControlTemplate TargetType="{x:Type ButtonBase}"> |
| | | <ContentPresenter x:Name="buttonContent" TextBlock.FontSize="{TemplateBinding FontSize}" |
| | | TextBlock.FontFamily="{StaticResource iconfont}" |
| | | TextBlock.Foreground="{StaticResource TextColor}" |
| | | Margin="0,0,5,0" |
| | | VerticalAlignment="Center" |
| | | HorizontalAlignment="Center" |
| | | Content="{TemplateBinding Content}"/> |
| | | <ControlTemplate.Triggers> |
| | | <Trigger Property="IsMouseOver" Value="True"> |
| | | <Setter TargetName="buttonContent" Property="TextBlock.Foreground" Value="Purple"/> |
| | | </Trigger> |
| | | </ControlTemplate.Triggers> |
| | | </ControlTemplate> |
| | | </Setter.Value> |
| | | </Setter> |
| | | </Style> |
| | | </ResourceDictionary> |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace PdmSwPlugin.Common.Util |
| | | { |
| | | public class BinUtil |
| | | { |
| | | /// <summary> |
| | | /// 把明文密码加密后以二进制存入bin文件中 |
| | | /// TODO 使用机器码加密 |
| | | /// </summary> |
| | | /// <param name="content">字符内容</param> |
| | | /// <param name="filePath">存放路径</param> |
| | | public static void SaveStrToBin(string content, string filePath = null) |
| | | { |
| | | if (string.IsNullOrEmpty(filePath)) |
| | | { |
| | | filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().FullName), "bin"); |
| | | } |
| | | byte[] bytes = Convert.FromBase64String(content); |
| | | using (Stream stream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite)) |
| | | using (BinaryWriter writer = new BinaryWriter(stream)) |
| | | { |
| | | writer.Write(bytes); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 从bin中加载字符串 |
| | | /// </summary> |
| | | /// <param name="content">字符串内容</param> |
| | | /// <param name="filePath">bin文件路径</param> |
| | | /// <returns>读取是否成功</returns> |
| | | public static bool LoadStrFromBin(ref string content, string filePath = null) |
| | | { |
| | | if (string.IsNullOrEmpty(filePath)) |
| | | { |
| | | filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().FullName), "bin"); |
| | | } |
| | | if (!File.Exists(filePath)) |
| | | { |
| | | return false; |
| | | } |
| | | using (FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) |
| | | using (BinaryReader reader = new BinaryReader(stream)) |
| | | { |
| | | byte[] bytes = new byte[stream.Length]; |
| | | reader.Read(bytes, 0, bytes.Length); |
| | | content = Convert.ToBase64String(bytes); |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Security.Cryptography; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace PdmSwPlugin.Common.Util |
| | | { |
| | | /// <summary> |
| | | /// 字符加解密 |
| | | /// </summary> |
| | | public class Encryptor |
| | | { |
| | | private readonly byte[] key; |
| | | private readonly byte[] iv; |
| | | |
| | | public Encryptor(string keyString, string ivString) |
| | | { |
| | | key = Encoding.UTF8.GetBytes(keyString); |
| | | iv = Encoding.UTF8.GetBytes(ivString); |
| | | } |
| | | |
| | | public string Encrypt(string plainText) |
| | | { |
| | | using (var aes = Aes.Create()) |
| | | { |
| | | aes.Key = key; |
| | | aes.IV = iv; |
| | | ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV); |
| | | |
| | | using (MemoryStream msEncrypt = new MemoryStream()) |
| | | { |
| | | using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) |
| | | { |
| | | using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) |
| | | { |
| | | swEncrypt.Write(plainText); |
| | | } |
| | | return Convert.ToBase64String(msEncrypt.ToArray()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | public string Decrypt(string cipherText) |
| | | { |
| | | using (var aes = Aes.Create()) |
| | | { |
| | | aes.Key = key; |
| | | aes.IV = iv; |
| | | ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV); |
| | | byte[] arr = Convert.FromBase64String(cipherText); |
| | | using (MemoryStream msDecrypt = new MemoryStream(arr)) |
| | | { |
| | | using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) |
| | | { |
| | | using (StreamReader srDecrypt = new StreamReader(csDecrypt)) |
| | | { |
| | | return srDecrypt.ReadToEnd(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | </ResourceDictionary> |
| | | </UserControl.Resources> |
| | | <AdornerDecorator> |
| | | <Grid x:Name="sb"> |
| | | <DockPanel x:Name="content" LastChildFill="True"> |
| | | <Grid x:Name="content"> |
| | | <Grid.RowDefinitions> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="*"/> |
| | | <RowDefinition Height="20"/> |
| | | </Grid.RowDefinitions> |
| | | |
| | | <ToolBarTray Grid.Row="0" DockPanel.Dock="Top" Background="#FFF" ToolBarTray.IsLocked="True" > |
| | | <ToolBar Style="{StaticResource CommonToolBar}" ToolBar.OverflowMode="Never" Band="1" BandIndex="1" Height="30" Background="#FFF"> |
| | | <Button ToolTip="刷新" Content="刷新" FontFamily="{StaticResource iconfont}" FontSize="16" |
| | | Click="Button_Click"/> |
| | | </ToolBar> |
| | | </ToolBarTray> |
| | | |
| | | <ToolBarTray DockPanel.Dock="Top" Background="#FFF" ToolBarTray.IsLocked="True" > |
| | | <ToolBar Style="{StaticResource CommonToolBar}" ToolBar.OverflowMode="Never" Band="1" BandIndex="1" Height="30" Background="#FFF"> |
| | | <Button ToolTip="刷新" Content="刷新" FontFamily="{StaticResource iconfont}" FontSize="16" |
| | | Click="Button_Click"/> |
| | | </ToolBar> |
| | | </ToolBarTray> |
| | | <StackPanel Grid.Row="1" Orientation="Horizontal" DockPanel.Dock="Top" VerticalAlignment="Center"> |
| | | <Label FontSize="16">状态</Label> |
| | | <CheckBox FontSize="16" Margin="0,0,10,0" VerticalContentAlignment="Center" x:Name="subcb" IsChecked="True">待审核</CheckBox> |
| | | <CheckBox FontSize="16" Margin="0,0,10,0" VerticalContentAlignment="Center" x:Name="resubcb" IsChecked="True">重新审核</CheckBox> |
| | | <CheckBox FontSize="16" Margin="0,0,10,0" VerticalContentAlignment="Center" x:Name="comcb">已完成</CheckBox> |
| | | <CheckBox FontSize="16" Margin="0,0,20,0" VerticalContentAlignment="Center" x:Name="rejcb">已驳回</CheckBox> |
| | | </StackPanel> |
| | | |
| | | <!-- 树结构 --> |
| | | <treeData:TreeDataGrid x:Name="treeDataGrid" DockPanel.Dock="Top" |
| | | ColumnWidth="*" |
| | | ItemsSource="{Binding dataSource,Converter={StaticResource TreeItemDataConverter},ConverterParameter=children}" |
| | | AutoGenerateColumns="False" |
| | | CanUserAddRows="False" |
| | | CanUserSortColumns="False" |
| | | RowHeaderWidth="0" |
| | | FontSize="18" |
| | | CanUserDeleteRows="False"> |
| | | <!-- 树结构 --> |
| | | <treeData:TreeDataGrid x:Name="treeDataGrid" DockPanel.Dock="Top" Grid.Row="2" |
| | | ColumnWidth="*" |
| | | ItemsSource="{Binding dataSource,Converter={StaticResource TreeItemDataConverter},ConverterParameter=children}" |
| | | AutoGenerateColumns="False" |
| | | CanUserAddRows="False" |
| | | CanUserSortColumns="False" |
| | | RowHeaderWidth="0" |
| | | FontSize="18" |
| | | FrozenColumnCount="1" |
| | | HorizontalScrollBarVisibility="Auto" |
| | | CanUserDeleteRows="False"> |
| | | |
| | | <treeData:TreeDataGrid.Resources> |
| | | <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/> |
| | | </treeData:TreeDataGrid.Resources> |
| | | <treeData:TreeDataGrid.Resources> |
| | | <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/> |
| | | </treeData:TreeDataGrid.Resources> |
| | | |
| | | |
| | | <treeData:TreeDataGrid.RowStyle> |
| | | |
| | | |
| | | <Style TargetType="DataGridRow"> |
| | | <Style.Triggers> |
| | | <DataTrigger Binding="{Binding Path=Data.IsOpening}" Value="True"> |
| | | <Setter Property="Background" Value="Orange"/> |
| | | </DataTrigger> |
| | | </Style.Triggers> |
| | | </Style> |
| | | </treeData:TreeDataGrid.RowStyle> |
| | | <treeData:TreeDataGrid.RowStyle> |
| | | |
| | | <treeData:TreeDataGrid.CellStyle> |
| | | <Style TargetType="DataGridCell" > |
| | | <Style.Triggers> |
| | | <MultiDataTrigger> |
| | | <MultiDataTrigger.Conditions> |
| | | <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridCell}}, Path=IsSealed}" Value="True"/> |
| | | <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=IsKeyboardFocusWithin}" Value="False"/> |
| | | </MultiDataTrigger.Conditions> |
| | | <Setter Property="Background" Value="RED"/> |
| | | </MultiDataTrigger> |
| | | </Style.Triggers> |
| | | </Style> |
| | | </treeData:TreeDataGrid.CellStyle> |
| | | |
| | | <treeData:TreeDataGrid.Columns> |
| | | <DataGridTemplateColumn Width="25"> |
| | | <DataGridTemplateColumn.Header> |
| | | <CheckBox Checked="GlobalCheckBox_Checked" Unchecked="GlobalCheckBox_Checked" /> |
| | | </DataGridTemplateColumn.Header> |
| | | <Style TargetType="DataGridRow"> |
| | | <Style.Triggers> |
| | | <DataTrigger Binding="{Binding Path=Data.IsOpening}" Value="True"> |
| | | <Setter Property="Background" Value="Orange"/> |
| | | </DataTrigger> |
| | | </Style.Triggers> |
| | | </Style> |
| | | </treeData:TreeDataGrid.RowStyle> |
| | | |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <CheckBox DataContext="{Binding Data}" |
| | | IsChecked="{Binding selected}" Checked="SingleCheckBox_Event" Unchecked="SingleCheckBox_Event"/> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | <treeData:TreeDataGrid.CellStyle> |
| | | <Style TargetType="DataGridCell" > |
| | | <Style.Triggers> |
| | | <MultiDataTrigger> |
| | | <MultiDataTrigger.Conditions> |
| | | <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGridCell}}, Path=IsSealed}" Value="True"/> |
| | | <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=IsKeyboardFocusWithin}" Value="False"/> |
| | | </MultiDataTrigger.Conditions> |
| | | <Setter Property="Background" Value="RED"/> |
| | | </MultiDataTrigger> |
| | | </Style.Triggers> |
| | | </Style> |
| | | </treeData:TreeDataGrid.CellStyle> |
| | | |
| | | <DataGridTemplateColumn Header="物料编号" IsReadOnly="True"> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <StackPanel Orientation="Horizontal"> |
| | | <TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" HorizontalContentAlignment="Stretch" Text="{Binding Data.materialCode,Mode=OneWay}"/> |
| | | </StackPanel> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | <treeData:TreeDataGrid.Columns> |
| | | <!--<DataGridTemplateColumn Width="25"> |
| | | <DataGridTemplateColumn.Header> |
| | | <CheckBox Checked="GlobalCheckBox_Checked" Unchecked="GlobalCheckBox_Checked" /> |
| | | </DataGridTemplateColumn.Header> |
| | | |
| | | <DataGridTextColumn Header="申请人" Width="100" IsReadOnly="True" Binding="{Binding Data.requestUser}"/> |
| | | <DataGridTextColumn Header="流水单号" Width="120" IsReadOnly="True" Binding="{Binding Data.orderCode}"/> |
| | | <DataGridTextColumn Header="前一审核人" Width="100" IsReadOnly="True" Binding="{Binding Data.auditUser}"/> |
| | | <DataGridTextColumn Header="提交时间" Width="180" IsReadOnly="True" Binding="{Binding Data.updateTime}"/> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <CheckBox DataContext="{Binding Data}" |
| | | IsChecked="{Binding selected}" Checked="SingleCheckBox_Event" Unchecked="SingleCheckBox_Event"/> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn>--> |
| | | |
| | | <DataGridTemplateColumn Header="状态" Width="80" IsReadOnly="True"> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <TextBlock Style="{StaticResource statusSlot}" DataContext="{Binding Data}" |
| | | MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"/> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | <DataGridTemplateColumn Header="物料编号" IsReadOnly="True" Width="Auto"> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <StackPanel Orientation="Horizontal"> |
| | | <TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" HorizontalContentAlignment="Stretch" Text="{Binding Data.materialCode,Mode=OneWay}"/> |
| | | </StackPanel> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | |
| | | <DataGridTemplateColumn Header="操作" Width="280" IsReadOnly="True"> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <StackPanel Orientation="Horizontal"> |
| | | <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="OpenDrw_Click">打开工程图</Button> |
| | | <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="OpenDoc_Click">打开图纸</Button> |
| | | <DataGridTextColumn Header="申请人" Width="100" IsReadOnly="True" Binding="{Binding Data.requestUser}"/> |
| | | <DataGridTextColumn Header="流水单号" Width="120" IsReadOnly="True" Binding="{Binding Data.orderCode}"/> |
| | | <DataGridTextColumn Header="前一审核人" Width="100" IsReadOnly="True" Binding="{Binding Data.auditUser}"/> |
| | | <DataGridTextColumn Header="提交时间" Width="180" CanUserResize="False" IsReadOnly="True" Binding="{Binding Data.updateTime}"/> |
| | | |
| | | <DataGridTemplateColumn Header="状态" Width="80" CanUserResize="False" IsReadOnly="True"> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <TextBlock Style="{StaticResource statusSlot}" DataContext="{Binding Data}" |
| | | MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"/> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | |
| | | <DataGridTemplateColumn Header="操作" Width="280" IsReadOnly="True" CanUserResize="False"> |
| | | <DataGridTemplateColumn.CellTemplate> |
| | | <DataTemplate> |
| | | <StackPanel Orientation="Horizontal"> |
| | | <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="OpenDrw_Click">打开工程图</Button> |
| | | <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="OpenDoc_Click">打开图纸</Button> |
| | | <StackPanel Orientation="Horizontal" Name="groupStack"> |
| | | <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="Resolve_Click">通过</Button> |
| | | <Button Style="{StaticResource RLink}" DataContext="{Binding Data}" Margin="0" Click="Reject_Click">不通过</Button> |
| | | </StackPanel> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | <Button Name="resetButton" Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="Reset_Click">撤销</Button> |
| | | </StackPanel> |
| | | |
| | | <DataTemplate.Triggers> |
| | | <DataTrigger Binding="{Binding Data.status}" Value="completed"> |
| | | <Setter TargetName="groupStack" Property="Visibility" Value="Collapsed"/> |
| | | <Setter TargetName="resetButton" Property="Visibility" Value="Visible"/> |
| | | </DataTrigger> |
| | | <DataTrigger Binding="{Binding Data.status}" Value="rejected"> |
| | | <Setter TargetName="groupStack" Property="Visibility" Value="Collapsed"/> |
| | | <Setter TargetName="resetButton" Property="Visibility" Value="Visible"/> |
| | | </DataTrigger> |
| | | <DataTrigger Binding="{Binding Data.status}" Value="submitted"> |
| | | <Setter TargetName="groupStack" Property="Visibility" Value="Visible"/> |
| | | <Setter TargetName="resetButton" Property="Visibility" Value="Collapsed"/> |
| | | </DataTrigger> |
| | | <DataTrigger Binding="{Binding Data.status}" Value="resubmitted"> |
| | | <Setter TargetName="groupStack" Property="Visibility" Value="Visible"/> |
| | | <Setter TargetName="resetButton" Property="Visibility" Value="Collapsed"/> |
| | | </DataTrigger> |
| | | </DataTemplate.Triggers> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | | |
| | | |
| | | </treeData:TreeDataGrid.Columns> |
| | | </treeData:TreeDataGrid> |
| | | </treeData:TreeDataGrid.Columns> |
| | | </treeData:TreeDataGrid> |
| | | |
| | | <StatusBar DockPanel.Dock="Bottom" Height="20"> |
| | | <StatusBarItem > |
| | | <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding SelectBomText}"/> |
| | | </StatusBarItem> |
| | | <Separator/> |
| | | <StatusBarItem> |
| | | <TextBox x:Name="statusBarText" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding StatusBarText}"/> |
| | | </StatusBarItem> |
| | | </StatusBar> |
| | | <Border></Border> |
| | | <!--<TextBox x:Name="console"></TextBox>--> |
| | | </DockPanel> |
| | | <StatusBar Grid.Row="3" DockPanel.Dock="Top" Height="20"> |
| | | <StatusBarItem > |
| | | <TextBox x:Name="activeDocPath" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding SelectBomText}"/> |
| | | </StatusBarItem> |
| | | <Separator/> |
| | | <StatusBarItem> |
| | | <TextBox x:Name="statusBarText" IsReadOnly="True" Style="{StaticResource StatusBarTextBox}" Text="{Binding StatusBarText}"/> |
| | | </StatusBarItem> |
| | | </StatusBar> |
| | | <Border></Border> |
| | | <!--<DockPanel x:Name="content" LastChildFill="True"> |
| | | --><!--<TextBox x:Name="console"></TextBox>--><!-- |
| | | </DockPanel>--> |
| | | </Grid> |
| | | </AdornerDecorator> |
| | | </UserControl> |
| | |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | dataSource = new ObservableCollection<DrawAudit>(datas); |
| | | |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | try |
| | | { |
| | | Result<List<DrawAudit>> res = Client.GetSyncAction<List<DrawAudit>>("drawAudit/listWithTask"); |
| | | string statusArr = string.Empty; |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | List<string> arr = new List<string>(); |
| | | if (subcb.IsChecked == true) arr.Add("submitted"); |
| | | if (resubcb.IsChecked == true) arr.Add("resubmitted"); |
| | | if (comcb.IsChecked == true) arr.Add("completed"); |
| | | if (rejcb.IsChecked == true) arr.Add("rejected"); |
| | | if (arr.Count > 0) |
| | | { |
| | | statusArr = $"'{string.Join("','", arr)}'"; |
| | | } |
| | | }); |
| | | Result<List<DrawAudit>> res = Client.GetSyncAction<List<DrawAudit>>("drawAudit/listWithTask2", new DrawAudit |
| | | { |
| | | statusArr = statusArr |
| | | }); |
| | | return res.HandleResult(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 单条数据撤销按钮点击事件 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Reset_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | Button btn = sender as Button; |
| | | DrawAudit da = btn.DataContext as DrawAudit; |
| | | if (da.status == "submitted" && da.status == "resubmitted") |
| | | { |
| | | this.Warning("请选择审核过的数据"); |
| | | return; |
| | | } |
| | | MessageBoxResult mr = MessageBox.Show($"确定撤销物料【{da.materialCode}】的图纸审批吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); |
| | | if (mr == MessageBoxResult.OK) |
| | | { |
| | | MaskAdorner.ShowMask(content, "请求中,请稍候..."); |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | Result<object> res = Client.PostSyncAction<object>(da, "drawAudit/reset"); |
| | | object obj = res.HandleResult(); |
| | | // CloseAuditedDoc(da); |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | dataSource = new ObservableCollection<DrawAudit>(RefreshList()); |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Logger.Error($"V{PdmUser.LoginUser.pluginVersion}, Draw Reset failed.", ex); |
| | | this.Error($"V{PdmUser.LoginUser.pluginVersion},撤销失败!{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | MaskAdorner.HideMask(content); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 单条数据驳回按钮点击事件 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | |
| | | |
| | | public void OnSwActiveDocChange(ModelDoc2 oldDoc, ModelDoc2 newDoc, Component2 comp) |
| | | { |
| | | var fileName = new Uri(newDoc.GetPathName()); |
| | | string path = newDoc.GetPathName(); |
| | | Uri fileName; |
| | | if (string.IsNullOrEmpty(path)) |
| | | { |
| | | fileName = null; |
| | | } |
| | | else |
| | | { |
| | | fileName = new Uri(newDoc.GetPathName()); |
| | | } |
| | | foreach (var e in dataSource) |
| | | { |
| | | var d2Path = new Uri(GetRealFilePath(e.d2RelativePath)); |
| | |
| | | |
| | | public void OnSwActiveDocSaved(ModelDoc2 doc, Component2 comp) |
| | | { |
| | | |
| | | |
| | | } |
| | | |
| | | public void OnCustomPropertyChange(string propName, string Configuration, string oldValue, string NewValue, int valueType) |
| | | { |
| | | |
| | | |
| | | } |
| | | |
| | | public void OnDocDestroy(ModelDoc2 doc) |
| | | { |
| | | |
| | | |
| | | } |
| | | |
| | | public void AfterDocDestroy() |
| | | { |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | <DataTemplate> |
| | | <StackPanel Orientation="Horizontal"> |
| | | <Button Style="{StaticResource LinkButton}" DataContext="{Binding Data}" Click="Detail_Click">审核详情</Button> |
| | | <Button Style="{StaticResource RButton}" x:Name="backBtn" Visibility="Collapsed" DataContext="{Binding Data}" Click="Reback_Click">撤销</Button> |
| | | </StackPanel> |
| | | <DataTemplate.Triggers> |
| | | <DataTrigger Binding="{Binding Data.status}" Value="submitted"> |
| | | <Setter Property="Visibility" TargetName="backBtn" Value="Visible"/> |
| | | </DataTrigger> |
| | | <DataTrigger Binding="{Binding Data.status}" Value="resubmitted"> |
| | | <Setter Property="Visibility" TargetName="backBtn" Value="Visible"/> |
| | | </DataTrigger> |
| | | </DataTemplate.Triggers> |
| | | </DataTemplate> |
| | | </DataGridTemplateColumn.CellTemplate> |
| | | </DataGridTemplateColumn> |
| | |
| | | GetAuditHisDetailAndOpen(da); |
| | | } |
| | | |
| | | private void Reback_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | Button btn = sender as Button; |
| | | DrawAudit da = btn.DataContext as DrawAudit; |
| | | MessageBoxResult mr = MessageBox.Show($"确定撤销物料【{da.materialCode}】的图纸审批吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); |
| | | if (mr == MessageBoxResult.OK) |
| | | { |
| | | MaskAdorner.ShowMask(content, "请求中,请稍后..."); |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | Result<List<DrawAuditHis>> res = Client.PostSyncAction<List<DrawAuditHis>>(new DrawAudit |
| | | { |
| | | id = da.id, |
| | | requestUserId = PdmUser.LoginUser.id |
| | | }, "drawAudit/back"); |
| | | res.HandleResult(); |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | dataSource = new ObservableCollection<DrawAudit>(RefreshList()); |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Logger.Error("Reback Draw Audit Failed.", ex); |
| | | this.Error($"撤销申请失败!{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | MaskAdorner.HideMask(content); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | private string GetRealFilePath(string dbPath) |
| | | { |
| | | string fileName = Path.GetFileName(dbPath); |
| | |
| | | public class PluginConst |
| | | { |
| | | public static readonly string AppId = "DF23E96F-A469-4302-8367-7FA2F798CD09"; |
| | | public static readonly string Version = "0.0.0.41"; |
| | | public static readonly string Version = "0.0.0.42"; |
| | | } |
| | | } |
New file |
| | |
| | | <UserControl x:Class="PdmSwPlugin.Main.LoginControl" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | xmlns:local="clr-namespace:PdmSwPlugin.Main" |
| | | mc:Ignorable="d" |
| | | Loaded="UserControl_Loaded" |
| | | d:DesignHeight="450" d:DesignWidth="800"> |
| | | <AdornerDecorator> |
| | | <Grid Height="200" VerticalAlignment="Top" Margin="20" x:Name="mainGrid"> |
| | | <Grid.RowDefinitions> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="50"/> |
| | | </Grid.RowDefinitions> |
| | | |
| | | <Grid.ColumnDefinitions> |
| | | <ColumnDefinition Width="50"/> |
| | | <ColumnDefinition/> |
| | | </Grid.ColumnDefinitions> |
| | | <Label Content="用户名" VerticalContentAlignment="Center" Grid.Row="0" Grid.Column="0"/> |
| | | <TextBox x:Name="usernameTextBlock" VerticalAlignment="Stretch" VerticalContentAlignment="Center" Grid.Row="0" Grid.Column="1"/> |
| | | <Label Content="密码" VerticalContentAlignment="Center" Grid.Row="1" Grid.Column="0"/> |
| | | <PasswordBox x:Name="passwordTextBlock" VerticalAlignment="Stretch" VerticalContentAlignment="Center" Grid.Row="1" Grid.Column="1"/> |
| | | <CheckBox x:Name="rememberMeInput" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" VerticalContentAlignment="Center">自动登录</CheckBox> |
| | | <Button Margin="0,10,0,0" Click="Button_Click" Padding="5" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2">登录</Button> |
| | | </Grid> |
| | | </AdornerDecorator> |
| | | </UserControl> |
New file |
| | |
| | | using PdmSwPlugin.Commmon.Util.UI; |
| | | using PdmSwPlugin.Common.Entity.System; |
| | | using PdmSwPlugin.Common.Util.Http; |
| | | using PdmSwPlugin.Common.Util; |
| | | using System; |
| | | using System.Threading.Tasks; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using System.IO; |
| | | using PdmSwPlugin.Common.Interface; |
| | | using SolidWorks.Interop.sldworks; |
| | | using log4net; |
| | | using PdmSwPlugin.Common.Setting; |
| | | |
| | | namespace PdmSwPlugin.Main |
| | | { |
| | | /// <summary> |
| | | /// LoginControl.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class LoginControl : UserControl, ISwAppSetter |
| | | { |
| | | |
| | | private static readonly Encryptor encryptor = new Encryptor("aB3dE5fG7hI9jjK1lMnOpQrS2tUvWxYz", |
| | | "8Wq9RsT4vYx6ZuB1"); |
| | | |
| | | private SldWorks swApp; |
| | | public SldWorks SwApp => swApp; |
| | | private ILog Logger = LogManager.GetLogger("Main"); |
| | | private PluginSetting GlobalConfig = PluginSetting.Instance; |
| | | private Action successCallback; |
| | | |
| | | public LoginControl(Action successCallback) |
| | | { |
| | | this.successCallback = successCallback; |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 自动登录 |
| | | /// </summary> |
| | | /// <param name="callback"></param> |
| | | /// <param name="reject"></param> |
| | | private void AutoLogin(Action<PdmUser> callback, Action<Exception> reject) |
| | | { |
| | | MaskAdorner.ShowMask(mainGrid, "登陆中..."); |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | if (GlobalConfig.ClassicLogin) |
| | | { |
| | | string binPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData), "HengXin", "PdmSwPlugin", "bin"); |
| | | if (!File.Exists(binPath)) |
| | | { |
| | | callback(null); |
| | | return; |
| | | } |
| | | string content = null; |
| | | if (!BinUtil.LoadStrFromBin(ref content, binPath)) |
| | | { |
| | | callback(null); |
| | | return; |
| | | } |
| | | try |
| | | { |
| | | PdmUser param = JsonUtil.Deserialize<PdmUser>(encryptor.Decrypt(content)); |
| | | Result<PdmUser> res = HttpClientCreator.PostSyncAction<PdmUser>("openApi/wpf/login", new PdmUser |
| | | { |
| | | appId = PluginConst.AppId, |
| | | pluginVersion = PluginConst.Version, |
| | | username = param.username, |
| | | password = param.password |
| | | }); |
| | | PdmUser user = res.HandleResult(); |
| | | user.appId = PluginConst.AppId; |
| | | user.pluginVersion = PluginConst.Version; |
| | | user.password = param.password; |
| | | callback(user); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Logger.Error("Remember Me Login Failed!", ex); |
| | | callback(null); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Result<PdmUser> res = HttpClientCreator.GetSyncAction<PdmUser>("openApi/wpf/simpleLogin", new PdmUser |
| | | { |
| | | username = System.Environment.UserName, |
| | | appId = PluginConst.AppId, |
| | | pluginVersion = PluginConst.Version |
| | | }); |
| | | PdmUser user = res.HandleResult(); |
| | | user.appId = PluginConst.AppId; |
| | | user.pluginVersion = PluginConst.Version; |
| | | callback(user); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | reject(e); |
| | | } |
| | | finally |
| | | { |
| | | MaskAdorner.HideMask(mainGrid); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private void UserControl_Loaded(object sender, RoutedEventArgs e) |
| | | { |
| | | |
| | | AutoLogin( |
| | | (user) => |
| | | { |
| | | if (user != null) |
| | | { |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | PdmUser.SetLoginUser(user); |
| | | if (PdmUser.HasLogin()) |
| | | { |
| | | LoginSuccess(); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | (ex) => |
| | | { |
| | | Logger.Error("登陆失败!", ex); |
| | | this.Error($"登陆失败! {ex.Message}"); |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载插件主Tab |
| | | /// </summary> |
| | | public void LoginSuccess() |
| | | { |
| | | if (rememberMeInput.IsChecked == true) |
| | | { |
| | | // 勾选自动登录的处理 |
| | | string userInfo = JsonUtil.Stringfiy(PdmUser.LoginUser); |
| | | string binDir = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData), "HengXin", "PdmSwPlugin"); |
| | | if (!Directory.Exists(binDir)) |
| | | { |
| | | Directory.CreateDirectory(binDir); |
| | | } |
| | | string binPath = Path.Combine(binDir, "bin"); |
| | | BinUtil.SaveStrToBin(encryptor.Encrypt(userInfo), binPath); |
| | | } |
| | | successCallback(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 登陆点击事件 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | MaskAdorner.ShowMask(mainGrid, "登陆中..."); |
| | | PdmUser param = new PdmUser |
| | | { |
| | | username = usernameTextBlock.Text, |
| | | password = passwordTextBlock.Password, |
| | | appId = PluginConst.AppId, |
| | | pluginVersion = PluginConst.Version |
| | | }; |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | Result<PdmUser> res = HttpClientCreator.PostSyncAction<PdmUser>("openApi/wpf/login", param); |
| | | PdmUser user = res.HandleResult(); |
| | | user.appId = PluginConst.AppId; |
| | | user.pluginVersion = PluginConst.Version; |
| | | user.password = param.password; |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | PdmUser.SetLoginUser(user); |
| | | if (PdmUser.HasLogin()) |
| | | { |
| | | LoginSuccess(); |
| | | } |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Logger.Error("登陆失败!", ex); |
| | | this.Error($"登陆失败! {ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | MaskAdorner.HideMask(mainGrid); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void SetSwApp(SldWorks SwApp) |
| | | { |
| | | this.swApp = SwApp; |
| | | } |
| | | } |
| | | } |
| | |
| | | HorizontalContentAlignment="Stretch" |
| | | VerticalContentAlignment="Stretch" |
| | | VerticalAlignment="Stretch" |
| | | Unloaded="self_Unloaded" |
| | | Loaded="MainControl_Loaded"> |
| | | <AdornerDecorator> |
| | | <Border x:Name="mainBorder"> |
| | | <Grid Height="200" VerticalAlignment="Top" Margin="20"> |
| | | <Grid.RowDefinitions> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="30"/> |
| | | <RowDefinition Height="50"/> |
| | | </Grid.RowDefinitions> |
| | | |
| | | <Grid.ColumnDefinitions> |
| | | <ColumnDefinition Width="50"/> |
| | | <ColumnDefinition/> |
| | | </Grid.ColumnDefinitions> |
| | | <Label Content="用户名" VerticalContentAlignment="Center" Grid.Row="0" Grid.Column="0"/> |
| | | <TextBox x:Name="usernameTextBlock" VerticalAlignment="Stretch" VerticalContentAlignment="Center" Grid.Row="0" Grid.Column="1"/> |
| | | <Label Content="密码" VerticalContentAlignment="Center" Grid.Row="1" Grid.Column="0"/> |
| | | <PasswordBox x:Name="passwordTextBlock" VerticalAlignment="Stretch" VerticalContentAlignment="Center" Grid.Row="1" Grid.Column="1"/> |
| | | <Button Margin="0,10,0,0" Click="Button_Click" Padding="5" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2">登录</Button> |
| | | </Grid> |
| | | <!--<TabControl x:Name="tab"> |
| | | |
| | | </TabControl>--> |
| | | |
| | | </Border> |
| | | </AdornerDecorator> |
| | | </UserControl> |
| | |
| | | using PdmSwPlugin.Common.Interface; |
| | | using SolidWorks.Interop.sldworks; |
| | | using System.Windows.Threading; |
| | | using SuperSocket.SocketBase; |
| | | using SuperSocket.SocketBase.Protocol; |
| | | using PdmSwPlugin.Main.Tcp; |
| | | |
| | | namespace PdmSwPlugin.Main |
| | | { |
| | |
| | | /// </summary> |
| | | public partial class MainControl : UserControl, ISwAppSetter |
| | | { |
| | | private TcpServer tcpServer; |
| | | public void InitTcpServer() |
| | | { |
| | | tcpServer = new TcpServer(); |
| | | tcpServer.NewRequestReceived += new RequestHandler<TcpSession, StringRequestInfo>(HandleRequest); |
| | | if (!tcpServer.Setup(5678)) |
| | | { |
| | | Logger.Error("Tcp Server Setup Error."); |
| | | } |
| | | if (!tcpServer.Start()) |
| | | { |
| | | Logger.Error("Tcp Server Start Error."); |
| | | } |
| | | } |
| | | |
| | | #region 控件 |
| | | #endregion |
| | | public void StopTcpServer() |
| | | { |
| | | tcpServer?.Stop(); |
| | | tcpServer = null; |
| | | } |
| | | |
| | | public void HandleRequest(TcpSession session, StringRequestInfo info) |
| | | { |
| | | byte[] msg = new byte[1]; |
| | | if (PdmUser.LoginUser != null) |
| | | { |
| | | // 登录返回1 |
| | | msg[0] = 1; |
| | | } |
| | | else |
| | | { |
| | | // 没登录返回0 |
| | | msg[0] = 0; |
| | | } |
| | | session.Send(msg, 0, 1); |
| | | } |
| | | |
| | | #region 检查更新相关 |
| | | /// <summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | /// <summary> |
| | | /// 自动登录 |
| | | /// </summary> |
| | | /// <param name="callback"></param> |
| | | /// <param name="reject"></param> |
| | | private void AutoLogin(Action<PdmUser> callback, Action<Exception> reject) |
| | | { |
| | | MaskAdorner.ShowMask(mainBorder, "登陆中..."); |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | if (GlobalConfig.ClassicLogin) |
| | | { |
| | | callback(null); |
| | | return; |
| | | } |
| | | Result<PdmUser> res = HttpClientCreator.GetSyncAction<PdmUser>("openApi/wpf/simpleLogin", new PdmUser |
| | | { |
| | | username = System.Environment.UserName, |
| | | appId = PluginConst.AppId, |
| | | pluginVersion = PluginConst.Version |
| | | }); |
| | | PdmUser user = res.HandleResult(); |
| | | user.appId = PluginConst.AppId; |
| | | user.pluginVersion = PluginConst.Version; |
| | | callback(user); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | reject(e); |
| | | } |
| | | finally |
| | | { |
| | | MaskAdorner.HideMask(mainBorder); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载插件主Tab |
| | | /// </summary> |
| | |
| | | { |
| | | // 自动登录成功 |
| | | clientCreator = new HttpClientCreator(); |
| | | tabControl = new TabControl(); |
| | | AddPlugin(); |
| | | mainBorder.Child = tabControl; |
| | | if (tabControl.Items.Count > 0) |
| | | if (mainTab == null) |
| | | { |
| | | TabItem tabItem = tabControl.Items[0] as TabItem; |
| | | mainTab = new MainTab(Logout); |
| | | mainTab.SetSwApp(SwApp); |
| | | } |
| | | AddPlugin(); |
| | | mainBorder.Child = mainTab; |
| | | if (mainTab.tabControl.Items.Count > 0) |
| | | { |
| | | TabItem tabItem = mainTab.tabControl.Items[0] as TabItem; |
| | | tabItem.Focus(); |
| | | (tabItem.Content as UIElement).Focus(); |
| | | } |
| | | } |
| | | |
| | | public void Logout() |
| | | { |
| | | string binPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData), "HengXin", "PdmSwPlugin", "bin"); |
| | | File.Delete(binPath); |
| | | DeActiveHandler(); |
| | | mainTab.tabControl.Items.Clear(); |
| | | PdmUser.SetLoginUser(null); |
| | | mainBorder.Child = new LoginControl(LoginSuccess); |
| | | } |
| | | |
| | | public void MainControl_Loaded(object sender, RoutedEventArgs e) |
| | |
| | | // 最后检查更新 |
| | | CheckUpdate(); |
| | | |
| | | AutoLogin( |
| | | (user) => |
| | | { |
| | | if (user != null) |
| | | { |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | PdmUser.SetLoginUser(user); |
| | | if (PdmUser.HasLogin()) |
| | | { |
| | | LoginSuccess(); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | (ex) => |
| | | { |
| | | Logger.Error("登陆失败!", ex); |
| | | this.Error($"登陆失败! {ex.Message}"); |
| | | }); |
| | | mainBorder.Child = new LoginControl(LoginSuccess); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 登陆点击事件 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | MaskAdorner.ShowMask(mainBorder, "登陆中..."); |
| | | PdmUser param = new PdmUser |
| | | { |
| | | username = usernameTextBlock.Text, |
| | | password = passwordTextBlock.Password, |
| | | appId = PluginConst.AppId, |
| | | pluginVersion = PluginConst.Version |
| | | }; |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | | Result<PdmUser> res = HttpClientCreator.PostSyncAction<PdmUser>("openApi/wpf/login", param); |
| | | PdmUser user = res.HandleResult(); |
| | | user.appId = PluginConst.AppId; |
| | | user.pluginVersion = PluginConst.Version; |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | PdmUser.SetLoginUser(user); |
| | | if (PdmUser.HasLogin()) |
| | | { |
| | | LoginSuccess(); |
| | | } |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Logger.Error("登陆失败!", ex); |
| | | this.Error($"登陆失败! {ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | MaskAdorner.HideMask(mainBorder); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | public void SetSwApp(SldWorks SwApp) |
| | | { |
| | | this.SwApp = SwApp; |
| | | } |
| | | |
| | | private void self_Unloaded(object sender, RoutedEventArgs e) |
| | | { |
| | | StopTcpServer(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <UserControl x:Class="PdmSwPlugin.Main.MainTab" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | xmlns:local="clr-namespace:PdmSwPlugin.Main" |
| | | mc:Ignorable="d" |
| | | d:DesignHeight="450" d:DesignWidth="800"> |
| | | <UserControl.Resources> |
| | | <ResourceDictionary> |
| | | <ResourceDictionary.MergedDictionaries> |
| | | <ResourceDictionary Source="/PdmSwPlugin.Common;component/Style/LinkButton.xaml"/> |
| | | </ResourceDictionary.MergedDictionaries> |
| | | </ResourceDictionary> |
| | | </UserControl.Resources> |
| | | <Grid> |
| | | <Grid.RowDefinitions> |
| | | <RowDefinition /> |
| | | <RowDefinition Height="Auto"/> |
| | | </Grid.RowDefinitions> |
| | | <TabControl Grid.Row="0" x:Name="tabControl"></TabControl> |
| | | <StatusBar Grid.Row="1" Padding="0" Margin="0" VerticalContentAlignment="Center"> |
| | | <Label x:Name="userLabel" FontWeight="Bold" Padding="0" Margin="0" /> |
| | | <Button Style="{StaticResource LinkButton}" Click="Button_Click">退出登录</Button> |
| | | </StatusBar> |
| | | </Grid> |
| | | </UserControl> |
New file |
| | |
| | | using PdmSwPlugin.Common.Entity.System; |
| | | using PdmSwPlugin.Common.Interface; |
| | | using SolidWorks.Interop.sldworks; |
| | | using System; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using SolidWorks.Interop.swconst; |
| | | |
| | | namespace PdmSwPlugin.Main |
| | | { |
| | | /// <summary> |
| | | /// MainTab.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class MainTab : UserControl, ISwAppSetter |
| | | { |
| | | private Action logout; |
| | | public MainTab(Action logout) |
| | | { |
| | | this.logout = logout; |
| | | InitializeComponent(); |
| | | userLabel.Content = $"欢迎您,{PdmUser.LoginUser?.realname}"; |
| | | } |
| | | |
| | | private SldWorks swApp; |
| | | public SldWorks SwApp => swApp; |
| | | |
| | | public void SetSwApp(SldWorks SwApp) |
| | | { |
| | | this.swApp = SwApp; |
| | | } |
| | | |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | if (SwApp.SendMsgToUser2("确定退出登录吗?", (int)swMessageBoxIcon_e.swMbWarning, |
| | | (int)swMessageBoxBtn_e.swMbYesNo) == (int)swMessageBoxResult_e.swMbHitYes) |
| | | { |
| | | logout(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.swconst.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Common"> |
| | | <HintPath>..\lib\SuperSocket.Common.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Facility"> |
| | | <HintPath>..\lib\SuperSocket.Facility.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketBase"> |
| | | <HintPath>..\lib\SuperSocket.SocketBase.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketEngine"> |
| | | <HintPath>..\lib\SuperSocket.SocketEngine.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System"> |
| | | <Private>True</Private> |
| | | </Reference> |
| | |
| | | <Compile Include="EventHandler\PartDocEventHandler.cs" /> |
| | | <Compile Include="EventHandler\DocViewEventHandler.cs" /> |
| | | <Compile Include="EventHandler\IDocEventHandler.cs" /> |
| | | <Compile Include="LoginControl.xaml.cs"> |
| | | <DependentUpon>LoginControl.xaml</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="MainControl.xaml.cs"> |
| | | <DependentUpon>MainControl.xaml</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="MainTab.xaml.cs"> |
| | | <DependentUpon>MainTab.xaml</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | <Compile Include="SwAddIn\MainControl.cs" /> |
| | | <Compile Include="Tcp\TcpReqInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Page Include="LoginControl.xaml"> |
| | | <SubType>Designer</SubType> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | </Page> |
| | | <Page Include="MainControl.xaml"> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | <SubType>Designer</SubType> |
| | | </Page> |
| | | <Page Include="MainTab.xaml"> |
| | | <SubType>Designer</SubType> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | </Page> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="app.config" /> |
| | |
| | | |
| | | private HttpClientCreator clientCreator { get; set; } |
| | | |
| | | private TabControl tabControl; |
| | | private MainTab mainTab; |
| | | |
| | | public MainControl(SldWorks swAddin) |
| | | { |
| | |
| | | GlobalConfig = PluginSetting.Instance; |
| | | InitializeComponent(); |
| | | self.DataContext = this; |
| | | InitTcpServer(); |
| | | } |
| | | |
| | | // 本地调试用,连接SolidWorks |
| | |
| | | |
| | | private void AddPlugin() |
| | | { |
| | | tabControl.Items.Clear(); |
| | | mainTab.tabControl.Items.Clear(); |
| | | SetPluginWithPermission(); |
| | | //LoadPlugins(); |
| | | //TestWeb testWeb = new TestWeb(); |
| | |
| | | { |
| | | // 物料优选 |
| | | MaterialSelectControl ms = new MaterialSelectControl(SwApp); |
| | | HandlePlugin(ms, tabControl); |
| | | HandlePlugin(ms, mainTab.tabControl); |
| | | } |
| | | if (permissions.Contains("PDM:PLUGIN:CONTROL:PropertySetting")) |
| | | { |
| | |
| | | if (CustomerSetting.Instance["customer"] == "YWT") |
| | | { |
| | | CommonSettingControl cs = new CommonSettingControl(SwApp); |
| | | HandlePlugin(cs, tabControl); |
| | | HandlePlugin(cs, mainTab.tabControl); |
| | | cs.InitPropertyData(); |
| | | } |
| | | else |
| | | { |
| | | PropertySettingControl ps = new PropertySettingControl(SwApp); |
| | | HandlePlugin(ps, tabControl); |
| | | HandlePlugin(ps, mainTab.tabControl); |
| | | } |
| | | } |
| | | if (permissions.Contains("PDM:PLUGIN:CONTROL:PDM")) |
| | | { |
| | | // PDM |
| | | PdmControl pdm = new PdmControl(SwApp); |
| | | HandlePlugin(pdm, tabControl); |
| | | HandlePlugin(pdm, mainTab.tabControl); |
| | | } |
| | | if (permissions.Contains("PDM:PLUGIN:CONTROL:PriceCheck")) |
| | | { |
| | | // 加工件核价 |
| | | PriceCheckControl priceCheck = new PriceCheckControl(SwApp); |
| | | HandlePlugin(priceCheck, tabControl); |
| | | HandlePlugin(priceCheck, mainTab.tabControl); |
| | | } |
| | | if (permissions.Contains("PDM:PLUGIN:CONTROL:DrawApprove")) |
| | | { |
| | | // 图纸审核 |
| | | DrawApproveControl drawApprove = new DrawApproveControl(SwApp); |
| | | HandlePlugin(drawApprove, tabControl); |
| | | HandlePlugin(drawApprove, mainTab.tabControl); |
| | | /*UserSettingControl userSettingControl = new UserSettingControl(); |
| | | HandlePlugin(userSettingControl, tabControl);*/ |
| | | } |
| | |
| | | { |
| | | // 图纸审核 |
| | | DrawAuditHisControl drawAuditHisControl = new DrawAuditHisControl(SwApp); |
| | | HandlePlugin(drawAuditHisControl, tabControl); |
| | | HandlePlugin(drawAuditHisControl, mainTab.tabControl); |
| | | /*UserSettingControl userSettingControl = new UserSettingControl(); |
| | | HandlePlugin(userSettingControl, tabControl);*/ |
| | | } |
| | |
| | | { |
| | | // 物料优选 |
| | | MaterialSelectControl ms = new MaterialSelectControl(SwApp); |
| | | HandlePlugin(ms, tabControl); |
| | | HandlePlugin(ms, mainTab.tabControl); |
| | | // 属性设置 |
| | | PropertySettingControl ps = new PropertySettingControl(SwApp); |
| | | HandlePlugin(ps, tabControl); |
| | | HandlePlugin(ps, mainTab.tabControl); |
| | | // PDM |
| | | PdmControl pdm = new PdmControl(SwApp); |
| | | HandlePlugin(pdm, tabControl); |
| | | HandlePlugin(pdm, mainTab.tabControl); |
| | | // 加工件核价 |
| | | PriceCheckControl priceCheck = new PriceCheckControl(SwApp); |
| | | HandlePlugin(priceCheck, tabControl); |
| | | HandlePlugin(priceCheck, mainTab.tabControl); |
| | | // 图纸审核 |
| | | DrawApproveControl drawApprove = new DrawApproveControl(SwApp); |
| | | HandlePlugin(drawApprove, tabControl); |
| | | HandlePlugin(drawApprove, mainTab.tabControl); |
| | | } |
| | | |
| | | private void LoadPlugins() |
| | |
| | | // p.GetInstance(type.FullName); |
| | | // 处理插件 |
| | | HandlePlugin(attr, obj); |
| | | tabControl.Items.Add(new TabItem |
| | | mainTab.tabControl.Items.Add(new TabItem |
| | | { |
| | | Header = attr.Title, |
| | | Content = obj |
| | |
| | | AfterDocDestroy?.Invoke(); |
| | | } |
| | | |
| | | public void DeActiveHandler() |
| | | { |
| | | foreach (TabItem item in mainTab.tabControl.Items) |
| | | { |
| | | // 向主Control注册事件 |
| | | if (item.Content is IActiveDocChangeHandler handler) |
| | | { |
| | | ActiveDocChangeEvent -= handler.OnSwActiveDocChange; |
| | | ActiveDocSavedEvent -= handler.OnSwActiveDocSaved; |
| | | ActiveDocCustomPropertyChange -= handler.OnCustomPropertyChange; |
| | | DocDestroy -= handler.OnDocDestroy; |
| | | AfterDocDestroy -= handler.AfterDocDestroy; |
| | | } |
| | | } |
| | | PluginInfos.Clear(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 连接到SolidWorks之后,激活中的文档自定义属性变更的操作 |
| | | /// </summary> |
New file |
| | |
| | | using SuperSocket.SocketBase; |
| | | using SuperSocket.SocketBase.Config; |
| | | using SuperSocket.SocketBase.Protocol; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Timers; |
| | | |
| | | namespace PdmSwPlugin.Main.Tcp |
| | | { |
| | | public class DTReceiveFilter : ReceiveFilterBase<StringRequestInfo> |
| | | { |
| | | public override StringRequestInfo Filter(byte[] readBuffer, int offset, int length, bool toBeCopied, out int rest) |
| | | { |
| | | rest = 0; |
| | | return new StringRequestInfo(DateTime.Now + "", "123", new string[] { "123" }); |
| | | } |
| | | } |
| | | |
| | | public class TcpServer : AppServer<TcpSession> |
| | | { |
| | | public TcpServer() : base(new DefaultReceiveFilterFactory<DTReceiveFilter, StringRequestInfo>()) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | public class TcpSession : AppSession<TcpSession, StringRequestInfo> |
| | | { |
| | | |
| | | } |
| | | } |
| | |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.swconst.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.swpublished"> |
| | | <HintPath>..\..\..\..\..\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.swpublished.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="System"> |
| | | <Private>True</Private> |
| | | </Reference> |
| | |
| | | using PdmSwPlugin.Commmon.Control; |
| | | using PdmSwPlugin.Common.Entity.System; |
| | | using System.Windows.Documents; |
| | | using System.Windows.Input; |
| | | using NPOI.POIFS.Properties; |
| | | using NPOI.POIFS.Crypt; |
| | | |
| | | namespace PdmSwPlugin.PDM |
| | | { |
| | |
| | | return allSuccess; |
| | | } |
| | | |
| | | public void sb(dynamic[] datas) { |
| | | /*Dictionary<string, DrawInfo> properties = datas[0]; |
| | | string key = datas[1]; |
| | | KeyValuePair<string, DrawInfo> property = datas[2]; |
| | | List<string> temp = datas[3]; |
| | | CountdownEvent counter = datas[4]; |
| | | try |
| | | { |
| | | |
| | | int iii, ref bool allSuccess |
| | | |
| | | Logger.Info($"{key} checking rule..."); |
| | | iii++; |
| | | Result<DrawInfo> result = Client.PostSyncAction<DrawInfo>(property.Value, "wpf/bom/openApi/checkRuleSingle"); |
| | | DrawInfo checkResult = result.HandleResult(); |
| | | properties[key].checkRuleResult = checkResult.checkRuleResult; |
| | | properties[key].errMessages = checkResult.errMessages; |
| | | var msgs = checkResult.errMessages; |
| | | if (!properties[key].HistoryData && !checkResult.checkRuleOk) |
| | | { |
| | | allSuccess = false; |
| | | } |
| | | |
| | | if (!properties[key].HistoryData && msgs != null && msgs.Count > 0) |
| | | { |
| | | lock (temp) |
| | | { |
| | | foreach (string msg in msgs) |
| | | { |
| | | temp.Add($"物料【{key}】未通过规则检查!{msg}"); |
| | | } |
| | | } |
| | | } |
| | | MaskAdorner.ShowMessage(content, $"物料【{key}】检查完成"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | properties[key].checkRuleResult = 2; |
| | | properties[key].errMessages = new List<string> { "发起检查失败,请重试" }; |
| | | lock (temp) |
| | | { |
| | | temp.Add($"物料【{key}】发起检查失败,请重试"); |
| | | } |
| | | allSuccess = false; |
| | | MaskAdorner.ShowMessage(content, $"物料【{key}】检查完成"); |
| | | } |
| | | finally |
| | | { |
| | | counter.Signal(); |
| | | }*/ |
| | | } |
| | | |
| | | public bool DoCheckRuleAsync(out List<string> messages) |
| | | { |
| | | var temp = new List<string>(); |
| | | bool allSuccess = true; |
| | | Dictionary<string, DrawInfo> properties = GetAllProperties(temp); |
| | | MaskAdorner.ShowMessage(content, "正在请求数据..."); |
| | | var factory = LimitedConcurrencyLevelTaskScheduler.Factory; |
| | | CountdownEvent counter = new CountdownEvent(properties.Count); |
| | | int iii = 1; |
| | | foreach (KeyValuePair<string, DrawInfo> property in properties) |
| | | { |
| | | string key = property.Key; |
| | | _ = ThreadPool.QueueUserWorkItem( |
| | | (WaitCallback)delegate |
| | | { |
| | | |
| | | try |
| | | { |
| | | Logger.Error($"{key} checking rule..."); |
| | | iii++; |
| | | Result<DrawInfo> result = Client.PostSyncAction<DrawInfo>(property.Value, "wpf/bom/openApi/checkRuleSingle"); |
| | | DrawInfo checkResult = result.HandleResult(); |
| | | properties[key].checkRuleResult = checkResult.checkRuleResult; |
| | | properties[key].errMessages = checkResult.errMessages; |
| | | var msgs = checkResult.errMessages; |
| | | if (!properties[key].HistoryData && !checkResult.checkRuleOk) |
| | | { |
| | | allSuccess = false; |
| | | } |
| | | |
| | | if (!properties[key].HistoryData && msgs != null && msgs.Count > 0) |
| | | { |
| | | lock (temp) |
| | | { |
| | | foreach (string msg in msgs) |
| | | { |
| | | temp.Add($"物料【{key}】未通过规则检查!{msg}"); |
| | | } |
| | | } |
| | | } |
| | | MaskAdorner.ShowMessage(content, $"物料【{key}】检查完成"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | properties[key].checkRuleResult = 2; |
| | | properties[key].errMessages = new List<string> { "发起检查失败,请重试" }; |
| | | lock (temp) |
| | | { |
| | | temp.Add($"物料【{key}】发起检查失败,请重试"); |
| | | } |
| | | allSuccess = false; |
| | | MaskAdorner.ShowMessage(content, $"物料【{key}】检查完成"); |
| | | } |
| | | finally |
| | | { |
| | | counter.Signal(); |
| | | } |
| | | }); |
| | | |
| | | /* factory.StartNew(() => |
| | | { |
| | | |
| | | });*/ |
| | | } |
| | | counter.Wait(); |
| | | counter.Dispose(); |
| | | messages = temp; |
| | | return allSuccess; |
| | | } |
| | | |
| | | private void ShowExWindow(MultiExWindow exWin) |
| | | { |
| | | IntPtr winformWindow = Process.GetCurrentProcess().MainWindowHandle; |
| | |
| | | { |
| | | // 执行规则检查并获取结果 |
| | | RefreshBomList(SwApp.IActiveDoc2); |
| | | if (model.bomTreeReader.CacheList.Count <= 0) |
| | | { |
| | | throw new CantCheckInException(new List<string> { "请打开一张图纸" }); |
| | | } |
| | | DoCheckRule(out _); |
| | | // 筛选所有在物料明细表中,不跳过检查并且检查未通过的,类型是加工件的未通过审核的,加工件审核通过的但图纸变更的 |
| | | List<string> errs = model.bomTreeReader.CacheList.Select(b => b.NeedStopCheckIn()) |
| | |
| | | <Reference Include="SixLabors.ImageSharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13, processorArchitecture=MSIL"> |
| | | <HintPath>..\PdmSw\packages\SixLabors.ImageSharp.2.1.3\lib\net472\SixLabors.ImageSharp.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.gtswutilities"> |
| | | <HintPath>..\..\..\..\..\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.gtswutilities.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.sldworks"> |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.sldworks.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | Initialized="PropertySettingControl_Initialized" |
| | | mc:Ignorable="d" |
| | | d:DesignHeight="450" d:DesignWidth="800"> |
| | | <UserControl.Resources> |
| | |
| | | this.SwApp = SwApp; |
| | | } |
| | | |
| | | private void InitPropertyData() |
| | | public void InitPropertyData() |
| | | { |
| | | if (Client == null) |
| | | { |
| | |
| | | else if (docType == (int)swDocumentTypes_e.swDocASSEMBLY) |
| | | { |
| | | ReadDocPath = ReadDoc.GetPathName(); |
| | | // !Equals(LastReadDoc, ReadDoc) |
| | | properties = CustomPropertyUtil.GetCustomProperties2(ReadDoc, true, skipName); |
| | | string fileType = properties.Get(NameConstant.docType); |
| | | /*if (fileType == "加工件" || fileType == "模组") |
| | | if (ReadDoc.IsOpenedViewOnly()) |
| | | { |
| | | contentKey = "jgjPart"; |
| | | }*/ |
| | | if (BomIniterHolder.Instance.IsJgj(ReadDoc)) |
| | | contentKey = "default"; |
| | | control = controlCache[contentKey]; |
| | | newOne = control as IPropertyOpt; |
| | | newOne.SetProperties(null, "当前处于只读模式", true, out _); |
| | | } |
| | | else if (ReadDoc.IsOpenedReadOnly()) |
| | | { |
| | | contentKey = "jgjModule"; |
| | | contentKey = "default"; |
| | | control = controlCache[contentKey]; |
| | | newOne = control as IPropertyOpt; |
| | | newOne.SetProperties(null, "当前处于只读模式", true, out _); |
| | | } |
| | | else |
| | | { |
| | | contentKey = "standardModule"; |
| | | // !Equals(LastReadDoc, ReadDoc) |
| | | properties = CustomPropertyUtil.GetCustomProperties2(ReadDoc, true, skipName); |
| | | string fileType = properties.Get(NameConstant.docType); |
| | | /*if (fileType == "加工件" || fileType == "模组") |
| | | { |
| | | contentKey = "jgjPart"; |
| | | }*/ |
| | | if (BomIniterHolder.Instance.IsJgj(ReadDoc)) |
| | | { |
| | | contentKey = "jgjModule"; |
| | | } |
| | | else |
| | | { |
| | | contentKey = "standardModule"; |
| | | } |
| | | control = controlCache[contentKey]; |
| | | newOne = control as IPropertyOpt; |
| | | newOne.SetProperties(ReadDoc, properties, true, out _); |
| | | } |
| | | control = controlCache[contentKey]; |
| | | newOne = control as IPropertyOpt; |
| | | newOne.SetProperties(ReadDoc, properties, true, out _); |
| | | } |
| | | else |
| | | { |
New file |
| | |
| | | {"RootPath":"D:\\Workspace\\PdmSwPlugin2\\PluginLisener","ProjectFileName":"PluginLisener.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"PluginLisener.cs"},{"SourceFile":"PluginLisener.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"ProjectInstaller.cs"},{"SourceFile":"ProjectInstaller.Designer.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\packages\\HtmlToXamlConverter.1.0.5727.24510\\lib\\net45\\HtmlToXamlConverter.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Configuration.Install.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.ServiceProcess.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\bin\\x64\\Debug\\PluginLisener.exe","OutputItemRelativePath":"PluginLisener.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} |
New file |
| | |
| | | { |
| | | "Version": 1, |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|d:\\workspace\\pdmswplugin2\\pluginlisener\\pluginlisener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|solutionrelative:pluginlisener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | | { |
| | | "Orientation": 0, |
| | | "VerticalTabListWidth": 256, |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 0, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "PluginLisener.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\PluginLisener.cs", |
| | | "RelativeDocumentMoniker": "PluginLisener.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\PluginLisener.cs", |
| | | "RelativeToolTip": "PluginLisener.cs", |
| | | "ViewState": "AgIAAAYAAAAAAAAAAAAAAA8AAABBAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-23T08:16:41.952Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "Program.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\Program.cs", |
| | | "RelativeDocumentMoniker": "Program.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\Program.cs", |
| | | "RelativeToolTip": "Program.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAhAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-23T08:16:20.579Z" |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
New file |
| | |
| | | { |
| | | "Version": 1, |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|d:\\workspace\\pdmswplugin2\\pluginlisener\\pluginlisener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|solutionrelative:pluginlisener.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|d:\\workspace\\pdmswplugin2\\pluginlisener\\pluginlisener.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|solutionrelative:pluginlisener.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}|PluginLisener.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | | { |
| | | "Orientation": 0, |
| | | "VerticalTabListWidth": 256, |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 1, |
| | | "Children": [ |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "Title": "PluginLisener.Designer.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\PluginLisener.Designer.cs", |
| | | "RelativeDocumentMoniker": "PluginLisener.Designer.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\PluginLisener.Designer.cs", |
| | | "RelativeToolTip": "PluginLisener.Designer.cs", |
| | | "ViewState": "AgIAABMAAAAAAAAAAAAgwB4AAAArAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-09-12T08:38:16.635Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "PluginLisener.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\PluginLisener.cs", |
| | | "RelativeDocumentMoniker": "PluginLisener.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\PluginLisener.cs", |
| | | "RelativeToolTip": "PluginLisener.cs", |
| | | "ViewState": "AgIAABgAAAAAAAAAAAAowBEAAAAIAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-23T08:16:41.952Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "Title": "Program.cs", |
| | | "DocumentMoniker": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\Program.cs", |
| | | "RelativeDocumentMoniker": "Program.cs", |
| | | "ToolTip": "D:\\Workspace\\PdmSwPlugin2\\PluginLisener\\Program.cs", |
| | | "RelativeToolTip": "Program.cs", |
| | | "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAdAAAAAAAAAA==", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-08-23T08:16:20.579Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8" ?> |
| | | <configuration> |
| | | <startup> |
| | | <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> |
| | | </startup> |
| | | </configuration> |
New file |
| | |
| | | namespace PluginLisener |
| | | { |
| | | partial class PluginLisener |
| | | { |
| | | /// <summary> |
| | | /// 必需的设计器变量。 |
| | | /// </summary> |
| | | private System.ComponentModel.IContainer components = null; |
| | | |
| | | /// <summary> |
| | | /// 清理所有正在使用的资源。 |
| | | /// </summary> |
| | | /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> |
| | | protected override void Dispose(bool disposing) |
| | | { |
| | | if (disposing && (components != null)) |
| | | { |
| | | components.Dispose(); |
| | | } |
| | | base.Dispose(disposing); |
| | | } |
| | | |
| | | #region 组件设计器生成的代码 |
| | | |
| | | /// <summary> |
| | | /// 设计器支持所需的方法 - 不要修改 |
| | | /// 使用代码编辑器修改此方法的内容。 |
| | | /// </summary> |
| | | private void InitializeComponent() |
| | | { |
| | | components = new System.ComponentModel.Container(); |
| | | this.ServiceName = "PdmSwPluginLisener"; |
| | | this.CanStop = true; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
New file |
| | |
| | | using System.Runtime.InteropServices; |
| | | using System; |
| | | using System.ServiceProcess; |
| | | using System.Collections.Generic; |
| | | using SolidWorks.Interop.sldworks; |
| | | |
| | | namespace PluginLisener |
| | | { |
| | | public partial class PluginLisener : ServiceBase |
| | | { |
| | | public PluginLisener() |
| | | { |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | private List<SldWorks> processIds = new List<SldWorks>(); |
| | | |
| | | public static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero; |
| | | |
| | | protected override void OnStart(string[] args) |
| | | { |
| | | var SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application"); |
| | | int resp = 0; |
| | | WTSSendMessage( |
| | | WTS_CURRENT_SERVER_HANDLE, |
| | | WTSGetActiveConsoleSessionId(),//获得当前显示的桌面所在的SessionID |
| | | "title", "title".Length, |
| | | "message", "message".Length, |
| | | 0, 0, out resp, false); |
| | | } |
| | | |
| | | public void StartScan() { |
| | | |
| | | } |
| | | |
| | | protected override void OnStop() |
| | | { |
| | | } |
| | | |
| | | [DllImport("kernel32.dll", SetLastError = true)] |
| | | public static extern int WTSGetActiveConsoleSessionId(); |
| | | |
| | | [DllImport("wtsapi32.dll", SetLastError = true)] |
| | | public static extern bool WTSSendMessage( //一个Session中的进程可以用WTSSendMessage,让另一个Session弹出对话框 |
| | | IntPtr hServer, |
| | | int SessionId, |
| | | String pTitle, |
| | | int TitleLength, |
| | | String pMessage, |
| | | int MessageLength, |
| | | int Style, |
| | | int Timeout, |
| | | out int pResponse, |
| | | bool bWait); |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
| | | <PropertyGroup> |
| | | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
| | | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
| | | <ProjectGuid>{08B29115-BDDE-43E6-9E6B-EB6DC75B35D9}</ProjectGuid> |
| | | <OutputType>WinExe</OutputType> |
| | | <RootNamespace>PluginLisener</RootNamespace> |
| | | <AssemblyName>PluginLisener</AssemblyName> |
| | | <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
| | | <Deterministic>true</Deterministic> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <DebugType>full</DebugType> |
| | | <Optimize>false</Optimize> |
| | | <OutputPath>bin\Debug\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugType>pdbonly</DebugType> |
| | | <Optimize>true</Optimize> |
| | | <OutputPath>bin\Release\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <OutputPath>bin\x64\Debug\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <DebugType>full</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> |
| | | <OutputPath>bin\x64\Release\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <Optimize>true</Optimize> |
| | | <DebugType>pdbonly</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="HtmlToXamlConverter, Version=1.0.5727.24510, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>packages\HtmlToXamlConverter.1.0.5727.24510\lib\net45\HtmlToXamlConverter.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.sldworks"> |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.sldworks.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Configuration.Install" /> |
| | | <Reference Include="System.Core" /> |
| | | <Reference Include="System.Management" /> |
| | | <Reference Include="System.Xml.Linq" /> |
| | | <Reference Include="System.Data.DataSetExtensions" /> |
| | | <Reference Include="Microsoft.CSharp" /> |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.ServiceProcess" /> |
| | | <Reference Include="System.Xml" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="PluginLisener.cs"> |
| | | <SubType>Component</SubType> |
| | | </Compile> |
| | | <Compile Include="PluginLisener.Designer.cs"> |
| | | <DependentUpon>PluginLisener.cs</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Program.cs" /> |
| | | <Compile Include="ProjectInstaller.cs"> |
| | | <SubType>Component</SubType> |
| | | </Compile> |
| | | <Compile Include="ProjectInstaller.Designer.cs"> |
| | | <DependentUpon>ProjectInstaller.cs</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="App.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <EmbeddedResource Include="ProjectInstaller.resx"> |
| | | <DependentUpon>ProjectInstaller.cs</DependentUpon> |
| | | </EmbeddedResource> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <PropertyGroup> |
| | | <PostBuildEvent>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe "$(TargetFileName)" & net start PdmSwPluginLisener</PostBuildEvent> |
| | | </PropertyGroup> |
| | | <PropertyGroup> |
| | | <PreBuildEvent>sc delete PdmSwPluginLisener</PreBuildEvent> |
| | | </PropertyGroup> |
| | | </Project> |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.ServiceProcess; |
| | | |
| | | namespace PluginLisener |
| | | { |
| | | internal static class Program |
| | | { |
| | | /// <summary> |
| | | /// 应用程序的主入口点。 |
| | | /// </summary> |
| | | static void Main() |
| | | { |
| | | ServiceBase[] ServicesToRun; |
| | | ServicesToRun = new ServiceBase[] |
| | | { |
| | | new PluginLisener() |
| | | }; |
| | | ServiceBase.Run(ServicesToRun); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | namespace PluginLisener |
| | | { |
| | | partial class ProjectInstaller |
| | | { |
| | | /// <summary> |
| | | /// 必需的设计器变量。 |
| | | /// </summary> |
| | | private System.ComponentModel.IContainer components = null; |
| | | |
| | | /// <summary> |
| | | /// 清理所有正在使用的资源。 |
| | | /// </summary> |
| | | /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> |
| | | protected override void Dispose(bool disposing) |
| | | { |
| | | if (disposing && (components != null)) |
| | | { |
| | | components.Dispose(); |
| | | } |
| | | base.Dispose(disposing); |
| | | } |
| | | |
| | | #region 组件设计器生成的代码 |
| | | |
| | | /// <summary> |
| | | /// 设计器支持所需的方法 - 不要修改 |
| | | /// 使用代码编辑器修改此方法的内容。 |
| | | /// </summary> |
| | | private void InitializeComponent() |
| | | { |
| | | this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller(); |
| | | this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller(); |
| | | // |
| | | // serviceProcessInstaller1 |
| | | // |
| | | this.serviceProcessInstaller1.Password = null; |
| | | this.serviceProcessInstaller1.Username = null; |
| | | // |
| | | // serviceInstaller1 |
| | | // |
| | | this.serviceInstaller1.ServiceName = "PdmSwPluginLisener"; |
| | | // |
| | | // ProjectInstaller |
| | | // |
| | | this.Installers.AddRange(new System.Configuration.Install.Installer[] { |
| | | this.serviceProcessInstaller1, |
| | | this.serviceInstaller1}); |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1; |
| | | private System.ServiceProcess.ServiceInstaller serviceInstaller1; |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Configuration.Install; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace PluginLisener |
| | | { |
| | | [RunInstaller(true)] |
| | | public partial class ProjectInstaller : System.Configuration.Install.Installer |
| | | { |
| | | public ProjectInstaller() |
| | | { |
| | | InitializeComponent(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <root> |
| | | <!-- |
| | | Microsoft ResX Schema |
| | | |
| | | Version 2.0 |
| | | |
| | | The primary goals of this format is to allow a simple XML format |
| | | that is mostly human readable. The generation and parsing of the |
| | | various data types are done through the TypeConverter classes |
| | | associated with the data types. |
| | | |
| | | Example: |
| | | |
| | | ... ado.net/XML headers & schema ... |
| | | <resheader name="resmimetype">text/microsoft-resx</resheader> |
| | | <resheader name="version">2.0</resheader> |
| | | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
| | | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
| | | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
| | | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
| | | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
| | | <value>[base64 mime encoded serialized .NET Framework object]</value> |
| | | </data> |
| | | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
| | | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
| | | <comment>This is a comment</comment> |
| | | </data> |
| | | |
| | | There are any number of "resheader" rows that contain simple |
| | | name/value pairs. |
| | | |
| | | Each data row contains a name, and value. The row also contains a |
| | | type or mimetype. Type corresponds to a .NET class that support |
| | | text/value conversion through the TypeConverter architecture. |
| | | Classes that don't support this are serialized and stored with the |
| | | mimetype set. |
| | | |
| | | The mimetype is used for serialized objects, and tells the |
| | | ResXResourceReader how to depersist the object. This is currently not |
| | | extensible. For a given mimetype the value must be set accordingly: |
| | | |
| | | Note - application/x-microsoft.net.object.binary.base64 is the format |
| | | that the ResXResourceWriter will generate, however the reader can |
| | | read any of the formats listed below. |
| | | |
| | | mimetype: application/x-microsoft.net.object.binary.base64 |
| | | value : The object must be serialized with |
| | | : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.soap.base64 |
| | | value : The object must be serialized with |
| | | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.bytearray.base64 |
| | | value : The object must be serialized into a byte array |
| | | : using a System.ComponentModel.TypeConverter |
| | | : and then encoded with base64 encoding. |
| | | --> |
| | | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
| | | <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
| | | <xsd:element name="root" msdata:IsDataSet="true"> |
| | | <xsd:complexType> |
| | | <xsd:choice maxOccurs="unbounded"> |
| | | <xsd:element name="metadata"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" use="required" type="xsd:string" /> |
| | | <xsd:attribute name="type" type="xsd:string" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" /> |
| | | <xsd:attribute ref="xml:space" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="assembly"> |
| | | <xsd:complexType> |
| | | <xsd:attribute name="alias" type="xsd:string" /> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="data"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
| | | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
| | | <xsd:attribute ref="xml:space" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="resheader"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" use="required" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:choice> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:schema> |
| | | <resheader name="resmimetype"> |
| | | <value>text/microsoft-resx</value> |
| | | </resheader> |
| | | <resheader name="version"> |
| | | <value>2.0</value> |
| | | </resheader> |
| | | <resheader name="reader"> |
| | | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | <resheader name="writer"> |
| | | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | <metadata name="serviceProcessInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
| | | <value>17, 17</value> |
| | | </metadata> |
| | | <metadata name="serviceInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
| | | <value>210, 17</value> |
| | | </metadata> |
| | | <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> |
| | | <value>False</value> |
| | | </metadata> |
| | | </root> |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("PluginLisener")] |
| | | [assembly: AssemblyDescription("")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("")] |
| | | [assembly: AssemblyProduct("PluginLisener")] |
| | | [assembly: AssemblyCopyright("Copyright © 2024")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID |
| | | [assembly: Guid("08b29115-bdde-43e6-9e6b-eb6dc75b35d9")] |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 |
| | | //通过使用 "*",如下所示: |
| | | // [assembly: AssemblyVersion("1.0.*")] |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="HtmlToXamlConverter" version="1.0.5727.24510" targetFramework="net472" /> |
| | | </packages> |
New file |
| | |
| | | { |
| | | "Version": 1, |
| | | "WorkspaceRootPath": "D:\\Workspace\\PdmSwPlugin2\\PluginListener\\", |
| | | "Documents": [], |
| | | "DocumentGroupContainers": [ |
| | | { |
| | | "Orientation": 0, |
| | | "VerticalTabListWidth": 256, |
| | | "DocumentGroups": [] |
| | | } |
| | | ] |
| | | } |
New file |
| | |
| | | <Window x:Class="PluginListener.Alert" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
| | | xmlns:local="clr-namespace:Test1" |
| | | mc:Ignorable="d" |
| | | ShowInTaskbar="False" |
| | | Topmost="True" Height="Auto" Width="Auto" |
| | | Title="提示"> |
| | | <StackPanel HorizontalAlignment="Center"> |
| | | <Label x:Name="label"/> |
| | | <Button Click="Button_Click">确认</Button> |
| | | </StackPanel> |
| | | </Window> |
New file |
| | |
| | | using System.Windows; |
| | | namespace PluginListener |
| | | { |
| | | /// <summary> |
| | | /// Alert.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class Alert : Window |
| | | { |
| | | public Alert() |
| | | { |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | public void Open(string msg) |
| | | { |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | label.Content = msg; |
| | | this.Show(); |
| | | }); |
| | | } |
| | | |
| | | public void DoHide() |
| | | { |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | this.Hide(); |
| | | }); |
| | | } |
| | | |
| | | public void DoClose() |
| | | { |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | this.Close(); |
| | | }); |
| | | } |
| | | |
| | | protected override void OnClosing(System.ComponentModel.CancelEventArgs e) |
| | | { |
| | | e.Cancel = true; |
| | | } |
| | | |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | this.Hide(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <configuration> |
| | | <startup> |
| | | <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> |
| | | </startup> |
| | | <connectionStrings> |
| | | <add name="DefaultConnection" connectionString="Data Source = |SQL/CE|" /> |
| | | </connectionStrings> |
| | | </configuration> |
New file |
| | |
| | | using System; |
| | | using System.Diagnostics; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace Test1 |
| | | { |
| | | public class Intercepter |
| | | { |
| | | private Task importListenTask; |
| | | private Task checkInListenTask; |
| | | |
| | | private CancellationTokenSource cts; |
| | | |
| | | public Intercepter(Action callback1, Action callback2) |
| | | { |
| | | cts = new CancellationTokenSource(); |
| | | /// 启动导入拦截 |
| | | importListenTask = Task.Run(() => |
| | | { |
| | | while (!cts.IsCancellationRequested) |
| | | { |
| | | Debug.WriteLine("inter Import"); |
| | | // 监听导入插件的启动 |
| | | callback1(); |
| | | Thread.Sleep(30); |
| | | } |
| | | }); |
| | | /// 启动检入拦截 |
| | | checkInListenTask = Task.Run(() => |
| | | { |
| | | while (!cts.IsCancellationRequested) |
| | | { |
| | | Debug.WriteLine("inter CheckIn"); |
| | | // 监听检入插件的启动 |
| | | callback2(); |
| | | Thread.Sleep(30); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void StopIntercept() |
| | | { |
| | | cts.Cancel(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using log4net; |
| | | using SolidWorks.Interop.sldworks; |
| | | using SolidWorks.Interop.swconst; |
| | | using SuperSocket.ClientEngine; |
| | | using System; |
| | | using System.Diagnostics; |
| | | using System.Net; |
| | | using System.Runtime.InteropServices; |
| | | using System.ServiceProcess; |
| | | using System.Text; |
| | | using System.Timers; |
| | | using System.Windows; |
| | | using Test1; |
| | | |
| | | namespace PluginListener |
| | | { |
| | | public class Listener : ServiceBase |
| | | { |
| | | ILog log = LogManager.GetLogger("Listener"); |
| | | private AsyncTcpSession client; |
| | | |
| | | private long err_count; |
| | | |
| | | private System.Timers.Timer socketTimer; |
| | | private System.Timers.Timer importTimer; |
| | | private System.Timers.Timer checkInTimer; |
| | | |
| | | private Alert alert; |
| | | private volatile int is_open = int.MaxValue; |
| | | |
| | | private int msgInterval = 5000; |
| | | |
| | | #region 消息 |
| | | public static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero; |
| | | |
| | | public void ShowMessageBox(string message, string title) |
| | | { |
| | | /*if (is_open == 0) |
| | | { |
| | | return; |
| | | }*/ |
| | | is_open = 0; |
| | | int res; |
| | | WTSSendMessage( |
| | | WTS_CURRENT_SERVER_HANDLE, |
| | | WTSGetActiveConsoleSessionId(), |
| | | title, title.Length, |
| | | message, message.Length, |
| | | 0, 0, out res, true); |
| | | is_open = res; |
| | | } |
| | | |
| | | [DllImport("kernel32.dll", SetLastError = true)] |
| | | public static extern int WTSGetActiveConsoleSessionId(); |
| | | |
| | | [DllImport("wtsapi32.dll", SetLastError = true)] |
| | | public static extern bool WTSSendMessage( |
| | | IntPtr hServer, |
| | | int SessionId, |
| | | String pTitle, |
| | | int TitleLength, |
| | | String pMessage, |
| | | int MessageLength, |
| | | int Style, |
| | | int Timeout, |
| | | out int pResponse, |
| | | bool bWait); |
| | | #endregion |
| | | |
| | | |
| | | #region 组件设计器生成的代码 |
| | | /// <summary> |
| | | /// 必需的设计器变量。 |
| | | /// </summary> |
| | | private System.ComponentModel.IContainer components = null; |
| | | |
| | | /// <summary> |
| | | /// 清理所有正在使用的资源。 |
| | | /// </summary> |
| | | /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> |
| | | protected override void Dispose(bool disposing) |
| | | { |
| | | if (disposing && (components != null)) |
| | | { |
| | | components.Dispose(); |
| | | } |
| | | base.Dispose(disposing); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设计器支持所需的方法 - 不要修改 |
| | | /// 使用代码编辑器修改此方法的内容。 |
| | | /// </summary> |
| | | private void InitializeComponent() |
| | | { |
| | | components = new System.ComponentModel.Container(); |
| | | this.ServiceName = "PdmSwPluginLisener"; |
| | | this.CanStop = true; |
| | | } |
| | | #endregion |
| | | |
| | | private void AlertMsg(string msg) |
| | | { |
| | | /// 内置WPF的 不能用 |
| | | // alert.Open(msg); |
| | | |
| | | /*try |
| | | { |
| | | // SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.28"); |
| | | var swApp = (SldWorks)System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"); |
| | | swApp.SendMsgToUser2(msg, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); |
| | | Marshal.ReleaseComObject(swApp); |
| | | } |
| | | catch (COMException ex) |
| | | { |
| | | log.Error("Attach Sw Failed.", ex); |
| | | }*/ |
| | | |
| | | WinAPI_Interop.ShowServiceMessage(msg, "提示"); |
| | | // ShowMessageBox(msg, "提示"); |
| | | |
| | | /// 用MessageBox的 不能用 |
| | | /*if (swApp == null) |
| | | { |
| | | int res; |
| | | WTSSendMessage( |
| | | WTS_CURRENT_SERVER_HANDLE, |
| | | WTSGetActiveConsoleSessionId(),//获得当前显示的桌面所在的SessionID |
| | | "提示", "提示".Length, |
| | | msg, msg.Length, |
| | | 0, 0, out res, false); |
| | | } |
| | | else |
| | | { |
| | | swApp.SendMsgToUser2(msg, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); |
| | | }*/ |
| | | |
| | | // |
| | | |
| | | ///启动exe的 |
| | | /*ProcessStartInfo psi = new ProcessStartInfo |
| | | { |
| | | FileName = "AlertWindow.exe", |
| | | UseShellExecute = false, |
| | | CreateNoWindow = true |
| | | }; |
| | | Process process = Process.Start(psi);*/ |
| | | } |
| | | |
| | | public Listener() |
| | | { |
| | | alert = new Alert(); |
| | | client = new AsyncTcpSession(); |
| | | client.Connected += Client_Connected; |
| | | client.Error += Client_Error; |
| | | client.Closed += Client_Closed; |
| | | client.DataReceived += Client_DataReceived; |
| | | InitializeComponent(); |
| | | log.Info("Service Started."); |
| | | } |
| | | |
| | | protected override void OnStart(string[] args) |
| | | { |
| | | Start(); |
| | | } |
| | | |
| | | protected override void OnStop() |
| | | { |
| | | Stop(); |
| | | } |
| | | |
| | | public void Start() |
| | | { |
| | | InitSocketTimer(); |
| | | } |
| | | |
| | | public void Stop() |
| | | { |
| | | socketTimer?.Stop(); |
| | | StopInterceptTimer(); |
| | | // alert.DoClose(); |
| | | // if (intercepter != null) intercepter.StopIntercept(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 启动Socket定时器 |
| | | /// </summary> |
| | | public void InitSocketTimer() |
| | | { |
| | | log.Info("Starting Socket Timer..."); |
| | | socketTimer = new System.Timers.Timer(msgInterval); |
| | | socketTimer.Elapsed += Timer_Elapsed; |
| | | socketTimer.Enabled = true; |
| | | socketTimer.Start(); |
| | | log.Info("Started Socket Timer!"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 启动金蝶拦截任务 |
| | | /// </summary> |
| | | public void StartInterceptTimer() |
| | | { |
| | | // if (intercepter == null) intercepter = new Intercepter(ListenImportHandle, ListenCheckInHandle); |
| | | if (importTimer == null) |
| | | { |
| | | importTimer = new System.Timers.Timer(500); |
| | | importTimer.Elapsed += ImportTimer_Elapsed; |
| | | } |
| | | importTimer.Start(); |
| | | if (checkInTimer == null) |
| | | { |
| | | checkInTimer = new System.Timers.Timer(500); |
| | | checkInTimer.Elapsed += CheckInTimer_Elapsed; |
| | | } |
| | | checkInTimer.Start(); |
| | | } |
| | | |
| | | private void ImportTimer_Elapsed(object sender, ElapsedEventArgs e) |
| | | { |
| | | lock (importTimer) |
| | | { |
| | | ListenImportHandle(); |
| | | } |
| | | } |
| | | |
| | | private void CheckInTimer_Elapsed(object sender, ElapsedEventArgs e) |
| | | { |
| | | lock (checkInTimer) |
| | | { |
| | | ListenCheckInHandle(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 停止金蝶拦截任务 |
| | | /// </summary> |
| | | private void StopInterceptTimer() |
| | | { |
| | | /*if (intercepter != null) |
| | | { |
| | | intercepter.StopIntercept(); |
| | | intercepter = null; |
| | | }*/ |
| | | importTimer?.Stop(); |
| | | checkInTimer?.Stop(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插件返回正常时的处理 |
| | | /// </summary> |
| | | private void HandleNormal() |
| | | { |
| | | err_count = 0; |
| | | StopInterceptTimer(); |
| | | // alert.DoHide(); |
| | | } |
| | | |
| | | private bool IsSwRunning() |
| | | { |
| | | Process[] ps = Process.GetProcessesByName("SLDWORKS"); |
| | | bool IsRunning = (ps != null && ps.Length > 0); |
| | | log.Debug($"Sw Is Running: {IsRunning}"); |
| | | return IsRunning; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插件返回异常时的处理 |
| | | /// </summary> |
| | | private void HandleErr() |
| | | { |
| | | log.Debug($"err_count: {err_count}"); |
| | | if (++err_count > 3) |
| | | { |
| | | if (IsSwRunning()) |
| | | { |
| | | // 如果solidworks启动 |
| | | StartInterceptTimer(); |
| | | log.Debug("Ready to show Msg."); |
| | | AlertMsg("请启用插件并登录"); |
| | | err_count = 3; |
| | | } |
| | | else |
| | | { |
| | | HandleNormal(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 搜索是否有导入窗口,有就一直最小化,并执行规则检查 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void ListenImportHandle() |
| | | { |
| | | IntPtr ptr = WindowIntPtrUtil.FindWindow(null, "Everything");//导入文档 |
| | | if (ptr == IntPtr.Zero) |
| | | { |
| | | return; |
| | | } |
| | | WindowIntPtrUtil.KillProcessByIntPtr(ptr); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 搜索是否有检入窗口,有就一直最小化,并执行规则检查 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void ListenCheckInHandle() |
| | | { |
| | | IntPtr ptr = WindowIntPtrUtil.FindWindow(null, "检入文档"); |
| | | if (ptr == IntPtr.Zero) |
| | | { |
| | | return; |
| | | } |
| | | WindowIntPtrUtil.KillProcessByIntPtr(ptr); |
| | | } |
| | | |
| | | private void Timer_Elapsed(object sender, ElapsedEventArgs e) |
| | | { |
| | | socketTimer.Stop(); |
| | | try |
| | | { |
| | | if (!client.IsConnected) |
| | | { |
| | | client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5678)); |
| | | } |
| | | else |
| | | { |
| | | var msg = Encoding.Default.GetBytes("HeatBeat"); |
| | | client.Send(msg, 0, msg.Length); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | HandleErr(); |
| | | } |
| | | finally |
| | | { |
| | | socketTimer.Start(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 接收到消息 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_DataReceived(object sender, DataEventArgs e) |
| | | { |
| | | byte flag = e.Data[0]; |
| | | if (flag == 1) |
| | | { |
| | | HandleNormal(); |
| | | } |
| | | else |
| | | { |
| | | log.Error("Plugin Return 0."); |
| | | HandleErr(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 客户端关闭,视为异常 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_Closed(object sender, EventArgs e) |
| | | { |
| | | HandleErr(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 客户端异常 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_Error(object sender, ErrorEventArgs e) |
| | | { |
| | | HandleErr(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 连接后的操作 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_Connected(object sender, EventArgs e) |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
| | | <PropertyGroup> |
| | | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
| | | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
| | | <ProjectGuid>{E92EE4C3-A373-41FE-8234-2DB56E2C6DFA}</ProjectGuid> |
| | | <OutputType>WinExe</OutputType> |
| | | <RootNamespace>PluginListener</RootNamespace> |
| | | <AssemblyName>PluginListener</AssemblyName> |
| | | <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
| | | <WarningLevel>4</WarningLevel> |
| | | <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
| | | <Deterministic>true</Deterministic> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <DebugType>full</DebugType> |
| | | <Optimize>false</Optimize> |
| | | <OutputPath>bin\Debug\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugType>pdbonly</DebugType> |
| | | <Optimize>true</Optimize> |
| | | <OutputPath>bin\Release\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <OutputPath>..\PdmSw\bin\x64\Debug\Listener\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <DebugType>full</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> |
| | | <OutputPath>..\PdmSw\bin\x64\Release\Listener\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <Optimize>true</Optimize> |
| | | <DebugType>pdbonly</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup> |
| | | <TargetZone>LocalIntranet</TargetZone> |
| | | </PropertyGroup> |
| | | <PropertyGroup> |
| | | <GenerateManifests>false</GenerateManifests> |
| | | </PropertyGroup> |
| | | <PropertyGroup> |
| | | <ApplicationManifest>Properties\app.manifest</ApplicationManifest> |
| | | </PropertyGroup> |
| | | <PropertyGroup> |
| | | <StartupObject>PluginListener.Program</StartupObject> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.sldworks"> |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.sldworks.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SolidWorks.Interop.swconst"> |
| | | <HintPath>C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\api\redist\SolidWorks.Interop.swconst.dll</HintPath> |
| | | <EmbedInteropTypes>True</EmbedInteropTypes> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.ClientEngine, Version=0.10.0.0, Culture=neutral, PublicKeyToken=ee9af13f57f00acc, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.ClientEngine.0.10.0\lib\net45\SuperSocket.ClientEngine.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Common, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.Common.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Facility, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.Facility.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.ProtoBase, Version=1.7.0.17, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.ProtoBase.1.7.0.17\lib\net45\SuperSocket.ProtoBase.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketBase, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.SocketBase.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketEngine, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.Engine.1.6.6.1\lib\net45\SuperSocket.SocketEngine.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketService, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>packages\SuperSocket.Engine.1.6.6.1\lib\net45\SuperSocket.SocketService.exe</HintPath> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Collections.Specialized, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Collections.Specialized.4.3.0\lib\net46\System.Collections.Specialized.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.ComponentModel.Composition" /> |
| | | <Reference Include="System.Configuration" /> |
| | | <Reference Include="System.Configuration.Install" /> |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Management" /> |
| | | <Reference Include="System.Net.NameResolution, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Net.NameResolution.4.3.0\lib\net46\System.Net.NameResolution.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Net.Security, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Net.Security.4.3.0\lib\net46\System.Net.Security.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.ServiceProcess" /> |
| | | <Reference Include="System.Web.Extensions" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="Microsoft.CSharp" /> |
| | | <Reference Include="System.Core" /> |
| | | <Reference Include="System.Xml.Linq" /> |
| | | <Reference Include="System.Data.DataSetExtensions" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xaml"> |
| | | <RequiredTargetFramework>4.0</RequiredTargetFramework> |
| | | </Reference> |
| | | <Reference Include="WindowsBase" /> |
| | | <Reference Include="PresentationCore" /> |
| | | <Reference Include="PresentationFramework" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Alert.xaml.cs"> |
| | | <DependentUpon>Alert.xaml</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Listener.cs"> |
| | | <SubType>Component</SubType> |
| | | </Compile> |
| | | <Compile Include="Intercepter.cs" /> |
| | | <Compile Include="Program.cs" /> |
| | | <Compile Include="Util.cs" /> |
| | | <Compile Include="WindowUtil.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs"> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | <Compile Include="Properties\Resources.Designer.cs"> |
| | | <AutoGen>True</AutoGen> |
| | | <DesignTime>True</DesignTime> |
| | | <DependentUpon>Resources.resx</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Properties\Settings.Designer.cs"> |
| | | <AutoGen>True</AutoGen> |
| | | <DependentUpon>Settings.settings</DependentUpon> |
| | | <DesignTimeSharedInput>True</DesignTimeSharedInput> |
| | | </Compile> |
| | | <EmbeddedResource Include="Properties\Resources.resx"> |
| | | <Generator>ResXFileCodeGenerator</Generator> |
| | | <LastGenOutput>Resources.Designer.cs</LastGenOutput> |
| | | </EmbeddedResource> |
| | | <None Include="log4net.config"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </None> |
| | | <None Include="packages.config" /> |
| | | <None Include="Properties\app.manifest" /> |
| | | <None Include="Properties\Settings.settings"> |
| | | <Generator>SettingsSingleFileGenerator</Generator> |
| | | <LastGenOutput>Settings.Designer.cs</LastGenOutput> |
| | | </None> |
| | | <None Include="supersocket.cmd" /> |
| | | <None Include="supersocket.sh" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="App.config" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Page Include="Alert.xaml"> |
| | | <SubType>Designer</SubType> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | </Page> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <PropertyGroup> |
| | | <PostBuildEvent> |
| | | </PostBuildEvent> |
| | | </PropertyGroup> |
| | | </Project> |
New file |
| | |
| | | using log4net.Config; |
| | | using System; |
| | | using System.IO; |
| | | using System.Reflection; |
| | | using System.ServiceProcess; |
| | | |
| | | namespace PluginListener |
| | | { |
| | | public class Program |
| | | { /// <summary> |
| | | /// 应用程序的主入口点。 |
| | | /// </summary> |
| | | [STAThread] |
| | | public static void Main() |
| | | { |
| | | string assemblyFilePath = Assembly.GetExecutingAssembly().Location; |
| | | string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath); |
| | | string configFilePath = Path.Combine(assemblyDirPath,"log4net.config"); |
| | | XmlConfigurator.Configure(new FileInfo(configFilePath)); |
| | | |
| | | ServiceBase[] ServicesToRun; |
| | | ServicesToRun = new ServiceBase[] |
| | | { |
| | | new Listener() |
| | | }; |
| | | ServiceBase.Run(ServicesToRun); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // sc create "SolidWorks Listener" binpath= "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Debug\Listener\PluginListener.exe" type= interact type= own displayname= "SolidWorks Listener" |
| | | |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Resources; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | using System.Windows; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("PluginListener")] |
| | | [assembly: AssemblyDescription("")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("")] |
| | | [assembly: AssemblyProduct("PluginListener")] |
| | | [assembly: AssemblyCopyright("Copyright © 2024")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | //若要开始生成可本地化的应用程序,请设置 |
| | | //.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture> |
| | | //在 <PropertyGroup> 中。例如,如果你使用的是美国英语。 |
| | | //使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消 |
| | | //对以下 NeutralResourceLanguage 特性的注释。 更新 |
| | | //以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 |
| | | |
| | | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] |
| | | |
| | | |
| | | [assembly: ThemeInfo( |
| | | ResourceDictionaryLocation.None, //主题特定资源词典所处位置 |
| | | //(未在页面中找到资源时使用, |
| | | //或应用程序资源字典中找到时使用) |
| | | ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 |
| | | //(未在页面中找到资源时使用, |
| | | //、应用程序或任何主题专用资源字典中找到时使用) |
| | | )] |
| | | |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // 此代码由工具生成。 |
| | | // 运行时版本:4.0.30319.42000 |
| | | // |
| | | // 对此文件的更改可能会导致不正确的行为,并且如果 |
| | | // 重新生成代码,这些更改将会丢失。 |
| | | // </auto-generated> |
| | | //------------------------------------------------------------------------------ |
| | | |
| | | namespace PluginListener.Properties { |
| | | using System; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 一个强类型的资源类,用于查找本地化的字符串等。 |
| | | /// </summary> |
| | | // 此类是由 StronglyTypedResourceBuilder |
| | | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 |
| | | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen |
| | | // (以 /str 作为命令选项),或重新生成 VS 项目。 |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] |
| | | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
| | | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
| | | internal class Resources { |
| | | |
| | | private static global::System.Resources.ResourceManager resourceMan; |
| | | |
| | | private static global::System.Globalization.CultureInfo resourceCulture; |
| | | |
| | | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
| | | internal Resources() { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 返回此类使用的缓存的 ResourceManager 实例。 |
| | | /// </summary> |
| | | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
| | | internal static global::System.Resources.ResourceManager ResourceManager { |
| | | get { |
| | | if (object.ReferenceEquals(resourceMan, null)) { |
| | | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PluginListener.Properties.Resources", typeof(Resources).Assembly); |
| | | resourceMan = temp; |
| | | } |
| | | return resourceMan; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重写当前线程的 CurrentUICulture 属性,对 |
| | | /// 使用此强类型资源类的所有资源查找执行重写。 |
| | | /// </summary> |
| | | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
| | | internal static global::System.Globalization.CultureInfo Culture { |
| | | get { |
| | | return resourceCulture; |
| | | } |
| | | set { |
| | | resourceCulture = value; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <root> |
| | | <!-- |
| | | Microsoft ResX Schema |
| | | |
| | | Version 2.0 |
| | | |
| | | The primary goals of this format is to allow a simple XML format |
| | | that is mostly human readable. The generation and parsing of the |
| | | various data types are done through the TypeConverter classes |
| | | associated with the data types. |
| | | |
| | | Example: |
| | | |
| | | ... ado.net/XML headers & schema ... |
| | | <resheader name="resmimetype">text/microsoft-resx</resheader> |
| | | <resheader name="version">2.0</resheader> |
| | | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
| | | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
| | | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
| | | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
| | | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
| | | <value>[base64 mime encoded serialized .NET Framework object]</value> |
| | | </data> |
| | | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
| | | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
| | | <comment>This is a comment</comment> |
| | | </data> |
| | | |
| | | There are any number of "resheader" rows that contain simple |
| | | name/value pairs. |
| | | |
| | | Each data row contains a name, and value. The row also contains a |
| | | type or mimetype. Type corresponds to a .NET class that support |
| | | text/value conversion through the TypeConverter architecture. |
| | | Classes that don't support this are serialized and stored with the |
| | | mimetype set. |
| | | |
| | | The mimetype is used for serialized objects, and tells the |
| | | ResXResourceReader how to depersist the object. This is currently not |
| | | extensible. For a given mimetype the value must be set accordingly: |
| | | |
| | | Note - application/x-microsoft.net.object.binary.base64 is the format |
| | | that the ResXResourceWriter will generate, however the reader can |
| | | read any of the formats listed below. |
| | | |
| | | mimetype: application/x-microsoft.net.object.binary.base64 |
| | | value : The object must be serialized with |
| | | : System.Serialization.Formatters.Binary.BinaryFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.soap.base64 |
| | | value : The object must be serialized with |
| | | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.bytearray.base64 |
| | | value : The object must be serialized into a byte array |
| | | : using a System.ComponentModel.TypeConverter |
| | | : and then encoded with base64 encoding. |
| | | --> |
| | | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
| | | <xsd:element name="root" msdata:IsDataSet="true"> |
| | | <xsd:complexType> |
| | | <xsd:choice maxOccurs="unbounded"> |
| | | <xsd:element name="metadata"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | <xsd:attribute name="type" type="xsd:string" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="assembly"> |
| | | <xsd:complexType> |
| | | <xsd:attribute name="alias" type="xsd:string" /> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="data"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
| | | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="resheader"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" use="required" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:choice> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:schema> |
| | | <resheader name="resmimetype"> |
| | | <value>text/microsoft-resx</value> |
| | | </resheader> |
| | | <resheader name="version"> |
| | | <value>2.0</value> |
| | | </resheader> |
| | | <resheader name="reader"> |
| | | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | <resheader name="writer"> |
| | | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | </root> |
New file |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // 此代码由工具生成。 |
| | | // 运行时版本:4.0.30319.42000 |
| | | // |
| | | // 对此文件的更改可能会导致不正确的行为,并且如果 |
| | | // 重新生成代码,这些更改将会丢失。 |
| | | // </auto-generated> |
| | | //------------------------------------------------------------------------------ |
| | | |
| | | namespace PluginListener.Properties { |
| | | |
| | | |
| | | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.0.0")] |
| | | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { |
| | | |
| | | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
| | | |
| | | public static Settings Default { |
| | | get { |
| | | return defaultInstance; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version='1.0' encoding='utf-8'?> |
| | | <SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> |
| | | <Profiles> |
| | | <Profile Name="(Default)" /> |
| | | </Profiles> |
| | | <Settings /> |
| | | </SettingsFile> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> |
| | | <assemblyIdentity version="1.0.0.0" name="MyApplication.app" /> |
| | | <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> |
| | | <security> |
| | | <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> |
| | | <!-- UAC 清单选项 |
| | | 如果想要更改 Windows 用户帐户控制级别,请使用 |
| | | 以下节点之一替换 requestedExecutionLevel 节点。 |
| | | |
| | | <requestedExecutionLevel level="asInvoker" uiAccess="false" /> |
| | | <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> |
| | | <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> |
| | | |
| | | 指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。 |
| | | 如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此 |
| | | 元素。 |
| | | --> |
| | | <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> |
| | | </requestedPrivileges> |
| | | <applicationRequestMinimum> |
| | | <defaultAssemblyRequest permissionSetReference="Custom" /> |
| | | <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" /> |
| | | </applicationRequestMinimum> |
| | | </security> |
| | | </trustInfo> |
| | | <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> |
| | | <application> |
| | | <!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的 |
| | | Windows 版本的列表。取消评论适当的元素, |
| | | Windows 将自动选择最兼容的环境。 --> |
| | | <!-- Windows Vista --> |
| | | <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />--> |
| | | <!-- Windows 7 --> |
| | | <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />--> |
| | | <!-- Windows 8 --> |
| | | <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />--> |
| | | <!-- Windows 8.1 --> |
| | | <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />--> |
| | | <!-- Windows 10 --> |
| | | <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />--> |
| | | </application> |
| | | </compatibility> |
| | | <!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行 |
| | | 自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需 |
| | | 选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应 |
| | | 在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。 |
| | | |
| | | 将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation --> |
| | | <!-- |
| | | <application xmlns="urn:schemas-microsoft-com:asm.v3"> |
| | | <windowsSettings> |
| | | <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> |
| | | <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware> |
| | | </windowsSettings> |
| | | </application> |
| | | --> |
| | | <!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) --> |
| | | <!-- |
| | | <dependency> |
| | | <dependentAssembly> |
| | | <assemblyIdentity |
| | | type="win32" |
| | | name="Microsoft.Windows.Common-Controls" |
| | | version="6.0.0.0" |
| | | processorArchitecture="*" |
| | | publicKeyToken="6595b64144ccf1df" |
| | | language="*" |
| | | /> |
| | | </dependentAssembly> |
| | | </dependency> |
| | | --> |
| | | </assembly> |
New file |
| | |
| | | using System; |
| | | using System.Runtime.InteropServices; |
| | | |
| | | namespace PluginListener |
| | | { |
| | | public class WinAPI_Interop |
| | | { |
| | | public static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero; |
| | | /// <summary> |
| | | /// 服务程序执行消息提示,前台MessageBox.Show |
| | | /// </summary> |
| | | /// <param name="message">消息内容</param> |
| | | /// <param name="title">标题</param> |
| | | public static void ShowServiceMessage(string message, string title) |
| | | { |
| | | int resp = 0; |
| | | WTSSendMessage(WTS_CURRENT_SERVER_HANDLE, WTSGetActiveConsoleSessionId(), title, title.Length, message, message.Length, 0, 0, out resp, false); |
| | | } |
| | | |
| | | [DllImport("kernel32.dll", SetLastError = true)] |
| | | public static extern int WTSGetActiveConsoleSessionId(); |
| | | |
| | | [DllImport("wtsapi32.dll", SetLastError = true)] |
| | | public static extern bool WTSSendMessage(IntPtr hServer, int SessionId, String pTitle, int TitleLength, String pMessage, int MessageLength, int Style, int Timeout, out int pResponse, bool bWait); |
| | | #region P/Invoke WTS APIs |
| | | private enum WTS_CONNECTSTATE_CLASS |
| | | { |
| | | WTSActive, |
| | | WTSConnected, |
| | | WTSConnectQuery, |
| | | WTSShadow, |
| | | WTSDisconnected, |
| | | WTSIdle, |
| | | WTSListen, |
| | | WTSReset, |
| | | WTSDown, |
| | | WTSInit |
| | | } |
| | | |
| | | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] |
| | | private struct WTS_SESSION_INFO |
| | | { |
| | | public UInt32 SessionID; |
| | | public string pWinStationName; |
| | | public WTS_CONNECTSTATE_CLASS State; |
| | | } |
| | | |
| | | [DllImport("WTSAPI32.DLL", SetLastError = true, CharSet = CharSet.Auto)] |
| | | static extern bool WTSEnumerateSessions( |
| | | IntPtr hServer, |
| | | [MarshalAs(UnmanagedType.U4)] UInt32 Reserved, |
| | | [MarshalAs(UnmanagedType.U4)] UInt32 Version, |
| | | ref IntPtr ppSessionInfo, |
| | | [MarshalAs(UnmanagedType.U4)] ref UInt32 pSessionInfoCount |
| | | ); |
| | | |
| | | [DllImport("WTSAPI32.DLL", SetLastError = true, CharSet = CharSet.Auto)] |
| | | static extern void WTSFreeMemory(IntPtr pMemory); |
| | | |
| | | [DllImport("WTSAPI32.DLL", SetLastError = true, CharSet = CharSet.Auto)] |
| | | static extern bool WTSQueryUserToken(UInt32 sessionId, out IntPtr Token); |
| | | #endregion |
| | | |
| | | #region P/Invoke CreateProcessAsUser |
| | | /// <summary> |
| | | /// Struct, Enum and P/Invoke Declarations for CreateProcessAsUser. |
| | | /// </summary> |
| | | /// |
| | | |
| | | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] |
| | | struct STARTUPINFO |
| | | { |
| | | public Int32 cb; |
| | | public string lpReserved; |
| | | public string lpDesktop; |
| | | public string lpTitle; |
| | | public Int32 dwX; |
| | | public Int32 dwY; |
| | | public Int32 dwXSize; |
| | | public Int32 dwYSize; |
| | | public Int32 dwXCountChars; |
| | | public Int32 dwYCountChars; |
| | | public Int32 dwFillAttribute; |
| | | public Int32 dwFlags; |
| | | public Int16 wShowWindow; |
| | | public Int16 cbReserved2; |
| | | public IntPtr lpReserved2; |
| | | public IntPtr hStdInput; |
| | | public IntPtr hStdOutput; |
| | | public IntPtr hStdError; |
| | | } |
| | | |
| | | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] |
| | | struct PROCESS_INFORMATION |
| | | { |
| | | public IntPtr hProcess; |
| | | public IntPtr hThread; |
| | | public int dwProcessId; |
| | | public int dwThreadId; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 以当前登录的windows用户(角色权限)运行指定程序进程 |
| | | /// </summary> |
| | | /// <param name="hToken"></param> |
| | | /// <param name="lpApplicationName">指定程序(全路径)</param> |
| | | /// <param name="lpCommandLine">参数</param> |
| | | /// <param name="lpProcessAttributes">进程属性</param> |
| | | /// <param name="lpThreadAttributes">线程属性</param> |
| | | /// <param name="bInheritHandles"></param> |
| | | /// <param name="dwCreationFlags"></param> |
| | | /// <param name="lpEnvironment"></param> |
| | | /// <param name="lpCurrentDirectory"></param> |
| | | /// <param name="lpStartupInfo">程序启动属性</param> |
| | | /// <param name="lpProcessInformation">最后返回的进程信息</param> |
| | | /// <returns>是否调用成功</returns> |
| | | [DllImport("ADVAPI32.DLL", SetLastError = true, CharSet = CharSet.Auto)] |
| | | static extern bool CreateProcessAsUser(IntPtr hToken, string lpApplicationName, string lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, |
| | | bool bInheritHandles, uint dwCreationFlags, string lpEnvironment, string lpCurrentDirectory, |
| | | ref STARTUPINFO lpStartupInfo, out PROCESS_INFORMATION lpProcessInformation); |
| | | |
| | | [DllImport("KERNEL32.DLL", SetLastError = true, CharSet = CharSet.Auto)] |
| | | static extern bool CloseHandle(IntPtr hHandle); |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 以当前登录系统的用户角色权限启动指定的进程 |
| | | /// </summary> |
| | | /// <param name="ChildProcName">指定的进程(全路径)</param> |
| | | public static void CreateProcess(string ChildProcName) |
| | | { |
| | | IntPtr ppSessionInfo = IntPtr.Zero; |
| | | UInt32 SessionCount = 0; |
| | | if (WTSEnumerateSessions( |
| | | (IntPtr)WTS_CURRENT_SERVER_HANDLE, // Current RD Session Host Server handle would be zero. |
| | | 0, // This reserved parameter must be zero. |
| | | 1, // The version of the enumeration request must be 1. |
| | | ref ppSessionInfo, // This would point to an array of session info. |
| | | ref SessionCount // This would indicate the length of the above array. |
| | | )) |
| | | { |
| | | for (int nCount = 0; nCount < SessionCount; nCount++) |
| | | { |
| | | WTS_SESSION_INFO tSessionInfo = (WTS_SESSION_INFO)Marshal.PtrToStructure(ppSessionInfo + nCount * Marshal.SizeOf(typeof(WTS_SESSION_INFO)), typeof(WTS_SESSION_INFO)); |
| | | if (WTS_CONNECTSTATE_CLASS.WTSActive == tSessionInfo.State) |
| | | { |
| | | IntPtr hToken = IntPtr.Zero; |
| | | if (WTSQueryUserToken(tSessionInfo.SessionID, out hToken)) |
| | | { |
| | | PROCESS_INFORMATION tProcessInfo; |
| | | STARTUPINFO tStartUpInfo = new STARTUPINFO(); |
| | | tStartUpInfo.cb = Marshal.SizeOf(typeof(STARTUPINFO)); |
| | | bool ChildProcStarted = CreateProcessAsUser( |
| | | hToken, // Token of the logged-on user. |
| | | ChildProcName, // Name of the process to be started. |
| | | null, // Any command line arguments to be passed. |
| | | IntPtr.Zero, // Default Process' attributes. |
| | | IntPtr.Zero, // Default Thread's attributes. |
| | | false, // Does NOT inherit parent's handles. |
| | | 0, // No any specific creation flag. |
| | | null, // Default environment path. |
| | | null, // Default current directory. |
| | | ref tStartUpInfo, // Process Startup Info. |
| | | out tProcessInfo // Process information to be returned. |
| | | ); |
| | | if (ChildProcStarted) |
| | | { |
| | | CloseHandle(tProcessInfo.hThread); |
| | | CloseHandle(tProcessInfo.hProcess); |
| | | } |
| | | else |
| | | { |
| | | ShowServiceMessage("CreateProcessAsUser失败", "CreateProcess"); |
| | | } |
| | | CloseHandle(hToken); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | WTSFreeMemory(ppSessionInfo); |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Runtime.InteropServices; |
| | | namespace PluginListener |
| | | { |
| | | public class WindowIntPtrUtil |
| | | { |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern IntPtr FindWindow(string className, string windowName); |
| | | |
| | | [DllImport("user32.dll")] |
| | | public static extern IntPtr FindWindowByProcessId(int processId, int threadId); |
| | | |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern uint GetWindowThreadProcessId(IntPtr ptr, out uint processId); |
| | | |
| | | /// <summary> |
| | | /// 操作窗口 1是激活 6是最小化 |
| | | /// </summary> |
| | | /// <param name="ptr"></param> |
| | | /// <param name="command">1是激活 6是最小化</param> |
| | | /// <returns></returns> |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern bool ShowWindow(IntPtr ptr, int command); |
| | | |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern bool SendMessage(IntPtr ptr, UInt32 Msg, IntPtr wParam, IntPtr lParam); |
| | | |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern bool PostMessage(IntPtr ptr, UInt32 Msg, IntPtr wParam, IntPtr lParam); |
| | | |
| | | public static void KillProcessByIntPtr(IntPtr ptr) |
| | | { |
| | | //GetWindowThreadProcessId(ptr, out uint processId); |
| | | //if (processId == 0) return; |
| | | //Process process = Process.GetProcessById((int)processId); |
| | | //process.Kill(); |
| | | //process.WaitForExit(); |
| | | CloseWindow(ptr); |
| | | } |
| | | |
| | | public static void CloseWindow(IntPtr ptr) |
| | | { |
| | | SendMessage(ptr, (UInt32)0x0010, IntPtr.Zero, IntPtr.Zero); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <log4net> |
| | | <!-- 控制台日志配置 --> |
| | | <appender name="Console" type="log4net.Appender.ConsoleAppender"> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | |
| | | <!-- 文件存储日志配置 --> |
| | | <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> |
| | | <!-- 保存文件的名称 --> |
| | | <file value="./Log/" /> |
| | | <appendToFile value="true" /> |
| | | <rollingStyle value="Date" /> |
| | | <datePattern value="'log_'yyyyMMdd'.log'"/> |
| | | <staticLogFileName value="false"/> |
| | | |
| | | <!-- 文件的编码方式 --> |
| | | <param name="Encoding" value="UTF-8"/> |
| | | <!-- 每个文件的大小 --> |
| | | <maximumFileSize value="100KB" /> |
| | | <!-- 保存文件数量 --> |
| | | <maxSizeRollBackups value="2" /> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%date{ISO8601} [%logger] %level %class - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | |
| | | <root> |
| | | <level value="DEBUG" /> |
| | | <appender-ref ref="Console" /> |
| | | <appender-ref ref="RollingFile" /> |
| | | </root> |
| | | </log4net> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="log4net" version="2.0.3" targetFramework="net472" /> |
| | | <package id="SuperSocket" version="1.6.6.1" targetFramework="net472" /> |
| | | <package id="SuperSocket.ClientEngine" version="0.10.0" targetFramework="net472" /> |
| | | <package id="SuperSocket.Engine" version="1.6.6.1" targetFramework="net472" /> |
| | | <package id="SuperSocket.ProtoBase" version="1.7.0.17" targetFramework="net472" /> |
| | | <package id="System.Collections.Specialized" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.IO" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Linq" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Net.NameResolution" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Net.Security" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Net.Sockets" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Runtime" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Text.Encoding" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Threading" version="4.3.0" targetFramework="net472" /> |
| | | </packages> |
New file |
| | |
| | | @echo off |
| | | SuperSocket.SocketService.exe -c %1 %2 |
New file |
| | |
| | | #!/bin/bash |
| | | mono SuperSocket.SocketService.exe -c $1 $2 |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8" ?> |
| | | <configuration> |
| | | <startup> |
| | | <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> |
| | | </startup> |
| | | </configuration> |
New file |
| | |
| | | <Application x:Class="SolidWorksListener.App" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:local="clr-namespace:SolidWorksListener" |
| | | Startup="Application_Startup"> |
| | | <Application.Resources> |
| | | |
| | | </Application.Resources> |
| | | </Application> |
New file |
| | |
| | | using System.Windows; |
| | | |
| | | namespace SolidWorksListener |
| | | { |
| | | /// <summary> |
| | | /// App.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class App : Application |
| | | { |
| | | public static Listener listener; |
| | | private static System.Threading.Mutex mutex; |
| | | //系统能够识别有名称的互斥,因此可以使用它禁止应用程序启动两次 |
| | | //第二个参数可以设置为产品的名称:Application.ProductName |
| | | // 每次启动应用程序,都会验证名称为OnlyRun的互斥是否存在 |
| | | protected override void OnStartup(StartupEventArgs e) |
| | | { |
| | | mutex = new System.Threading.Mutex(true, Application.Current.ToString()); |
| | | if (mutex.WaitOne(0, false)) |
| | | { |
| | | base.OnStartup(e); |
| | | } |
| | | else |
| | | { |
| | | this.Shutdown(); |
| | | } |
| | | } |
| | | |
| | | private void Application_Startup(object sender, StartupEventArgs e) |
| | | { |
| | | listener = new Listener(); |
| | | listener.Start(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using log4net; |
| | | using SuperSocket.ClientEngine; |
| | | using System; |
| | | using System.Diagnostics; |
| | | using System.IO; |
| | | using System.Net; |
| | | using System.Reflection; |
| | | using System.Runtime.InteropServices; |
| | | using System.Text; |
| | | using System.Timers; |
| | | using System.Windows; |
| | | |
| | | namespace SolidWorksListener |
| | | { |
| | | public class Listener |
| | | { |
| | | private ILog log = LogManager.GetLogger("Listener"); |
| | | private AsyncTcpSession client; |
| | | |
| | | private long err_count; |
| | | |
| | | private System.Timers.Timer socketTimer; |
| | | private System.Timers.Timer importTimer; |
| | | private System.Timers.Timer checkInTimer; |
| | | |
| | | private volatile int is_open = int.MaxValue; |
| | | |
| | | private int msgInterval = 5000; |
| | | |
| | | #region 消息 |
| | | public static IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero; |
| | | |
| | | public void ShowMessageBox(string message, string title) |
| | | { |
| | | /*if (is_open == 0) |
| | | { |
| | | return; |
| | | }*/ |
| | | is_open = 0; |
| | | int res; |
| | | WTSSendMessage( |
| | | WTS_CURRENT_SERVER_HANDLE, |
| | | WTSGetActiveConsoleSessionId(), |
| | | title, title.Length, |
| | | message, message.Length, |
| | | 0, 0, out res, true); |
| | | is_open = res; |
| | | } |
| | | |
| | | [DllImport("kernel32.dll", SetLastError = true)] |
| | | public static extern int WTSGetActiveConsoleSessionId(); |
| | | |
| | | [DllImport("wtsapi32.dll", SetLastError = true)] |
| | | public static extern bool WTSSendMessage( |
| | | IntPtr hServer, |
| | | int SessionId, |
| | | String pTitle, |
| | | int TitleLength, |
| | | String pMessage, |
| | | int MessageLength, |
| | | int Style, |
| | | int Timeout, |
| | | out int pResponse, |
| | | bool bWait); |
| | | #endregion |
| | | |
| | | private void AlertMsg(string msg) |
| | | { |
| | | /// 内置WPF的 不能用 |
| | | // alert.Open(msg); |
| | | |
| | | /*try |
| | | { |
| | | // SwApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.28"); |
| | | var swApp = (SldWorks)System.Runtime.InteropServices.Marshal.GetActiveObject("SldWorks.Application"); |
| | | swApp.SendMsgToUser2(msg, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); |
| | | Marshal.ReleaseComObject(swApp); |
| | | } |
| | | catch (COMException ex) |
| | | { |
| | | log.Error("Attach Sw Failed.", ex); |
| | | }*/ |
| | | |
| | | // WinAPI_Interop.ShowServiceMessage(msg, "提示"); |
| | | // ShowMessageBox(msg, "提示"); |
| | | string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); |
| | | string alertPath = Path.GetFullPath(Path.Combine(exeDir,"..","Alert.exe")); |
| | | if (File.Exists(alertPath)) |
| | | { |
| | | Process.Start(alertPath); |
| | | } |
| | | else |
| | | { |
| | | MessageBox.Show(msg, "提示"); |
| | | } |
| | | |
| | | /// 用MessageBox的 不能用 |
| | | /*if (swApp == null) |
| | | { |
| | | int res; |
| | | WTSSendMessage( |
| | | WTS_CURRENT_SERVER_HANDLE, |
| | | WTSGetActiveConsoleSessionId(),//获得当前显示的桌面所在的SessionID |
| | | "提示", "提示".Length, |
| | | msg, msg.Length, |
| | | 0, 0, out res, false); |
| | | } |
| | | else |
| | | { |
| | | swApp.SendMsgToUser2(msg, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); |
| | | }*/ |
| | | |
| | | // |
| | | |
| | | ///启动exe的 |
| | | /*ProcessStartInfo psi = new ProcessStartInfo |
| | | { |
| | | FileName = "AlertWindow.exe", |
| | | UseShellExecute = false, |
| | | CreateNoWindow = true |
| | | }; |
| | | Process process = Process.Start(psi);*/ |
| | | } |
| | | |
| | | public Listener() |
| | | { |
| | | client = new AsyncTcpSession(); |
| | | client.Connected += Client_Connected; |
| | | client.Error += Client_Error; |
| | | client.Closed += Client_Closed; |
| | | client.DataReceived += Client_DataReceived; |
| | | log.Info("Service Started."); |
| | | } |
| | | |
| | | public void Start() |
| | | { |
| | | InitSocketTimer(); |
| | | } |
| | | |
| | | public void Stop() |
| | | { |
| | | socketTimer?.Stop(); |
| | | StopInterceptTimer(); |
| | | // alert.DoClose(); |
| | | // if (intercepter != null) intercepter.StopIntercept(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 启动Socket定时器 |
| | | /// </summary> |
| | | public void InitSocketTimer() |
| | | { |
| | | log.Info("Starting Socket Timer..."); |
| | | socketTimer = new System.Timers.Timer(msgInterval); |
| | | socketTimer.Elapsed += Timer_Elapsed; |
| | | socketTimer.Enabled = true; |
| | | socketTimer.Start(); |
| | | log.Info("Started Socket Timer!"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 启动金蝶拦截任务 |
| | | /// </summary> |
| | | public void StartInterceptTimer() |
| | | { |
| | | // if (intercepter == null) intercepter = new Intercepter(ListenImportHandle, ListenCheckInHandle); |
| | | if (importTimer == null) |
| | | { |
| | | importTimer = new System.Timers.Timer(500); |
| | | importTimer.Elapsed += ImportTimer_Elapsed; |
| | | } |
| | | importTimer.Start(); |
| | | if (checkInTimer == null) |
| | | { |
| | | checkInTimer = new System.Timers.Timer(500); |
| | | checkInTimer.Elapsed += CheckInTimer_Elapsed; |
| | | } |
| | | checkInTimer.Start(); |
| | | } |
| | | |
| | | private void ImportTimer_Elapsed(object sender, ElapsedEventArgs e) |
| | | { |
| | | lock (importTimer) |
| | | { |
| | | ListenImportHandle(); |
| | | } |
| | | } |
| | | |
| | | private void CheckInTimer_Elapsed(object sender, ElapsedEventArgs e) |
| | | { |
| | | lock (checkInTimer) |
| | | { |
| | | ListenCheckInHandle(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 停止金蝶拦截任务 |
| | | /// </summary> |
| | | private void StopInterceptTimer() |
| | | { |
| | | /*if (intercepter != null) |
| | | { |
| | | intercepter.StopIntercept(); |
| | | intercepter = null; |
| | | }*/ |
| | | importTimer?.Stop(); |
| | | checkInTimer?.Stop(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插件返回正常时的处理 |
| | | /// </summary> |
| | | private void HandleNormal() |
| | | { |
| | | err_count = 0; |
| | | StopInterceptTimer(); |
| | | // alert.DoHide(); |
| | | } |
| | | |
| | | private bool IsSwRunning() |
| | | { |
| | | Process[] ps = Process.GetProcessesByName("SLDWORKS"); |
| | | bool IsRunning = (ps != null && ps.Length > 0); |
| | | log.Debug($"Sw Is Running: {IsRunning}"); |
| | | return IsRunning; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插件返回异常时的处理 |
| | | /// </summary> |
| | | private void HandleErr() |
| | | { |
| | | log.Debug($"err_count: {err_count}"); |
| | | if (++err_count > 3) |
| | | { |
| | | if (IsSwRunning()) |
| | | { |
| | | // 如果solidworks启动 |
| | | StartInterceptTimer(); |
| | | log.Debug("Ready to show Msg."); |
| | | AlertMsg("请启用插件并登录"); |
| | | err_count = 3; |
| | | } |
| | | else |
| | | { |
| | | HandleNormal(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 搜索是否有导入窗口,有就一直最小化,并执行规则检查 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void ListenImportHandle() |
| | | { |
| | | IntPtr ptr = WindowIntPtrUtil.FindWindow(null, "Everything");//导入文档 |
| | | if (ptr == IntPtr.Zero) |
| | | { |
| | | return; |
| | | } |
| | | WindowIntPtrUtil.KillProcessByIntPtr(ptr); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 搜索是否有检入窗口,有就一直最小化,并执行规则检查 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void ListenCheckInHandle() |
| | | { |
| | | IntPtr ptr = WindowIntPtrUtil.FindWindow(null, "检入文档"); |
| | | if (ptr == IntPtr.Zero) |
| | | { |
| | | return; |
| | | } |
| | | WindowIntPtrUtil.KillProcessByIntPtr(ptr); |
| | | } |
| | | |
| | | private void Timer_Elapsed(object sender, ElapsedEventArgs e) |
| | | { |
| | | socketTimer.Stop(); |
| | | try |
| | | { |
| | | if (!client.IsConnected) |
| | | { |
| | | client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5678)); |
| | | } |
| | | else |
| | | { |
| | | var msg = Encoding.Default.GetBytes("HeatBeat"); |
| | | client.Send(msg, 0, msg.Length); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | HandleErr(); |
| | | } |
| | | finally |
| | | { |
| | | socketTimer.Start(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 接收到消息 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_DataReceived(object sender, DataEventArgs e) |
| | | { |
| | | byte flag = e.Data[0]; |
| | | if (flag == 1) |
| | | { |
| | | HandleNormal(); |
| | | } |
| | | else |
| | | { |
| | | log.Error("Plugin Return 0."); |
| | | HandleErr(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 客户端关闭,视为异常 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_Closed(object sender, EventArgs e) |
| | | { |
| | | HandleErr(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 客户端异常 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_Error(object sender, SuperSocket.ClientEngine.ErrorEventArgs e) |
| | | { |
| | | HandleErr(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 连接后的操作 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void Client_Connected(object sender, EventArgs e) |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Resources; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | using System.Windows; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("SolidWorksListener")] |
| | | [assembly: AssemblyDescription("")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("")] |
| | | [assembly: AssemblyProduct("SolidWorksListener")] |
| | | [assembly: AssemblyCopyright("Copyright © 2024")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | //若要开始生成可本地化的应用程序,请设置 |
| | | //.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture> |
| | | //在 <PropertyGroup> 中。例如,如果你使用的是美国英语。 |
| | | //使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消 |
| | | //对以下 NeutralResourceLanguage 特性的注释。 更新 |
| | | //以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 |
| | | |
| | | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] |
| | | |
| | | |
| | | [assembly: ThemeInfo( |
| | | ResourceDictionaryLocation.None, //主题特定资源词典所处位置 |
| | | //(未在页面中找到资源时使用, |
| | | //或应用程序资源字典中找到时使用) |
| | | ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 |
| | | //(未在页面中找到资源时使用, |
| | | //、应用程序或任何主题专用资源字典中找到时使用) |
| | | )] |
| | | |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // 此代码由工具生成。 |
| | | // 运行时版本: 4.0.30319.42000 |
| | | // |
| | | // 对此文件的更改可能导致不正确的行为,如果 |
| | | // 重新生成代码,则所做更改将丢失。 |
| | | // </auto-generated> |
| | | //------------------------------------------------------------------------------ |
| | | |
| | | namespace SolidWorksListener.Properties |
| | | { |
| | | |
| | | |
| | | /// <summary> |
| | | /// 强类型资源类,用于查找本地化字符串等。 |
| | | /// </summary> |
| | | // 此类是由 StronglyTypedResourceBuilder |
| | | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 |
| | | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen |
| | | // (以 /str 作为命令选项),或重新生成 VS 项目。 |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] |
| | | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
| | | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
| | | internal class Resources |
| | | { |
| | | |
| | | private static global::System.Resources.ResourceManager resourceMan; |
| | | |
| | | private static global::System.Globalization.CultureInfo resourceCulture; |
| | | |
| | | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
| | | internal Resources() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 返回此类使用的缓存 ResourceManager 实例。 |
| | | /// </summary> |
| | | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
| | | internal static global::System.Resources.ResourceManager ResourceManager |
| | | { |
| | | get |
| | | { |
| | | if ((resourceMan == null)) |
| | | { |
| | | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SolidWorksListener.Properties.Resources", typeof(Resources).Assembly); |
| | | resourceMan = temp; |
| | | } |
| | | return resourceMan; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重写当前线程的 CurrentUICulture 属性,对 |
| | | /// 使用此强类型资源类的所有资源查找执行重写。 |
| | | /// </summary> |
| | | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
| | | internal static global::System.Globalization.CultureInfo Culture |
| | | { |
| | | get |
| | | { |
| | | return resourceCulture; |
| | | } |
| | | set |
| | | { |
| | | resourceCulture = value; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <root> |
| | | <!-- |
| | | Microsoft ResX Schema |
| | | |
| | | Version 2.0 |
| | | |
| | | The primary goals of this format is to allow a simple XML format |
| | | that is mostly human readable. The generation and parsing of the |
| | | various data types are done through the TypeConverter classes |
| | | associated with the data types. |
| | | |
| | | Example: |
| | | |
| | | ... ado.net/XML headers & schema ... |
| | | <resheader name="resmimetype">text/microsoft-resx</resheader> |
| | | <resheader name="version">2.0</resheader> |
| | | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
| | | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
| | | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
| | | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
| | | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
| | | <value>[base64 mime encoded serialized .NET Framework object]</value> |
| | | </data> |
| | | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
| | | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
| | | <comment>This is a comment</comment> |
| | | </data> |
| | | |
| | | There are any number of "resheader" rows that contain simple |
| | | name/value pairs. |
| | | |
| | | Each data row contains a name, and value. The row also contains a |
| | | type or mimetype. Type corresponds to a .NET class that support |
| | | text/value conversion through the TypeConverter architecture. |
| | | Classes that don't support this are serialized and stored with the |
| | | mimetype set. |
| | | |
| | | The mimetype is used for serialized objects, and tells the |
| | | ResXResourceReader how to depersist the object. This is currently not |
| | | extensible. For a given mimetype the value must be set accordingly: |
| | | |
| | | Note - application/x-microsoft.net.object.binary.base64 is the format |
| | | that the ResXResourceWriter will generate, however the reader can |
| | | read any of the formats listed below. |
| | | |
| | | mimetype: application/x-microsoft.net.object.binary.base64 |
| | | value : The object must be serialized with |
| | | : System.Serialization.Formatters.Binary.BinaryFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.soap.base64 |
| | | value : The object must be serialized with |
| | | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.bytearray.base64 |
| | | value : The object must be serialized into a byte array |
| | | : using a System.ComponentModel.TypeConverter |
| | | : and then encoded with base64 encoding. |
| | | --> |
| | | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
| | | <xsd:element name="root" msdata:IsDataSet="true"> |
| | | <xsd:complexType> |
| | | <xsd:choice maxOccurs="unbounded"> |
| | | <xsd:element name="metadata"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | <xsd:attribute name="type" type="xsd:string" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="assembly"> |
| | | <xsd:complexType> |
| | | <xsd:attribute name="alias" type="xsd:string" /> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="data"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
| | | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="resheader"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" use="required" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:choice> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:schema> |
| | | <resheader name="resmimetype"> |
| | | <value>text/microsoft-resx</value> |
| | | </resheader> |
| | | <resheader name="version"> |
| | | <value>2.0</value> |
| | | </resheader> |
| | | <resheader name="reader"> |
| | | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | <resheader name="writer"> |
| | | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | </root> |
New file |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // This code was generated by a tool. |
| | | // Runtime Version:4.0.30319.42000 |
| | | // |
| | | // Changes to this file may cause incorrect behavior and will be lost if |
| | | // the code is regenerated. |
| | | // </auto-generated> |
| | | //------------------------------------------------------------------------------ |
| | | |
| | | namespace SolidWorksListener.Properties |
| | | { |
| | | |
| | | |
| | | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] |
| | | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase |
| | | { |
| | | |
| | | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
| | | |
| | | public static Settings Default |
| | | { |
| | | get |
| | | { |
| | | return defaultInstance; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version='1.0' encoding='utf-8'?> |
| | | <SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> |
| | | <Profiles> |
| | | <Profile Name="(Default)" /> |
| | | </Profiles> |
| | | <Settings /> |
| | | </SettingsFile> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
| | | <PropertyGroup> |
| | | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
| | | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
| | | <ProjectGuid>{CB3551F6-0C4A-4537-9A04-1E40CD475479}</ProjectGuid> |
| | | <OutputType>WinExe</OutputType> |
| | | <RootNamespace>SolidWorksListener</RootNamespace> |
| | | <AssemblyName>SolidWorksListener</AssemblyName> |
| | | <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
| | | <WarningLevel>4</WarningLevel> |
| | | <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
| | | <Deterministic>true</Deterministic> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <DebugType>full</DebugType> |
| | | <Optimize>false</Optimize> |
| | | <OutputPath>bin\Debug\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugType>pdbonly</DebugType> |
| | | <Optimize>true</Optimize> |
| | | <OutputPath>..\PdmSw\bin\x64\Release\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <OutputPath>..\PdmSw\bin\x64\Debug\Listener\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <DebugType>full</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> |
| | | <OutputPath>..\PdmSw\bin\x64\Release\Listener\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <Optimize>true</Optimize> |
| | | <DebugType>pdbonly</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.ClientEngine, Version=0.10.0.0, Culture=neutral, PublicKeyToken=ee9af13f57f00acc, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\SuperSocket.ClientEngine.Core.0.10.0\lib\net45\SuperSocket.ClientEngine.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Common, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.Common.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.Facility, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.Facility.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="SuperSocket.SocketBase, Version=1.6.6.1, Culture=neutral, PublicKeyToken=6c80000676988ebb, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\SuperSocket.1.6.6.1\lib\net45\SuperSocket.SocketBase.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Collections.Specialized, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Collections.Specialized.4.3.0\lib\net46\System.Collections.Specialized.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.ComponentModel.Composition" /> |
| | | <Reference Include="System.Configuration" /> |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Net.NameResolution, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Net.NameResolution.4.3.0\lib\net46\System.Net.NameResolution.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Net.Security, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Net.Security.4.3.0\lib\net46\System.Net.Security.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| | | <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath> |
| | | <Private>True</Private> |
| | | <Private>True</Private> |
| | | </Reference> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="Microsoft.CSharp" /> |
| | | <Reference Include="System.Core" /> |
| | | <Reference Include="System.Xml.Linq" /> |
| | | <Reference Include="System.Data.DataSetExtensions" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xaml"> |
| | | <RequiredTargetFramework>4.0</RequiredTargetFramework> |
| | | </Reference> |
| | | <Reference Include="WindowsBase" /> |
| | | <Reference Include="PresentationCore" /> |
| | | <Reference Include="PresentationFramework" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ApplicationDefinition Include="App.xaml"> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | <SubType>Designer</SubType> |
| | | </ApplicationDefinition> |
| | | <Compile Include="App.xaml.cs"> |
| | | <DependentUpon>App.xaml</DependentUpon> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | <Compile Include="WindowUtil.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Listener.cs" /> |
| | | <Compile Include="Properties\AssemblyInfo.cs"> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | <Compile Include="Properties\Resources.Designer.cs"> |
| | | <AutoGen>True</AutoGen> |
| | | <DesignTime>True</DesignTime> |
| | | <DependentUpon>Resources.resx</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Properties\Settings.Designer.cs"> |
| | | <AutoGen>True</AutoGen> |
| | | <DependentUpon>Settings.settings</DependentUpon> |
| | | <DesignTimeSharedInput>True</DesignTimeSharedInput> |
| | | </Compile> |
| | | <EmbeddedResource Include="Properties\Resources.resx"> |
| | | <Generator>ResXFileCodeGenerator</Generator> |
| | | <LastGenOutput>Resources.Designer.cs</LastGenOutput> |
| | | </EmbeddedResource> |
| | | <None Include="log4net.config"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </None> |
| | | <None Include="packages.config" /> |
| | | <None Include="Properties\Settings.settings"> |
| | | <Generator>SettingsSingleFileGenerator</Generator> |
| | | <LastGenOutput>Settings.Designer.cs</LastGenOutput> |
| | | </None> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="App.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | </Project> |
New file |
| | |
| | | using System; |
| | | using System.Runtime.InteropServices; |
| | | namespace SolidWorksListener |
| | | { |
| | | public class WindowIntPtrUtil |
| | | { |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern IntPtr FindWindow(string className, string windowName); |
| | | |
| | | [DllImport("user32.dll")] |
| | | public static extern IntPtr FindWindowByProcessId(int processId, int threadId); |
| | | |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern uint GetWindowThreadProcessId(IntPtr ptr, out uint processId); |
| | | |
| | | /// <summary> |
| | | /// 操作窗口 1是激活 6是最小化 |
| | | /// </summary> |
| | | /// <param name="ptr"></param> |
| | | /// <param name="command">1是激活 6是最小化</param> |
| | | /// <returns></returns> |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern bool ShowWindow(IntPtr ptr, int command); |
| | | |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern bool SendMessage(IntPtr ptr, UInt32 Msg, IntPtr wParam, IntPtr lParam); |
| | | |
| | | [DllImport("user32.dll", SetLastError = true)] |
| | | public static extern bool PostMessage(IntPtr ptr, UInt32 Msg, IntPtr wParam, IntPtr lParam); |
| | | |
| | | public static void KillProcessByIntPtr(IntPtr ptr) |
| | | { |
| | | //GetWindowThreadProcessId(ptr, out uint processId); |
| | | //if (processId == 0) return; |
| | | //Process process = Process.GetProcessById((int)processId); |
| | | //process.Kill(); |
| | | //process.WaitForExit(); |
| | | CloseWindow(ptr); |
| | | } |
| | | |
| | | public static void CloseWindow(IntPtr ptr) |
| | | { |
| | | SendMessage(ptr, (UInt32)0x0010, IntPtr.Zero, IntPtr.Zero); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <log4net> |
| | | <!-- 控制台日志配置 --> |
| | | <appender name="Console" type="log4net.Appender.ConsoleAppender"> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | |
| | | <!-- 文件存储日志配置 --> |
| | | <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> |
| | | <!-- 保存文件的名称 --> |
| | | <file value="./Log/" /> |
| | | <appendToFile value="true" /> |
| | | <rollingStyle value="Date" /> |
| | | <datePattern value="'log_'yyyyMMdd'.log'"/> |
| | | <staticLogFileName value="false"/> |
| | | |
| | | <!-- 文件的编码方式 --> |
| | | <param name="Encoding" value="UTF-8"/> |
| | | <!-- 每个文件的大小 --> |
| | | <maximumFileSize value="100KB" /> |
| | | <!-- 保存文件数量 --> |
| | | <maxSizeRollBackups value="2" /> |
| | | <!-- 日志输出格式 --> |
| | | <layout type="log4net.Layout.PatternLayout"> |
| | | <conversionPattern value="%date{ISO8601} [%logger] %level %class - %message%newline" /> |
| | | </layout> |
| | | </appender> |
| | | |
| | | <root> |
| | | <level value="DEBUG" /> |
| | | <appender-ref ref="Console" /> |
| | | <appender-ref ref="RollingFile" /> |
| | | </root> |
| | | </log4net> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="log4net" version="2.0.3" targetFramework="net472" /> |
| | | <package id="SuperSocket" version="1.6.6.1" targetFramework="net472" /> |
| | | <package id="SuperSocket.ClientEngine.Core" version="0.10.0" targetFramework="net472" /> |
| | | <package id="System.Collections.Specialized" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.IO" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Linq" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Net.NameResolution" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Net.Security" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Net.Sockets" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Runtime" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" /> |
| | | <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net472" /> |
| | | </packages> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8" ?> |
| | | <configuration> |
| | | <startup> |
| | | <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> |
| | | </startup> |
| | | </configuration> |
New file |
| | |
| | | <Application x:Class="SolidWorksListenerAlert.App" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:local="clr-namespace:SolidWorksListenerAlert" |
| | | StartupUri="MainWindow.xaml"> |
| | | <Application.Resources> |
| | | |
| | | </Application.Resources> |
| | | </Application> |
New file |
| | |
| | | using System.Windows; |
| | | |
| | | namespace SolidWorksListenerAlert |
| | | { |
| | | /// <summary> |
| | | /// App.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class App : Application |
| | | { |
| | | private static System.Threading.Mutex mutex; |
| | | //系统能够识别有名称的互斥,因此可以使用它禁止应用程序启动两次 |
| | | //第二个参数可以设置为产品的名称:Application.ProductName |
| | | // 每次启动应用程序,都会验证名称为OnlyRun的互斥是否存在 |
| | | protected override void OnStartup(StartupEventArgs e) |
| | | { |
| | | mutex = new System.Threading.Mutex(true, Application.Current.ToString()); |
| | | if (mutex.WaitOne(0, false)) |
| | | { |
| | | base.OnStartup(e); |
| | | } |
| | | else |
| | | { |
| | | this.Shutdown(); |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <Window x:Class="SolidWorksListenerAlert.MainWindow" |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
| | | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
| | | xmlns:local="clr-namespace:SolidWorksListenerAlert" |
| | | mc:Ignorable="d" |
| | | Topmost="True" |
| | | ShowInTaskbar="False" |
| | | ResizeMode="NoResize" |
| | | WindowStartupLocation="CenterScreen" |
| | | WindowStyle="ToolWindow" |
| | | Title="提示" Height="150" Width="200"> |
| | | <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> |
| | | <Label Margin="0,0,0,20">请启用插件并登录!</Label> |
| | | <Button Click="Button_Click" Padding="8">我知道了</Button> |
| | | </StackPanel> |
| | | </Window> |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using System.Windows.Data; |
| | | using System.Windows.Documents; |
| | | using System.Windows.Input; |
| | | using System.Windows.Media; |
| | | using System.Windows.Media.Imaging; |
| | | using System.Windows.Navigation; |
| | | using System.Windows.Shapes; |
| | | |
| | | namespace SolidWorksListenerAlert |
| | | { |
| | | /// <summary> |
| | | /// MainWindow.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class MainWindow : Window |
| | | { |
| | | public MainWindow() |
| | | { |
| | | Icon = new DrawingImage(); |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | Close(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Resources; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | using System.Windows; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("SolidWorksListenerAlert")] |
| | | [assembly: AssemblyDescription("")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("")] |
| | | [assembly: AssemblyProduct("SolidWorksListenerAlert")] |
| | | [assembly: AssemblyCopyright("Copyright © 2024")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | //若要开始生成可本地化的应用程序,请设置 |
| | | //.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture> |
| | | //在 <PropertyGroup> 中。例如,如果你使用的是美国英语。 |
| | | //使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消 |
| | | //对以下 NeutralResourceLanguage 特性的注释。 更新 |
| | | //以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 |
| | | |
| | | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] |
| | | |
| | | |
| | | [assembly: ThemeInfo( |
| | | ResourceDictionaryLocation.None, //主题特定资源词典所处位置 |
| | | //(未在页面中找到资源时使用, |
| | | //或应用程序资源字典中找到时使用) |
| | | ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 |
| | | //(未在页面中找到资源时使用, |
| | | //、应用程序或任何主题专用资源字典中找到时使用) |
| | | )] |
| | | |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // 此代码由工具生成。 |
| | | // 运行时版本: 4.0.30319.42000 |
| | | // |
| | | // 对此文件的更改可能导致不正确的行为,如果 |
| | | // 重新生成代码,则所做更改将丢失。 |
| | | // </auto-generated> |
| | | //------------------------------------------------------------------------------ |
| | | |
| | | namespace SolidWorksListenerAlert.Properties |
| | | { |
| | | |
| | | |
| | | /// <summary> |
| | | /// 强类型资源类,用于查找本地化字符串等。 |
| | | /// </summary> |
| | | // 此类是由 StronglyTypedResourceBuilder |
| | | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 |
| | | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen |
| | | // (以 /str 作为命令选项),或重新生成 VS 项目。 |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] |
| | | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
| | | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
| | | internal class Resources |
| | | { |
| | | |
| | | private static global::System.Resources.ResourceManager resourceMan; |
| | | |
| | | private static global::System.Globalization.CultureInfo resourceCulture; |
| | | |
| | | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
| | | internal Resources() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 返回此类使用的缓存 ResourceManager 实例。 |
| | | /// </summary> |
| | | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
| | | internal static global::System.Resources.ResourceManager ResourceManager |
| | | { |
| | | get |
| | | { |
| | | if ((resourceMan == null)) |
| | | { |
| | | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SolidWorksListenerAlert.Properties.Resources", typeof(Resources).Assembly); |
| | | resourceMan = temp; |
| | | } |
| | | return resourceMan; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重写当前线程的 CurrentUICulture 属性,对 |
| | | /// 使用此强类型资源类的所有资源查找执行重写。 |
| | | /// </summary> |
| | | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
| | | internal static global::System.Globalization.CultureInfo Culture |
| | | { |
| | | get |
| | | { |
| | | return resourceCulture; |
| | | } |
| | | set |
| | | { |
| | | resourceCulture = value; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <root> |
| | | <!-- |
| | | Microsoft ResX Schema |
| | | |
| | | Version 2.0 |
| | | |
| | | The primary goals of this format is to allow a simple XML format |
| | | that is mostly human readable. The generation and parsing of the |
| | | various data types are done through the TypeConverter classes |
| | | associated with the data types. |
| | | |
| | | Example: |
| | | |
| | | ... ado.net/XML headers & schema ... |
| | | <resheader name="resmimetype">text/microsoft-resx</resheader> |
| | | <resheader name="version">2.0</resheader> |
| | | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
| | | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
| | | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
| | | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
| | | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
| | | <value>[base64 mime encoded serialized .NET Framework object]</value> |
| | | </data> |
| | | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
| | | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
| | | <comment>This is a comment</comment> |
| | | </data> |
| | | |
| | | There are any number of "resheader" rows that contain simple |
| | | name/value pairs. |
| | | |
| | | Each data row contains a name, and value. The row also contains a |
| | | type or mimetype. Type corresponds to a .NET class that support |
| | | text/value conversion through the TypeConverter architecture. |
| | | Classes that don't support this are serialized and stored with the |
| | | mimetype set. |
| | | |
| | | The mimetype is used for serialized objects, and tells the |
| | | ResXResourceReader how to depersist the object. This is currently not |
| | | extensible. For a given mimetype the value must be set accordingly: |
| | | |
| | | Note - application/x-microsoft.net.object.binary.base64 is the format |
| | | that the ResXResourceWriter will generate, however the reader can |
| | | read any of the formats listed below. |
| | | |
| | | mimetype: application/x-microsoft.net.object.binary.base64 |
| | | value : The object must be serialized with |
| | | : System.Serialization.Formatters.Binary.BinaryFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.soap.base64 |
| | | value : The object must be serialized with |
| | | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
| | | : and then encoded with base64 encoding. |
| | | |
| | | mimetype: application/x-microsoft.net.object.bytearray.base64 |
| | | value : The object must be serialized into a byte array |
| | | : using a System.ComponentModel.TypeConverter |
| | | : and then encoded with base64 encoding. |
| | | --> |
| | | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
| | | <xsd:element name="root" msdata:IsDataSet="true"> |
| | | <xsd:complexType> |
| | | <xsd:choice maxOccurs="unbounded"> |
| | | <xsd:element name="metadata"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | <xsd:attribute name="type" type="xsd:string" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="assembly"> |
| | | <xsd:complexType> |
| | | <xsd:attribute name="alias" type="xsd:string" /> |
| | | <xsd:attribute name="name" type="xsd:string" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="data"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
| | | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
| | | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | <xsd:element name="resheader"> |
| | | <xsd:complexType> |
| | | <xsd:sequence> |
| | | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
| | | </xsd:sequence> |
| | | <xsd:attribute name="name" type="xsd:string" use="required" /> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:choice> |
| | | </xsd:complexType> |
| | | </xsd:element> |
| | | </xsd:schema> |
| | | <resheader name="resmimetype"> |
| | | <value>text/microsoft-resx</value> |
| | | </resheader> |
| | | <resheader name="version"> |
| | | <value>2.0</value> |
| | | </resheader> |
| | | <resheader name="reader"> |
| | | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | <resheader name="writer"> |
| | | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
| | | </resheader> |
| | | </root> |
New file |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // This code was generated by a tool. |
| | | // Runtime Version:4.0.30319.42000 |
| | | // |
| | | // Changes to this file may cause incorrect behavior and will be lost if |
| | | // the code is regenerated. |
| | | // </auto-generated> |
| | | //------------------------------------------------------------------------------ |
| | | |
| | | namespace SolidWorksListenerAlert.Properties |
| | | { |
| | | |
| | | |
| | | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] |
| | | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase |
| | | { |
| | | |
| | | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
| | | |
| | | public static Settings Default |
| | | { |
| | | get |
| | | { |
| | | return defaultInstance; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version='1.0' encoding='utf-8'?> |
| | | <SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> |
| | | <Profiles> |
| | | <Profile Name="(Default)" /> |
| | | </Profiles> |
| | | <Settings /> |
| | | </SettingsFile> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
| | | <PropertyGroup> |
| | | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
| | | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
| | | <ProjectGuid>{201D10C1-DC69-4B1A-B759-876E1B94A2BA}</ProjectGuid> |
| | | <OutputType>WinExe</OutputType> |
| | | <RootNamespace>SolidWorksListenerAlert</RootNamespace> |
| | | <AssemblyName>Alert</AssemblyName> |
| | | <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
| | | <WarningLevel>4</WarningLevel> |
| | | <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> |
| | | <Deterministic>true</Deterministic> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <DebugType>full</DebugType> |
| | | <Optimize>false</Optimize> |
| | | <OutputPath>bin\Debug\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
| | | <PlatformTarget>AnyCPU</PlatformTarget> |
| | | <DebugType>pdbonly</DebugType> |
| | | <Optimize>true</Optimize> |
| | | <OutputPath>bin\Release\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
| | | <DebugSymbols>true</DebugSymbols> |
| | | <OutputPath>..\PdmSw\bin\x64\Debug\</OutputPath> |
| | | <DefineConstants>DEBUG;TRACE</DefineConstants> |
| | | <DebugType>full</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> |
| | | <OutputPath>..\PdmSw\bin\x64\Release\</OutputPath> |
| | | <DefineConstants>TRACE</DefineConstants> |
| | | <Optimize>true</Optimize> |
| | | <DebugType>pdbonly</DebugType> |
| | | <PlatformTarget>x64</PlatformTarget> |
| | | <LangVersion>7.3</LangVersion> |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <Prefer32Bit>true</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="Microsoft.CSharp" /> |
| | | <Reference Include="System.Core" /> |
| | | <Reference Include="System.Xml.Linq" /> |
| | | <Reference Include="System.Data.DataSetExtensions" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xaml"> |
| | | <RequiredTargetFramework>4.0</RequiredTargetFramework> |
| | | </Reference> |
| | | <Reference Include="WindowsBase" /> |
| | | <Reference Include="PresentationCore" /> |
| | | <Reference Include="PresentationFramework" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ApplicationDefinition Include="App.xaml"> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | <SubType>Designer</SubType> |
| | | </ApplicationDefinition> |
| | | <Page Include="MainWindow.xaml"> |
| | | <Generator>MSBuild:Compile</Generator> |
| | | <SubType>Designer</SubType> |
| | | </Page> |
| | | <Compile Include="App.xaml.cs"> |
| | | <DependentUpon>App.xaml</DependentUpon> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | <Compile Include="MainWindow.xaml.cs"> |
| | | <DependentUpon>MainWindow.xaml</DependentUpon> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs"> |
| | | <SubType>Code</SubType> |
| | | </Compile> |
| | | <Compile Include="Properties\Resources.Designer.cs"> |
| | | <AutoGen>True</AutoGen> |
| | | <DesignTime>True</DesignTime> |
| | | <DependentUpon>Resources.resx</DependentUpon> |
| | | </Compile> |
| | | <Compile Include="Properties\Settings.Designer.cs"> |
| | | <AutoGen>True</AutoGen> |
| | | <DependentUpon>Settings.settings</DependentUpon> |
| | | <DesignTimeSharedInput>True</DesignTimeSharedInput> |
| | | </Compile> |
| | | <EmbeddedResource Include="Properties\Resources.resx"> |
| | | <Generator>ResXFileCodeGenerator</Generator> |
| | | <LastGenOutput>Resources.Designer.cs</LastGenOutput> |
| | | </EmbeddedResource> |
| | | <None Include="Properties\Settings.settings"> |
| | | <Generator>SettingsSingleFileGenerator</Generator> |
| | | <LastGenOutput>Settings.Designer.cs</LastGenOutput> |
| | | </None> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="App.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | </Project> |
| | |
| | | {"RootPath":"D:\\Workspace\\PdmSwPlugin2\\WpfUI","ProjectFileName":"WpfUI.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"AsyncAttacher.cs"},{"SourceFile":"Form1.cs"},{"SourceFile":"Form1.Designer.cs"},{"SourceFile":"Window1.xaml.cs"},{"SourceFile":"App.xaml.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\obj\\Debug\\Window1.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\obj\\Debug\\App.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\obj\\Debug\\WpfUI_Content.g.cs"}],"References":[{"Reference":"D:\\Workspace\\PdmSwPlugin2\\lib\\Interop.EModelView.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\lib\\log4net.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\IIS\\Microsoft Web Deploy V3\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\bin\\Debug\\PdmSwPlugin.Common.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\bin\\Debug\\PdmSwPlugin.Common.dll"},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\bin\\Debug\\PdmSwPlugin.Main.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\bin\\Debug\\PdmSwPlugin.Main.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.sldworks.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swconst.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swdocumentmgr.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swpublished.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\solidworkstools.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\PublicAssemblies\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsFormsIntegration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\bin\\Debug\\WpfUI.exe","OutputItemRelativePath":"WpfUI.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} |
| | | {"RootPath":"D:\\Workspace\\PdmSwPlugin2\\WpfUI","ProjectFileName":"WpfUI.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"AsyncAttacher.cs"},{"SourceFile":"Form1.cs"},{"SourceFile":"Form1.Designer.cs"},{"SourceFile":"Window1.xaml.cs"},{"SourceFile":"App.xaml.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\obj\\x64\\Debug\\Window1.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\obj\\x64\\Debug\\App.g.cs"},{"SourceFile":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\obj\\x64\\Debug\\WpfUI_Content.g.cs"}],"References":[{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\DuEDrawingControl.1.0.2\\lib\\net461\\DuEDrawingControl.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\lib\\Interop.EModelView.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\lib\\log4net.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Bcl.AsyncInterfaces.7.0.0\\lib\\net462\\Microsoft.Bcl.AsyncInterfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.DependencyInjection.Abstractions.7.0.0\\lib\\net462\\Microsoft.Extensions.DependencyInjection.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.DependencyInjection.7.0.0\\lib\\net462\\Microsoft.Extensions.DependencyInjection.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.Http.7.0.0\\lib\\net462\\Microsoft.Extensions.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.Logging.Abstractions.7.0.0\\lib\\net462\\Microsoft.Extensions.Logging.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.Logging.7.0.0\\lib\\net462\\Microsoft.Extensions.Logging.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.Options.7.0.0\\lib\\net462\\Microsoft.Extensions.Options.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Microsoft.Extensions.Primitives.7.0.0\\lib\\net462\\Microsoft.Extensions.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\bin\\x64\\Debug\\PdmSwPlugin.Common.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Common\\bin\\x64\\Debug\\PdmSwPlugin.Common.dll"},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\bin\\x64\\Debug\\PdmSwPlugin.Main.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\Workspace\\PdmSwPlugin2\\PdmSwPlugin.Main\\bin\\x64\\Debug\\PdmSwPlugin.Main.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.sldworks.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swconst.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swdocumentmgr.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\api\\redist\\SolidWorks.Interop.swpublished.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\SOLIDWORKS Corp\\SOLIDWORKS\\solidworkstools.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Buffers.4.5.1\\lib\\net461\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Diagnostics.DiagnosticSource.7.0.0\\lib\\net462\\System.Diagnostics.DiagnosticSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Memory.4.5.5\\lib\\net461\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Numerics.Vectors.4.5.0\\lib\\net46\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Runtime.CompilerServices.Unsafe.6.0.0\\lib\\net461\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Text.Encodings.Web.7.0.0\\lib\\net462\\System.Text.Encodings.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.Threading.Tasks.Extensions.4.5.4\\lib\\net461\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Workspace\\PdmSwPlugin2\\PdmSw\\packages\\System.ValueTuple.4.5.0\\lib\\net47\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsFormsIntegration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Workspace\\PdmSwPlugin2\\WpfUI\\bin\\x64\\Debug\\WpfUI.exe","OutputItemRelativePath":"WpfUI.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} |
| | |
| | | GlobalConfig = PluginSetting.Instance; |
| | | } |
| | | |
| | | |
| | | |
| | | private void Button_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | if (SwApp != null) |
| | |
| | | mainControl = new MainControl(SwApp); |
| | | mainControl.Loaded += MainControl_Loaded; |
| | | stack.Children.Add(mainControl); |
| | | |
| | | |
| | | } |
| | | catch (COMException ex) |
| | | { |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <doc> |
| | | <assembly> |
| | | <name>SuperSocket.Common</name> |
| | | </assembly> |
| | | <members> |
| | | <member name="P:SuperSocket.Common.ArraySegmentEx`1.Array"> |
| | | <summary> |
| | | Gets the array. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ArraySegmentEx`1.Count"> |
| | | <summary> |
| | | Gets the count. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ArraySegmentEx`1.Offset"> |
| | | <summary> |
| | | Gets the offset. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ArraySegmentList`1"> |
| | | <summary> |
| | | ArraySegmentList |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.#ctor"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.ArraySegmentList`1"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.IndexOf(`0)"> |
| | | <summary> |
| | | Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"/>. |
| | | </summary> |
| | | <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"/>.</param> |
| | | <returns> |
| | | The index of <paramref name="item"/> if found in the list; otherwise, -1. |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.Insert(System.Int32,`0)"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.RemoveAt(System.Int32)"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.Add(`0)"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.Clear"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.Contains(`0)"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.CopyTo(`0[],System.Int32)"> |
| | | <summary> |
| | | Copies to. |
| | | </summary> |
| | | <param name="array">The array.</param> |
| | | <param name="arrayIndex">Index of the array.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.Remove(`0)"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.GetEnumerator"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.System#Collections#IEnumerable#GetEnumerator"> |
| | | <summary> |
| | | NotSupported |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.RemoveSegmentAt(System.Int32)"> |
| | | <summary> |
| | | Removes the segment at. |
| | | </summary> |
| | | <param name="index">The index.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.AddSegment(`0[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Adds the segment to the list. |
| | | </summary> |
| | | <param name="array">The array.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.AddSegment(`0[],System.Int32,System.Int32,System.Boolean)"> |
| | | <summary> |
| | | Adds the segment to the list. |
| | | </summary> |
| | | <param name="array">The array.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.ClearSegements"> |
| | | <summary> |
| | | Clears all the segements. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.ToArrayData"> |
| | | <summary> |
| | | Read all data in this list to the array data. |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.ToArrayData(System.Int32,System.Int32)"> |
| | | <summary> |
| | | Read the data in specific range to the array data. |
| | | </summary> |
| | | <param name="startIndex">The start index.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.TrimEnd(System.Int32)"> |
| | | <summary> |
| | | Trims the end. |
| | | </summary> |
| | | <param name="trimSize">Size of the trim.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.SearchLastSegment(SuperSocket.Common.SearchMarkState{`0})"> |
| | | <summary> |
| | | Searches the last segment. |
| | | </summary> |
| | | <param name="state">The state.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.CopyTo(`0[])"> |
| | | <summary> |
| | | Copies to. |
| | | </summary> |
| | | <param name="to">To.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList`1.CopyTo(`0[],System.Int32,System.Int32,System.Int32)"> |
| | | <summary> |
| | | Copies to. |
| | | </summary> |
| | | <param name="to">To.</param> |
| | | <param name="srcIndex">Index of the SRC.</param> |
| | | <param name="toIndex">To index.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ArraySegmentList`1.Item(System.Int32)"> |
| | | <summary> |
| | | Gets or sets the element at the specified index. |
| | | </summary> |
| | | <returns> |
| | | The element at the specified index. |
| | | </returns> |
| | | |
| | | <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"/>. |
| | | </exception> |
| | | |
| | | <exception cref="T:System.NotSupportedException"> |
| | | The property is set and the <see cref="T:System.Collections.Generic.IList`1"/> is read-only. |
| | | </exception> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ArraySegmentList`1.Count"> |
| | | <summary> |
| | | Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>. |
| | | </summary> |
| | | <returns> |
| | | The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>. |
| | | </returns> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ArraySegmentList`1.IsReadOnly"> |
| | | <summary> |
| | | Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. |
| | | </summary> |
| | | <returns>true if the <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only; otherwise, false. |
| | | </returns> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ArraySegmentList`1.SegmentCount"> |
| | | <summary> |
| | | Gets the segment count. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ArraySegmentList"> |
| | | <summary> |
| | | ArraySegmentList |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList.Decode(System.Text.Encoding)"> |
| | | <summary> |
| | | Decodes bytes to string by the specified encoding. |
| | | </summary> |
| | | <param name="encoding">The encoding.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList.Decode(System.Text.Encoding,System.Int32,System.Int32)"> |
| | | <summary> |
| | | Decodes bytes to string by the specified encoding. |
| | | </summary> |
| | | <param name="encoding">The encoding.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ArraySegmentList.DecodeMask(System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Decodes data by the mask. |
| | | </summary> |
| | | <param name="mask">The mask.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.AssemblyUtil"> |
| | | <summary> |
| | | Assembly Util Class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.CreateInstance``1(System.String)"> |
| | | <summary> |
| | | Creates the instance from type name. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="type">The type.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.CreateInstance``1(System.String,System.Object[])"> |
| | | <summary> |
| | | Creates the instance from type name and parameters. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="type">The type.</param> |
| | | <param name="parameters">The parameters.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.GetType(System.String,System.Boolean,System.Boolean)"> |
| | | <summary> |
| | | Gets the type by the full name, also return matched generic type without checking generic type parameters in the name. |
| | | </summary> |
| | | <param name="fullTypeName">Full name of the type.</param> |
| | | <param name="throwOnError">if set to <c>true</c> [throw on error].</param> |
| | | <param name="ignoreCase">if set to <c>true</c> [ignore case].</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.GetImplementTypes``1(System.Reflection.Assembly)"> |
| | | <summary> |
| | | Gets the implement types from assembly. |
| | | </summary> |
| | | <typeparam name="TBaseType">The type of the base type.</typeparam> |
| | | <param name="assembly">The assembly.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.GetImplementedObjectsByInterface``1(System.Reflection.Assembly)"> |
| | | <summary> |
| | | Gets the implemented objects by interface. |
| | | </summary> |
| | | <typeparam name="TBaseInterface">The type of the base interface.</typeparam> |
| | | <param name="assembly">The assembly.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.GetImplementedObjectsByInterface``1(System.Reflection.Assembly,System.Type)"> |
| | | <summary> |
| | | Gets the implemented objects by interface. |
| | | </summary> |
| | | <typeparam name="TBaseInterface">The type of the base interface.</typeparam> |
| | | <param name="assembly">The assembly.</param> |
| | | <param name="targetType">Type of the target.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.BinaryClone``1(``0)"> |
| | | <summary> |
| | | Clone object in binary format. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="target">The target.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.CopyPropertiesTo``1(``0,``0)"> |
| | | <summary> |
| | | Copies the properties of one object to another object. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="target">The target.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.CopyPropertiesTo``1(``0,System.Predicate{System.Reflection.PropertyInfo},``0)"> |
| | | <summary> |
| | | Copies the properties of one object to another object. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="predict">The properties predict.</param> |
| | | <param name="target">The target.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.GetAssembliesFromString(System.String)"> |
| | | <summary> |
| | | Gets the assemblies from string. |
| | | </summary> |
| | | <param name="assemblyDef">The assembly def.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.AssemblyUtil.GetAssembliesFromStrings(System.String[])"> |
| | | <summary> |
| | | Gets the assemblies from strings. |
| | | </summary> |
| | | <param name="assemblies">The assemblies.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.BinaryUtil"> |
| | | <summary> |
| | | Binary util class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.IndexOf``1(System.Collections.Generic.IList{``0},``0,System.Int32,System.Int32)"> |
| | | <summary> |
| | | Search target from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="target">The target.</param> |
| | | <param name="pos">The pos.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},``0[],System.Int32@)"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="mark">The mark.</param> |
| | | <param name="parsedLength">Length of the parsed.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},``0[])"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="mark">The mark.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0[])"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="mark">The mark.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0[],System.Int32@)"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="mark">The mark.</param> |
| | | <param name="parsedLength">Length of the parsed.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0[],System.Int32)"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="mark">The mark.</param> |
| | | <param name="matched">The matched.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0[],System.Int32,System.Int32@)"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="mark">The mark.</param> |
| | | <param name="matched">The matched.</param> |
| | | <param name="parsedLength">Length of the parsed.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,SuperSocket.Common.SearchMarkState{``0},System.Int32@)"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="searchState">State of the search.</param> |
| | | <param name="parsedLength">Length of the parsed.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.SearchMark``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,SuperSocket.Common.SearchMarkState{``0})"> |
| | | <summary> |
| | | Searches the mark from source. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="searchState">State of the search.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.StartsWith``1(System.Collections.Generic.IList{``0},``0[])"> |
| | | <summary> |
| | | Startses the with. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="mark">The mark.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.StartsWith``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0[])"> |
| | | <summary> |
| | | Startses the with. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="mark">The mark.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.EndsWith``1(System.Collections.Generic.IList{``0},``0[])"> |
| | | <summary> |
| | | Endses the with. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="mark">The mark.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.EndsWith``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0[])"> |
| | | <summary> |
| | | Endses the with. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="mark">The mark.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BinaryUtil.CloneRange``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32)"> |
| | | <summary> |
| | | Clones the elements in the specific range. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="source">The source.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.BufferManager"> |
| | | <summary> |
| | | This class creates a single large buffer which can be divided up and assigned to SocketAsyncEventArgs objects for use |
| | | with each socket I/O operation. This enables bufffers to be easily reused and gaurds against fragmenting heap memory. |
| | | |
| | | The operations exposed on the BufferManager class are not thread safe. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BufferManager.#ctor(System.Int32,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.BufferManager"/> class. |
| | | </summary> |
| | | <param name="totalBytes">The total bytes.</param> |
| | | <param name="bufferSize">Size of the buffer.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BufferManager.InitBuffer"> |
| | | <summary> |
| | | Allocates buffer space used by the buffer pool |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BufferManager.SetBuffer(System.Net.Sockets.SocketAsyncEventArgs)"> |
| | | <summary> |
| | | Assigns a buffer from the buffer pool to the specified SocketAsyncEventArgs object |
| | | </summary> |
| | | <returns>true if the buffer was successfully set, else false</returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.BufferManager.FreeBuffer(System.Net.Sockets.SocketAsyncEventArgs)"> |
| | | <summary> |
| | | Removes the buffer from a SocketAsyncEventArg object. This frees the buffer back to the |
| | | buffer pool |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ConfigurationElementBase"> |
| | | <summary> |
| | | ConfigurationElementBase |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.#ctor"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.ConfigurationElementBase"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.#ctor(System.Boolean)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.ConfigurationElementBase"/> class. |
| | | </summary> |
| | | <param name="nameRequired">if set to <c>true</c> [name required].</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.DeserializeElement(System.Xml.XmlReader,System.Boolean)"> |
| | | <summary> |
| | | Reads XML from the configuration file. |
| | | </summary> |
| | | <param name="reader">The <see cref="T:System.Xml.XmlReader"/> that reads from the configuration file.</param> |
| | | <param name="serializeCollectionKey">true to serialize only the collection key properties; otherwise, false.</param> |
| | | <exception cref="T:System.Configuration.ConfigurationErrorsException">The element to read is locked.- or -An attribute of the current node is not recognized.- or -The lock status of the current node cannot be determined. </exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.OnDeserializeUnrecognizedAttribute(System.String,System.String)"> |
| | | <summary> |
| | | Gets a value indicating whether an unknown attribute is encountered during deserialization. |
| | | </summary> |
| | | <param name="name">The name of the unrecognized attribute.</param> |
| | | <param name="value">The value of the unrecognized attribute.</param> |
| | | <returns> |
| | | true when an unknown attribute is encountered while deserializing; otherwise, false. |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.Unmerge(System.Configuration.ConfigurationElement,System.Configuration.ConfigurationElement,System.Configuration.ConfigurationSaveMode)"> |
| | | <summary> |
| | | Modifies the <see cref="T:System.Configuration.ConfigurationElement" /> object to remove all values that should not be saved. |
| | | </summary> |
| | | <param name="sourceElement">A <see cref="T:System.Configuration.ConfigurationElement" /> at the current level containing a merged view of the properties.</param> |
| | | <param name="parentElement">The parent <see cref="T:System.Configuration.ConfigurationElement" />, or null if this is the top level.</param> |
| | | <param name="saveMode">A <see cref="T:System.Configuration.ConfigurationSaveMode" /> that determines which property values to include.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.SerializeElement(System.Xml.XmlWriter,System.Boolean)"> |
| | | <summary> |
| | | Writes the contents of this configuration element to the configuration file when implemented in a derived class. |
| | | </summary> |
| | | <param name="writer">The <see cref="T:System.Xml.XmlWriter" /> that writes to the configuration file.</param> |
| | | <param name="serializeCollectionKey">true to serialize only the collection key properties; otherwise, false.</param> |
| | | <returns> |
| | | true if any data was actually serialized; otherwise, false. |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationElementBase.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)"> |
| | | <summary> |
| | | Gets a value indicating whether an unknown element is encountered during deserialization. |
| | | </summary> |
| | | <param name="elementName">The name of the unknown subelement.</param> |
| | | <param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.</param> |
| | | <returns> |
| | | true when an unknown element is encountered while deserializing; otherwise, false. |
| | | </returns> |
| | | <exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.- or -One or more of the element's attributes is locked.- or -<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.- or -The element has a Boolean attribute with an invalid value.- or -An attempt was made to deserialize a property more than once.- or -An attempt was made to deserialize a property that is not a valid member of the element.- or -The element cannot contain a CDATA or text element.</exception> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ConfigurationElementBase.Name"> |
| | | <summary> |
| | | Gets the name. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ConfigurationElementBase.Options"> |
| | | <summary> |
| | | Gets the options. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ConfigurationElementBase.OptionElements"> |
| | | <summary> |
| | | Gets the option elements. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ConfigurationExtension"> |
| | | <summary> |
| | | Configuration extension class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.GetValue(System.Collections.Specialized.NameValueCollection,System.String)"> |
| | | <summary> |
| | | Gets the value from namevalue collection by key. |
| | | </summary> |
| | | <param name="collection">The collection.</param> |
| | | <param name="key">The key.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.GetValue(System.Collections.Specialized.NameValueCollection,System.String,System.String)"> |
| | | <summary> |
| | | Gets the value from namevalue collection by key. |
| | | </summary> |
| | | <param name="collection">The collection.</param> |
| | | <param name="key">The key.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.Deserialize``1(``0,System.Xml.XmlReader)"> |
| | | <summary> |
| | | Deserializes the specified configuration section. |
| | | </summary> |
| | | <typeparam name="TElement">The type of the element.</typeparam> |
| | | <param name="section">The section.</param> |
| | | <param name="reader">The reader.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.DeserializeChildConfig``1(System.String)"> |
| | | <summary> |
| | | Deserializes the child configuration. |
| | | </summary> |
| | | <typeparam name="TConfig">The type of the configuration.</typeparam> |
| | | <param name="childConfig">The child configuration string.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.GetChildConfig``1(System.Collections.Specialized.NameValueCollection,System.String)"> |
| | | <summary> |
| | | Gets the child config. |
| | | </summary> |
| | | <typeparam name="TConfig">The type of the config.</typeparam> |
| | | <param name="childElements">The child elements.</param> |
| | | <param name="childConfigName">Name of the child config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.GetConfigSource(System.Configuration.ConfigurationElement)"> |
| | | <summary> |
| | | Gets the config source path. |
| | | </summary> |
| | | <param name="config">The config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.LoadFrom(System.Configuration.ConfigurationElement,System.Object)"> |
| | | <summary> |
| | | Loads configuration element's node information from a model. |
| | | </summary> |
| | | <param name="configElement">The config element.</param> |
| | | <param name="source">The source.</param> |
| | | <exception cref="T:System.Exception">Cannot find expected property 'Item' from the type 'ConfigurationElement'.</exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.GetCurrentConfiguration(System.Configuration.ConfigurationElement)"> |
| | | <summary> |
| | | Gets the current configuration of the configuration element. |
| | | </summary> |
| | | <returns>The current configuration.</returns> |
| | | <param name="configElement">Configuration element.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ConfigurationExtension.ResetConfiguration(System.AppDomain,System.String)"> |
| | | <summary> |
| | | Reset application's configuration to a another config file |
| | | </summary> |
| | | <param name="appDomain">the assosiated AppDomain</param> |
| | | <param name="configFilePath">the config file path want to reset to</param> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.DictionaryExtension"> |
| | | <summary> |
| | | Extension class for IDictionary |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.DictionaryExtension.GetValue``1(System.Collections.Generic.IDictionary{System.Object,System.Object},System.Object)"> |
| | | <summary> |
| | | Gets the value by key. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="dictionary">The dictionary.</param> |
| | | <param name="key">The key.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.DictionaryExtension.GetValue``1(System.Collections.Generic.IDictionary{System.Object,System.Object},System.Object,``0)"> |
| | | <summary> |
| | | Gets the value by key and default value. |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | <param name="dictionary">The dictionary.</param> |
| | | <param name="key">The key.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ErrorEventArgs"> |
| | | <summary> |
| | | EventArgs for error and exception |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ErrorEventArgs.#ctor(System.String)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.ErrorEventArgs"/> class. |
| | | </summary> |
| | | <param name="message">The message.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ErrorEventArgs.#ctor(System.Exception)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.ErrorEventArgs"/> class. |
| | | </summary> |
| | | <param name="exception">The exception.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ErrorEventArgs.Exception"> |
| | | <summary> |
| | | Gets the exception. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.GenericConfigurationElementCollectionBase`2"> |
| | | <summary> |
| | | GenericConfigurationElementCollectionBase |
| | | </summary> |
| | | <typeparam name="TConfigElement">The type of the config element.</typeparam> |
| | | <typeparam name="TConfigInterface">The type of the config interface.</typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.GenericConfigurationElementCollectionBase`2.CreateNewElement"> |
| | | <summary> |
| | | When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>. |
| | | </summary> |
| | | <returns> |
| | | A new <see cref="T:System.Configuration.ConfigurationElement"/>. |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.GenericConfigurationElementCollectionBase`2.GetElementKey(System.Configuration.ConfigurationElement)"> |
| | | <summary> |
| | | Gets the element key for a specified configuration element when overridden in a derived class. |
| | | </summary> |
| | | <param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.</param> |
| | | <returns> |
| | | An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>. |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.GenericConfigurationElementCollectionBase`2.GetEnumerator"> |
| | | <summary> |
| | | Returns an enumerator that iterates through the collection. |
| | | </summary> |
| | | <returns> |
| | | A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection. |
| | | </returns> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.GenericConfigurationElementCollectionBase`2.Item(System.Int32)"> |
| | | <summary> |
| | | Gets or sets a property, attribute, or child element of this configuration element. |
| | | </summary> |
| | | <returns>The specified property, attribute, or child element</returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.GenericConfigurationElementCollection`2"> |
| | | <summary> |
| | | GenericConfigurationElementCollection |
| | | </summary> |
| | | <typeparam name="TConfigElement">The type of the config element.</typeparam> |
| | | <typeparam name="TConfigInterface">The type of the config interface.</typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.GenericConfigurationElementCollection`2.GetElementKey(System.Configuration.ConfigurationElement)"> |
| | | <summary> |
| | | Gets the element key. |
| | | </summary> |
| | | <param name="element">The element.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.Platform"> |
| | | <summary> |
| | | This class is designed for detect platform attribute in runtime |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.Platform.SupportSocketIOControlByCodeEnum"> |
| | | <summary> |
| | | Gets a value indicating whether [support socket IO control by code enum]. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [support socket IO control by code enum]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.Platform.IsMono"> |
| | | <summary> |
| | | Gets a value indicating whether this instance is mono. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if this instance is mono; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.SearchMarkState`1"> |
| | | <summary> |
| | | SearchMarkState |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SearchMarkState`1.#ctor(`0[])"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.SearchMarkState`1"/> class. |
| | | </summary> |
| | | <param name="mark">The mark.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SearchMarkState`1.Mark"> |
| | | <summary> |
| | | Gets the mark. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SearchMarkState`1.Matched"> |
| | | <summary> |
| | | Gets or sets whether matched already. |
| | | </summary> |
| | | <value> |
| | | The matched. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.SendingQueue"> |
| | | <summary> |
| | | SendingQueue |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.#ctor(System.ArraySegment{System.Byte}[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.SendingQueue"/> class. |
| | | </summary> |
| | | <param name="globalQueue">The global queue.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="capacity">The capacity.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Enqueue(System.ArraySegment{System.Byte},System.UInt16)"> |
| | | <summary> |
| | | Enqueues the specified item. |
| | | </summary> |
| | | <param name="item">The item.</param> |
| | | <param name="trackID">The track ID.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Enqueue(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.UInt16)"> |
| | | <summary> |
| | | Enqueues the specified items. |
| | | </summary> |
| | | <param name="items">The items.</param> |
| | | <param name="trackID">The track ID.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.StopEnqueue"> |
| | | <summary> |
| | | Stops the enqueue, and then wait all current excueting enqueu threads exit. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.StartEnqueue"> |
| | | <summary> |
| | | Starts to allow enqueue. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.IndexOf(System.ArraySegment{System.Byte})"> |
| | | <summary> |
| | | Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"/>. |
| | | </summary> |
| | | <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"/>.</param> |
| | | <returns> |
| | | The index of <paramref name="item"/> if found in the list; otherwise, -1. |
| | | </returns> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Insert(System.Int32,System.ArraySegment{System.Byte})"> |
| | | <summary> |
| | | Inserts an item to the <see cref="T:System.Collections.Generic.IList`1"/> at the specified index. |
| | | </summary> |
| | | <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param> |
| | | <param name="item">The object to insert into the <see cref="T:System.Collections.Generic.IList`1"/>.</param> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.RemoveAt(System.Int32)"> |
| | | <summary> |
| | | Removes the <see cref="T:System.Collections.Generic.IList`1"/> item at the specified index. |
| | | </summary> |
| | | <param name="index">The zero-based index of the item to remove.</param> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Add(System.ArraySegment{System.Byte})"> |
| | | <summary> |
| | | Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>. |
| | | </summary> |
| | | <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Clear"> |
| | | <summary> |
| | | Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>. |
| | | </summary> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Contains(System.ArraySegment{System.Byte})"> |
| | | <summary> |
| | | Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value. |
| | | </summary> |
| | | <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param> |
| | | <returns> |
| | | true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. |
| | | </returns> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.CopyTo(System.ArraySegment{System.Byte}[],System.Int32)"> |
| | | <summary> |
| | | Copies to. |
| | | </summary> |
| | | <param name="array">The array.</param> |
| | | <param name="arrayIndex">Index of the array.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.Remove(System.ArraySegment{System.Byte})"> |
| | | <summary> |
| | | Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>. |
| | | </summary> |
| | | <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param> |
| | | <returns> |
| | | true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>. |
| | | </returns> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.GetEnumerator"> |
| | | <summary> |
| | | Returns an enumerator that iterates through the collection. |
| | | </summary> |
| | | <returns> |
| | | A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection. |
| | | </returns> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.System#Collections#IEnumerable#GetEnumerator"> |
| | | <summary> |
| | | Returns an enumerator that iterates through a collection. |
| | | </summary> |
| | | <returns> |
| | | An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection. |
| | | </returns> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueue.InternalTrim(System.Int32)"> |
| | | <summary> |
| | | Trim the internal segments at the begining by the binary data size. |
| | | </summary> |
| | | <param name="offset">The binary data size should be trimed at the begining.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.TrackID"> |
| | | <summary> |
| | | Gets the track ID. |
| | | </summary> |
| | | <value> |
| | | The track ID. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.GlobalQueue"> |
| | | <summary> |
| | | Gets the global queue. |
| | | </summary> |
| | | <value> |
| | | The global queue. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.Offset"> |
| | | <summary> |
| | | Gets the offset. |
| | | </summary> |
| | | <value> |
| | | The offset. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.Capacity"> |
| | | <summary> |
| | | Gets the capacity. |
| | | </summary> |
| | | <value> |
| | | The capacity. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.Count"> |
| | | <summary> |
| | | Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />. |
| | | </summary> |
| | | <returns>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</returns> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.Position"> |
| | | <summary> |
| | | Gets or sets the position. |
| | | </summary> |
| | | <value> |
| | | The position. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.Item(System.Int32)"> |
| | | <summary> |
| | | Gets or sets the element at the specified index. |
| | | </summary> |
| | | <param name="index">The index.</param> |
| | | <returns></returns> |
| | | <exception cref="T:System.NotSupportedException"></exception> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SendingQueue.IsReadOnly"> |
| | | <summary> |
| | | Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only. |
| | | </summary> |
| | | <returns>true if the <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only; otherwise, false.</returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.SendingQueueSourceCreator"> |
| | | <summary> |
| | | SendingQueueSourceCreator |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ISmartPoolSourceCreator`1"> |
| | | <summary> |
| | | ISmartPoolSourceCreator |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ISmartPoolSourceCreator`1.Create(System.Int32,`0[]@)"> |
| | | <summary> |
| | | Creates the specified size. |
| | | </summary> |
| | | <param name="size">The size.</param> |
| | | <param name="poolItems">The pool items.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueueSourceCreator.#ctor(System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.SendingQueueSourceCreator"/> class. |
| | | </summary> |
| | | <param name="sendingQueueSize">Size of the sending queue.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SendingQueueSourceCreator.Create(System.Int32,SuperSocket.Common.SendingQueue[]@)"> |
| | | <summary> |
| | | Creates the specified size. |
| | | </summary> |
| | | <param name="size">The size.</param> |
| | | <param name="poolItems">The pool items.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.IPoolInfo"> |
| | | <summary> |
| | | The pool information class |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.IPoolInfo.MinPoolSize"> |
| | | <summary> |
| | | Gets the min size of the pool. |
| | | </summary> |
| | | <value> |
| | | The min size of the pool. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.IPoolInfo.MaxPoolSize"> |
| | | <summary> |
| | | Gets the max size of the pool. |
| | | </summary> |
| | | <value> |
| | | The max size of the pool. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.IPoolInfo.AvialableItemsCount"> |
| | | <summary> |
| | | Gets the avialable items count. |
| | | </summary> |
| | | <value> |
| | | The avialable items count. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.IPoolInfo.TotalItemsCount"> |
| | | <summary> |
| | | Gets the total items count, include items in the pool and outside the pool. |
| | | </summary> |
| | | <value> |
| | | The total items count. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ISmartPool`1"> |
| | | <summary> |
| | | The basic interface of smart pool |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ISmartPool`1.Initialize(System.Int32,System.Int32,SuperSocket.Common.ISmartPoolSourceCreator{`0})"> |
| | | <summary> |
| | | Initializes the specified min pool size. |
| | | </summary> |
| | | <param name="minPoolSize">The min size of the pool.</param> |
| | | <param name="maxPoolSize">The max size of the pool.</param> |
| | | <param name="sourceCreator">The source creator.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ISmartPool`1.Push(`0)"> |
| | | <summary> |
| | | Pushes the specified item into the pool. |
| | | </summary> |
| | | <param name="item">The item.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.ISmartPool`1.TryGet(`0@)"> |
| | | <summary> |
| | | Tries to get one item from the pool. |
| | | </summary> |
| | | <param name="item">The item.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.ISmartPoolSource"> |
| | | <summary> |
| | | ISmartPoolSource |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.ISmartPoolSource.Count"> |
| | | <summary> |
| | | Gets the count. |
| | | </summary> |
| | | <value> |
| | | The count. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.SmartPoolSource"> |
| | | <summary> |
| | | SmartPoolSource |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SmartPoolSource.#ctor(System.Object,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Common.SmartPoolSource"/> class. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="itemsCount">The items count.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SmartPoolSource.Source"> |
| | | <summary> |
| | | Gets the source. |
| | | </summary> |
| | | <value> |
| | | The source. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SmartPoolSource.Count"> |
| | | <summary> |
| | | Gets the count. |
| | | </summary> |
| | | <value> |
| | | The count. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.SmartPool`1"> |
| | | <summary> |
| | | The smart pool |
| | | </summary> |
| | | <typeparam name="T"></typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SmartPool`1.Initialize(System.Int32,System.Int32,SuperSocket.Common.ISmartPoolSourceCreator{`0})"> |
| | | <summary> |
| | | Initializes the specified min and max pool size. |
| | | </summary> |
| | | <param name="minPoolSize">The min size of the pool.</param> |
| | | <param name="maxPoolSize">The max size of the pool.</param> |
| | | <param name="sourceCreator">The source creator.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SmartPool`1.Push(`0)"> |
| | | <summary> |
| | | Pushes the specified item into the pool. |
| | | </summary> |
| | | <param name="item">The item.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SmartPool`1.TryGet(`0@)"> |
| | | <summary> |
| | | Tries to get one item from the pool. |
| | | </summary> |
| | | <param name="item">The item.</param> |
| | | <returns></returns> |
| | | <exception cref="T:System.NotImplementedException"></exception> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SmartPool`1.MinPoolSize"> |
| | | <summary> |
| | | Gets the size of the min pool. |
| | | </summary> |
| | | <value> |
| | | The size of the min pool. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SmartPool`1.MaxPoolSize"> |
| | | <summary> |
| | | Gets the size of the max pool. |
| | | </summary> |
| | | <value> |
| | | The size of the max pool. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SmartPool`1.AvialableItemsCount"> |
| | | <summary> |
| | | Gets the avialable items count. |
| | | </summary> |
| | | <value> |
| | | The avialable items count. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Common.SmartPool`1.TotalItemsCount"> |
| | | <summary> |
| | | Gets the total items count, include items in the pool and outside the pool. |
| | | </summary> |
| | | <value> |
| | | The total items count. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.SocketEx"> |
| | | <summary> |
| | | Socket extension class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SocketEx.SafeClose(System.Net.Sockets.Socket)"> |
| | | <summary> |
| | | Close the socket safely. |
| | | </summary> |
| | | <param name="socket">The socket.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SocketEx.SendData(System.Net.Sockets.Socket,System.Byte[])"> |
| | | <summary> |
| | | Sends the data. |
| | | </summary> |
| | | <param name="client">The client.</param> |
| | | <param name="data">The data.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.SocketEx.SendData(System.Net.Sockets.Socket,System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Sends the data. |
| | | </summary> |
| | | <param name="client">The client.</param> |
| | | <param name="data">The data.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.StringExtension"> |
| | | <summary> |
| | | String extension class |
| | | </summary> |
| | | <summary> |
| | | String extension |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToInt32(System.String)"> |
| | | <summary> |
| | | Convert string to int32. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToInt32(System.String,System.Int32)"> |
| | | <summary> |
| | | Convert string to int32. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToLong(System.String)"> |
| | | <summary> |
| | | Convert string to long. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToLong(System.String,System.Int64)"> |
| | | <summary> |
| | | Convert string to long. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToShort(System.String)"> |
| | | <summary> |
| | | Convert string to short. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToShort(System.String,System.Int16)"> |
| | | <summary> |
| | | Convert string to short. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToDecimal(System.String)"> |
| | | <summary> |
| | | Convert string to decimal. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToDecimal(System.String,System.Decimal)"> |
| | | <summary> |
| | | Convert string to decimal. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToDateTime(System.String)"> |
| | | <summary> |
| | | Convert string to date time. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToDateTime(System.String,System.DateTime)"> |
| | | <summary> |
| | | Convert string to date time. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="defaultValue">The default value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToBoolean(System.String)"> |
| | | <summary> |
| | | Convert string to boolean. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.ToBoolean(System.String,System.Boolean)"> |
| | | <summary> |
| | | Convert string tp boolean. |
| | | </summary> |
| | | <param name="source">The source.</param> |
| | | <param name="defaultValue">if set to <c>true</c> [default value].</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.StringExtension.TryParseEnum``1(System.String,System.Boolean,``0@)"> |
| | | <summary> |
| | | Tries parse string to enum. |
| | | </summary> |
| | | <typeparam name="T">the enum type</typeparam> |
| | | <param name="value">The value.</param> |
| | | <param name="ignoreCase">if set to <c>true</c> [ignore case].</param> |
| | | <param name="enumValue">The enum value.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Common.TheadPoolEx"> |
| | | <summary> |
| | | Thread pool extension class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Common.TheadPoolEx.ResetThreadPool(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32})"> |
| | | <summary> |
| | | Resets the thread pool. |
| | | </summary> |
| | | <param name="maxWorkingThreads">The max working threads.</param> |
| | | <param name="maxCompletionPortThreads">The max completion port threads.</param> |
| | | <param name="minWorkingThreads">The min working threads.</param> |
| | | <param name="minCompletionPortThreads">The min completion port threads.</param> |
| | | <returns></returns> |
| | | </member> |
| | | </members> |
| | | </doc> |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <doc> |
| | | <assembly> |
| | | <name>SuperSocket.Facility</name> |
| | | </assembly> |
| | | <members> |
| | | <member name="T:SuperSocket.Facility.PolicyServer.FlashPolicyServer"> |
| | | <summary> |
| | | Flash policy AppServer |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.PolicyServer.PolicyServer"> |
| | | <summary> |
| | | PolicyServer base class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyServer.#ctor"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.PolicyServer.PolicyServer"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyServer.Setup(SuperSocket.SocketBase.Config.IRootConfig,SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Setups the specified root config. |
| | | </summary> |
| | | <param name="rootConfig">The root config.</param> |
| | | <param name="config">The config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyServer.SetupPolicyResponse(System.Byte[])"> |
| | | <summary> |
| | | Setups the policy response. |
| | | </summary> |
| | | <param name="policyFileData">The policy file data.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyServer.GetPolicyFileResponse(System.Net.IPEndPoint)"> |
| | | <summary> |
| | | Gets the policy file response. |
| | | </summary> |
| | | <param name="clientEndPoint">The client end point.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyServer.ProcessRequest(SuperSocket.Facility.PolicyServer.PolicySession,System.Byte[])"> |
| | | <summary> |
| | | Processes the request. |
| | | </summary> |
| | | <param name="session">The session.</param> |
| | | <param name="data">The data.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.PolicyServer.PolicyServer.PolicyResponse"> |
| | | <summary> |
| | | Gets the policy response. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.FlashPolicyServer.#ctor"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.PolicyServer.FlashPolicyServer"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.FlashPolicyServer.SetupPolicyResponse(System.Byte[])"> |
| | | <summary> |
| | | Setups the policy response. |
| | | </summary> |
| | | <param name="policyFileData">The policy file data.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.PolicyServer.PolicyReceiveFilter"> |
| | | <summary> |
| | | PolicyReceiveFilter |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1"> |
| | | <summary> |
| | | FixedSizeReceiveFilter |
| | | </summary> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | </member> |
| | | <member name="F:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.NullRequestInfo"> |
| | | <summary> |
| | | Null RequestInfo |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.#ctor(System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1"/> class. |
| | | </summary> |
| | | <param name="size">The size.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.Filter(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)"> |
| | | <summary> |
| | | Filters the specified session. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <param name="rest">The rest.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32,System.Boolean)"> |
| | | <summary> |
| | | Filters the buffer after the server receive the enough size of data. |
| | | </summary> |
| | | <param name="buffer">The buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.Reset"> |
| | | <summary> |
| | | Resets this instance. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.Size"> |
| | | <summary> |
| | | Gets the size of the fixed size Receive filter. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.LeftBufferSize"> |
| | | <summary> |
| | | Gets the size of the rest buffer. |
| | | </summary> |
| | | <value> |
| | | The size of the rest buffer. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.NextReceiveFilter"> |
| | | <summary> |
| | | Gets the next Receive filter. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.SuperSocket#SocketBase#Protocol#IOffsetAdapter#OffsetDelta"> |
| | | <summary> |
| | | Gets the offset delta. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.FixedSizeReceiveFilter`1.State"> |
| | | <summary> |
| | | Gets the filter state. |
| | | </summary> |
| | | <value> |
| | | The filter state. |
| | | </value> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyReceiveFilter.#ctor(System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.PolicyServer.PolicyReceiveFilter"/> class. |
| | | </summary> |
| | | <param name="size">The size.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyReceiveFilter.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32,System.Boolean)"> |
| | | <summary> |
| | | Filters the buffer after the server receive the enough size of data. |
| | | </summary> |
| | | <param name="buffer">The buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyReceiveFilterFactory.#ctor(System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.PolicyServer.PolicyReceiveFilterFactory"/> class. |
| | | </summary> |
| | | <param name="fixRequestSize">Size of the fix request.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.PolicyReceiveFilterFactory.CreateFilter(SuperSocket.SocketBase.IAppServer,SuperSocket.SocketBase.IAppSession,System.Net.IPEndPoint)"> |
| | | <summary> |
| | | Creates the filter. |
| | | </summary> |
| | | <param name="appServer">The app server.</param> |
| | | <param name="appSession">The app session.</param> |
| | | <param name="remoteEndPoint">The remote end point.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.PolicyServer.PolicyReceiveFilterFactory.FixRequestSize"> |
| | | <summary> |
| | | Gets the size of the fix request. |
| | | </summary> |
| | | <value> |
| | | The size of the fix request. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.PolicyServer.PolicySession"> |
| | | <summary> |
| | | PolicySession |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.PolicyServer.SilverlightPolicyServer"> |
| | | <summary> |
| | | Silverlight policy AppServer |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.SilverlightPolicyServer.#ctor"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.PolicyServer.SilverlightPolicyServer"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.PolicyServer.SilverlightPolicyServer.ProcessRequest(SuperSocket.Facility.PolicyServer.PolicySession,System.Byte[])"> |
| | | <summary> |
| | | Processes the request. |
| | | </summary> |
| | | <param name="session">The session.</param> |
| | | <param name="data">The data.</param> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1"> |
| | | <summary> |
| | | ReceiveFilter for the protocol that each request has bengin and end mark |
| | | </summary> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | </member> |
| | | <member name="F:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1.NullRequestInfo"> |
| | | <summary> |
| | | Null request info |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1.#ctor(System.Byte[],System.Byte[])"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1"/> class. |
| | | </summary> |
| | | <param name="beginMark">The begin mark.</param> |
| | | <param name="endMark">The end mark.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1.Filter(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)"> |
| | | <summary> |
| | | Filters the specified session. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <param name="rest">The rest.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Processes the matched request. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.BeginEndMarkReceiveFilter`1.Reset"> |
| | | <summary> |
| | | Resets this instance. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1"> |
| | | <summary> |
| | | This Receive filter is designed for this kind protocol: |
| | | each request has fixed count part which splited by a char(byte) |
| | | for instance, request is defined like this "#12122#23343#4545456565#343435446#", |
| | | because this request is splited into many parts by 5 '#', we can create a Receive filter by CountSpliterRequestFilter((byte)'#', 5) |
| | | </summary> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | </member> |
| | | <member name="F:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.NullRequestInfo"> |
| | | <summary> |
| | | Null request info instance |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.#ctor(System.Byte,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1"/> class. |
| | | </summary> |
| | | <param name="spliter">The spliter.</param> |
| | | <param name="spliterCount">The spliter count.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.Filter(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)"> |
| | | <summary> |
| | | Filters the specified session. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <param name="rest">The rest.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Processes the matched request. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.Reset"> |
| | | <summary> |
| | | Resets this instance. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.LeftBufferSize"> |
| | | <summary> |
| | | Gets the size of the rest buffer. |
| | | </summary> |
| | | <value> |
| | | The size of the rest buffer. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.NextReceiveFilter"> |
| | | <summary> |
| | | Gets the next Receive filter. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.OffsetDelta"> |
| | | <summary> |
| | | Gets the offset delta relative original receiving offset which will be used for next round receiving. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter`1.State"> |
| | | <summary> |
| | | Gets the filter state. |
| | | </summary> |
| | | <value> |
| | | The filter state. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter"> |
| | | <summary> |
| | | This Receive filter is designed for this kind protocol: |
| | | each request has fixed count part which splited by a char(byte) |
| | | for instance, request is defined like this "#12122#23343#4545456565#343435446#", |
| | | because this request is splited into many parts by 5 '#', we can create a Receive filter by CountSpliterRequestFilter((byte)'#', 5) |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter.#ctor(System.Byte,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter"/> class. |
| | | </summary> |
| | | <param name="spliter">The spliter.</param> |
| | | <param name="spliterCount">The spliter count.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter.#ctor(System.Byte,System.Int32,System.Text.Encoding)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter"/> class. |
| | | </summary> |
| | | <param name="spliter">The spliter.</param> |
| | | <param name="spliterCount">The spliter count.</param> |
| | | <param name="encoding">The encoding.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter.#ctor(System.Byte,System.Int32,System.Text.Encoding,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter"/> class. |
| | | </summary> |
| | | <param name="spliter">The spliter.</param> |
| | | <param name="spliterCount">The spliter count.</param> |
| | | <param name="encoding">The encoding.</param> |
| | | <param name="keyIndex">Index of the key.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilter.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Processes the matched request. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory`2"> |
| | | <summary> |
| | | ReceiveFilterFactory for CountSpliterReceiveFilter |
| | | </summary> |
| | | <typeparam name="TRequestFilter">The type of the Receive filter.</typeparam> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory`2.CreateFilter(SuperSocket.SocketBase.IAppServer,SuperSocket.SocketBase.IAppSession,System.Net.IPEndPoint)"> |
| | | <summary> |
| | | Creates the filter. |
| | | </summary> |
| | | <param name="appServer">The app server.</param> |
| | | <param name="appSession">The app session.</param> |
| | | <param name="remoteEndPoint">The remote end point.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory`1"> |
| | | <summary> |
| | | ReceiveFilterFactory for CountSpliterReceiveFilter |
| | | </summary> |
| | | <typeparam name="TRequestFilter">The type of the Receive filter.</typeparam> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory"> |
| | | <summary> |
| | | receiveFilterFactory for CountSpliterRequestFilter |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory.#ctor(System.Byte,System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory"/> class. |
| | | </summary> |
| | | <param name="spliter">The spliter.</param> |
| | | <param name="count">The count.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.CountSpliterReceiveFilterFactory.CreateFilter(SuperSocket.SocketBase.IAppServer,SuperSocket.SocketBase.IAppSession,System.Net.IPEndPoint)"> |
| | | <summary> |
| | | Creates the filter. |
| | | </summary> |
| | | <param name="appServer">The app server.</param> |
| | | <param name="appSession">The app session.</param> |
| | | <param name="remoteEndPoint">The remote end point.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1"> |
| | | <summary> |
| | | FixedHeaderReceiveFilter, |
| | | it is the Receive filter base for the protocol which define fixed length header and the header contains the request body length, |
| | | you can implement your own Receive filter for this kind protocol easily by inheriting this class |
| | | </summary> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1.#ctor(System.Int32)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1"/> class. |
| | | </summary> |
| | | <param name="headerSize">Size of the header.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1.Filter(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)"> |
| | | <summary> |
| | | Filters the specified session. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <param name="rest">The rest.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32,System.Boolean)"> |
| | | <summary> |
| | | Processes the fix size request. |
| | | </summary> |
| | | <param name="buffer">The buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1.GetBodyLengthFromHeader(System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Gets the body length from header. |
| | | </summary> |
| | | <param name="header">The header.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1.ResolveRequestInfo(System.ArraySegment{System.Byte},System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Resolves the request data. |
| | | </summary> |
| | | <param name="header">The header.</param> |
| | | <param name="bodyBuffer">The body buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.FixedHeaderReceiveFilter`1.Reset"> |
| | | <summary> |
| | | Resets this instance. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1"> |
| | | <summary> |
| | | HttpReceiveFilterBase |
| | | </summary> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | </member> |
| | | <member name="F:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.NewLine"> |
| | | <summary> |
| | | Http header terminator |
| | | </summary> |
| | | </member> |
| | | <member name="F:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.m_HeaderParsed"> |
| | | <summary> |
| | | indicate whether the header has been parsed |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.#ctor"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.Filter(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)"> |
| | | <summary> |
| | | Filters the specified session. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <param name="rest">The rest.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.FilterRequestBody(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Int32@)"> |
| | | <summary> |
| | | Filters the request body. |
| | | </summary> |
| | | <param name="readBuffer">The read buffer.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <param name="toBeCopied">if set to <c>true</c> [to be copied].</param> |
| | | <param name="rest">The rest data size.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.ProcessMatchedRequest(System.Byte[],System.Int32,System.Int32)"> |
| | | <summary> |
| | | Resolves the specified data. |
| | | </summary> |
| | | <param name="data">The data.</param> |
| | | <param name="offset">The offset.</param> |
| | | <param name="length">The length.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.FilterRequestHeader(System.Collections.Specialized.NameValueCollection)"> |
| | | <summary> |
| | | Filters the request header. |
| | | </summary> |
| | | <param name="header">The header.</param> |
| | | <returns> |
| | | return the parsed request info from header; if the request has body, this method should return null |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.Reset"> |
| | | <summary> |
| | | Resets this instance to inital state. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.HttpReceiveFilterBase`1.HeaderItems"> |
| | | <summary> |
| | | Gets the header items. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.IHttpRequestInfo"> |
| | | <summary> |
| | | IHttpRequestInfo |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.IHttpRequestInfo.Header"> |
| | | <summary> |
| | | Gets the http header. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.HttpRequestInfoBase"> |
| | | <summary> |
| | | HttpRequestInfoBase |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpRequestInfoBase.#ctor(System.String,System.Collections.Specialized.NameValueCollection)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.HttpRequestInfoBase"/> class. |
| | | </summary> |
| | | <param name="key">The key.</param> |
| | | <param name="header">The header.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.HttpRequestInfoBase.Key"> |
| | | <summary> |
| | | Gets the key of this request. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.HttpRequestInfoBase.Header"> |
| | | <summary> |
| | | Gets the http header. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.HttpRequestInfoBase`1"> |
| | | <summary> |
| | | HttpRequestInfoBase |
| | | </summary> |
| | | <typeparam name="TRequestBody">The type of the request body.</typeparam> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.HttpRequestInfoBase`1.#ctor(System.String,System.Collections.Specialized.NameValueCollection,`0)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.Facility.Protocol.HttpRequestInfoBase`1"/> class. |
| | | </summary> |
| | | <param name="key">The key.</param> |
| | | <param name="header">The header.</param> |
| | | <param name="body">The body.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.Facility.Protocol.HttpRequestInfoBase`1.Body"> |
| | | <summary> |
| | | Gets the body. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.Facility.Protocol.MimeHeaderHelper"> |
| | | <summary> |
| | | MimeHeader Helper class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.Facility.Protocol.MimeHeaderHelper.ParseHttpHeader(System.String,System.Collections.Specialized.NameValueCollection)"> |
| | | <summary> |
| | | Parses the HTTP header. |
| | | </summary> |
| | | <param name="headerData">The header data.</param> |
| | | <param name="header">The header.</param> |
| | | </member> |
| | | </members> |
| | | </doc> |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <doc> |
| | | <assembly> |
| | | <name>SuperSocket.SocketEngine</name> |
| | | </assembly> |
| | | <members> |
| | | <member name="T:SuperSocket.SocketEngine.AppDomainAppServer"> |
| | | <summary> |
| | | AppDomainAppServer |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.IsolationAppServer.InitializeLifetimeService"> |
| | | <summary> |
| | | Obtains a lifetime service object to control the lifetime policy for this instance. |
| | | Return null, never expired |
| | | </summary> |
| | | <returns> |
| | | An object of type <see cref="T:System.Runtime.Remoting.Lifetime.ILease" /> used to control the lifetime policy for this instance. This is the current lifetime service object for this instance if one exists; otherwise, a new lifetime service object initialized to the value of the <see cref="P:System.Runtime.Remoting.Lifetime.LifetimeServices.LeaseManagerPollTime" /> property. |
| | | </returns> |
| | | <PermissionSet> |
| | | <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="RemotingConfiguration, Infrastructure" /> |
| | | </PermissionSet> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.IsolationAppServer.StatusMetadataExtended"> |
| | | <summary> |
| | | Gets a value indicating whether [status metadata extended]. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [status metadata extended]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainAppServer.#ctor(System.String,SuperSocket.SocketBase.Metadata.StatusInfoAttribute[])"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.AppDomainAppServer"/> class. |
| | | </summary> |
| | | <param name="serverTypeName">Name of the server type.</param> |
| | | <param name="serverStatusMetadata">The server status metadata.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainAppServer.Start"> |
| | | <summary> |
| | | Starts this server instance. |
| | | </summary> |
| | | <returns> |
| | | return true if start successfull, else false |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.WorkItemFactoryInfoLoader.ValidateProviderType(System.String)"> |
| | | <summary> |
| | | Validates the type of the provider, needn't validate in default mode, because it will be validate later when initializing. |
| | | </summary> |
| | | <param name="typeName">Name of the type.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.WorkItemFactoryInfoLoader.GetServerTypeMetadata(System.String)"> |
| | | <summary> |
| | | Gets the app server type's metadata, the return value is not required in this mode. |
| | | </summary> |
| | | <param name="typeName">Name of the type.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.WorkItemFactoryInfoLoader.Dispose"> |
| | | <summary> |
| | | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.DefaultBootstrap"> |
| | | <summary> |
| | | SuperSocket default bootstrap |
| | | </summary> |
| | | </member> |
| | | <member name="F:SuperSocket.SocketEngine.DefaultBootstrap.m_Initialized"> |
| | | <summary> |
| | | Indicates whether the bootstrap is initialized |
| | | </summary> |
| | | </member> |
| | | <member name="F:SuperSocket.SocketEngine.DefaultBootstrap.m_Config"> |
| | | <summary> |
| | | Global configuration |
| | | </summary> |
| | | </member> |
| | | <member name="F:SuperSocket.SocketEngine.DefaultBootstrap.m_GlobalLog"> |
| | | <summary> |
| | | Global log |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.#ctor(System.Collections.Generic.IEnumerable{SuperSocket.SocketBase.IWorkItem})"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.DefaultBootstrap"/> class. |
| | | </summary> |
| | | <param name="appServers">The app servers.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.#ctor(SuperSocket.SocketBase.Config.IRootConfig,System.Collections.Generic.IEnumerable{SuperSocket.SocketBase.IWorkItem})"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.DefaultBootstrap"/> class. |
| | | </summary> |
| | | <param name="rootConfig">The root config.</param> |
| | | <param name="appServers">The app servers.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.#ctor(SuperSocket.SocketBase.Config.IRootConfig,System.Collections.Generic.IEnumerable{SuperSocket.SocketBase.IWorkItem},SuperSocket.SocketBase.Logging.ILogFactory)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.DefaultBootstrap"/> class. |
| | | </summary> |
| | | <param name="rootConfig">The root config.</param> |
| | | <param name="appServers">The app servers.</param> |
| | | <param name="logFactory">The log factory.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.#ctor(SuperSocket.SocketBase.Config.IConfigurationSource)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.DefaultBootstrap"/> class. |
| | | </summary> |
| | | <param name="config">The config.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.#ctor(SuperSocket.SocketBase.Config.IConfigurationSource,System.String)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.DefaultBootstrap"/> class. |
| | | </summary> |
| | | <param name="config">The config.</param> |
| | | <param name="startupConfigFile">The startup config file.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.CreateWorkItemInstance(System.String,SuperSocket.SocketBase.Metadata.StatusInfoAttribute[])"> |
| | | <summary> |
| | | Creates the work item instance. |
| | | </summary> |
| | | <param name="serviceTypeName">Name of the service type.</param> |
| | | <param name="serverStatusMetadata">The server status metadata.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.GetWorkItemFactoryInfoLoader(SuperSocket.SocketBase.Config.IConfigurationSource,SuperSocket.SocketBase.Logging.ILogFactory)"> |
| | | <summary> |
| | | Gets the work item factory info loader. |
| | | </summary> |
| | | <param name="config">The config.</param> |
| | | <param name="logFactory">The log factory.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Initialize(System.Collections.Generic.IDictionary{System.String,System.Net.IPEndPoint})"> |
| | | <summary> |
| | | Initializes the bootstrap with a listen endpoint replacement dictionary |
| | | </summary> |
| | | <param name="listenEndPointReplacement">The listen end point replacement.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Initialize(System.Func{SuperSocket.SocketBase.Config.IServerConfig,SuperSocket.SocketBase.Config.IServerConfig},SuperSocket.SocketBase.Logging.ILogFactory)"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration, config resolver and log factory. |
| | | </summary> |
| | | <param name="serverConfigResolver">The server config resolver.</param> |
| | | <param name="logFactory">The log factory.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Initialize(System.Func{SuperSocket.SocketBase.Config.IServerConfig,SuperSocket.SocketBase.Config.IServerConfig})"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration and config resolver. |
| | | </summary> |
| | | <param name="serverConfigResolver">The server config resolver.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Initialize(SuperSocket.SocketBase.Logging.ILogFactory)"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration |
| | | </summary> |
| | | <param name="logFactory">The log factory.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Initialize"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Start"> |
| | | <summary> |
| | | Starts this bootstrap. |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Stop"> |
| | | <summary> |
| | | Stops this bootstrap. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.RegisterRemotingService"> |
| | | <summary> |
| | | Registers the bootstrap remoting access service. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Dispose(System.Boolean)"> |
| | | <summary> |
| | | Releases unmanaged and - optionally - managed resources. |
| | | </summary> |
| | | <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.DefaultBootstrap.Dispose"> |
| | | <summary> |
| | | Releases unmanaged and - optionally - managed resources. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.SuperSocket#SocketBase#ILoggerProvider#Logger"> |
| | | <summary> |
| | | Gets the bootstrap logger. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.LogFactory"> |
| | | <summary> |
| | | Gets the log factory. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.AppServers"> |
| | | <summary> |
| | | Gets all the app servers running in this bootstrap |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.Config"> |
| | | <summary> |
| | | Gets the config. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.StartupConfigFile"> |
| | | <summary> |
| | | Gets the startup config file. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.PerfMonitor"> |
| | | <summary> |
| | | Gets the <see cref="T:SuperSocket.SocketEngine.PerformanceMonitor"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.DefaultBootstrap.BaseDirectory"> |
| | | <summary> |
| | | Gets the base directory. |
| | | </summary> |
| | | <value> |
| | | The base directory. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.AppDomainBootstrap"> |
| | | <summary> |
| | | AppDomainBootstrap |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.#ctor(SuperSocket.SocketBase.Config.IConfigurationSource)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.AppDomainBootstrap"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Initialize"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Initialize(System.Func{SuperSocket.SocketBase.Config.IServerConfig,SuperSocket.SocketBase.Config.IServerConfig})"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration and config resolver. |
| | | </summary> |
| | | <param name="serverConfigResolver">The server config resolver.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Initialize(SuperSocket.SocketBase.Logging.ILogFactory)"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration and config resolver. |
| | | </summary> |
| | | <param name="logFactory">The log factory.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Initialize(System.Collections.Generic.IDictionary{System.String,System.Net.IPEndPoint})"> |
| | | <summary> |
| | | Initializes the bootstrap with a listen endpoint replacement dictionary |
| | | </summary> |
| | | <param name="listenEndPointReplacement">The listen end point replacement.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Initialize(System.Func{SuperSocket.SocketBase.Config.IServerConfig,SuperSocket.SocketBase.Config.IServerConfig},SuperSocket.SocketBase.Logging.ILogFactory)"> |
| | | <summary> |
| | | Initializes the bootstrap with the configuration |
| | | </summary> |
| | | <param name="serverConfigResolver">The server config resolver.</param> |
| | | <param name="logFactory">The log factory.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Start"> |
| | | <summary> |
| | | Starts this bootstrap. |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AppDomainBootstrap.Stop"> |
| | | <summary> |
| | | Stops this bootstrap. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.AppDomainBootstrap.AppServers"> |
| | | <summary> |
| | | Gets all the app servers running in this bootstrap |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.AppDomainBootstrap.Config"> |
| | | <summary> |
| | | Gets the config. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.AppDomainBootstrap.SuperSocket#SocketBase#ILoggerProvider#Logger"> |
| | | <summary> |
| | | Gets the bootstrap logger. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.AppDomainBootstrap.StartupConfigFile"> |
| | | <summary> |
| | | Gets the startup config file. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.AssemblyImport"> |
| | | <summary> |
| | | AssemblyImport, used for importing assembly to the current AppDomain |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AssemblyImport.#ctor(System.String)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.AssemblyImport"/> class. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.BootstrapFactory"> |
| | | <summary> |
| | | Bootstrap Factory |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.BootstrapFactory.CreateBootstrap(SuperSocket.SocketBase.Config.IConfigurationSource)"> |
| | | <summary> |
| | | Creates the bootstrap. |
| | | </summary> |
| | | <param name="config">The config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.BootstrapFactory.CreateBootstrap"> |
| | | <summary> |
| | | Creates the bootstrap from app configuration's socketServer section. |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.BootstrapFactory.CreateBootstrap(System.String)"> |
| | | <summary> |
| | | Creates the bootstrap. |
| | | </summary> |
| | | <param name="configSectionName">Name of the config section.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.BootstrapFactory.CreateBootstrapFromConfigFile(System.String)"> |
| | | <summary> |
| | | Creates the bootstrap from configuration file. |
| | | </summary> |
| | | <param name="configFile">The configuration file.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.ConfigurationWatcher"> |
| | | <summary> |
| | | The configuration file watcher, it is used for hot configuration updating |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.ConfigurationWatcher.Watch(System.Configuration.ConfigurationSection,SuperSocket.SocketBase.IBootstrap)"> |
| | | <summary> |
| | | Watches the specified configuration section. |
| | | </summary> |
| | | <param name="configSection">The configuration section.</param> |
| | | <param name="bootstrap">The bootstrap.</param> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.CommandAssembly"> |
| | | <summary> |
| | | Command assembly configuration element |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CommandAssembly.Assembly"> |
| | | <summary> |
| | | Gets the assembly name. |
| | | </summary> |
| | | <value> |
| | | The assembly. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.CommandAssemblyCollection"> |
| | | <summary> |
| | | Command assembly configuation collection |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.Server"> |
| | | <summary> |
| | | Server, the port which is compatible with .Net 4.5 or higher |
| | | </summary> |
| | | <summary> |
| | | Server configuration |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.Server.GetChildConfig``1(System.String)"> |
| | | <summary> |
| | | Gets the child config. |
| | | </summary> |
| | | <typeparam name="TConfig">The type of the config.</typeparam> |
| | | <param name="childConfigName">Name of the child config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.Server.OnDeserializeUnrecognizedAttribute(System.String,System.String)"> |
| | | <summary> |
| | | Gets a value indicating whether an unknown attribute is encountered during deserialization. |
| | | To keep compatible with old configuration |
| | | </summary> |
| | | <param name="name">The name of the unrecognized attribute.</param> |
| | | <param name="value">The value of the unrecognized attribute.</param> |
| | | <returns> |
| | | true when an unknown attribute is encountered while deserializing; otherwise, false. |
| | | </returns> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.DefaultCulture"> |
| | | <summary> |
| | | Gets/sets the default culture for this server. |
| | | </summary> |
| | | <value> |
| | | The default culture. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ServerTypeName"> |
| | | <summary> |
| | | Gets the name of the server type this appServer want to use. |
| | | </summary> |
| | | <value> |
| | | The name of the server type. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ServerType"> |
| | | <summary> |
| | | Gets the type definition of the appserver. |
| | | </summary> |
| | | <value> |
| | | The type of the server. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ReceiveFilterFactory"> |
| | | <summary> |
| | | Gets the Receive filter factory. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Ip"> |
| | | <summary> |
| | | Gets the ip. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Port"> |
| | | <summary> |
| | | Gets the port. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Mode"> |
| | | <summary> |
| | | Gets the mode. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Disabled"> |
| | | <summary> |
| | | Gets a value indicating whether this <see cref="T:SuperSocket.SocketBase.Config.IServerConfig"/> is disabled. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if disabled; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.SendTimeOut"> |
| | | <summary> |
| | | Gets the send time out. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.MaxConnectionNumber"> |
| | | <summary> |
| | | Gets the max connection number. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ReceiveBufferSize"> |
| | | <summary> |
| | | Gets the size of the receive buffer. |
| | | </summary> |
| | | <value> |
| | | The size of the receive buffer. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.SendBufferSize"> |
| | | <summary> |
| | | Gets the size of the send buffer. |
| | | </summary> |
| | | <value> |
| | | The size of the send buffer. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.SyncSend"> |
| | | <summary> |
| | | Gets a value indicating whether sending is in synchronous mode. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [sync send]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.LogCommand"> |
| | | <summary> |
| | | Gets a value indicating whether log command in log file. |
| | | </summary> |
| | | <value><c>true</c> if log command; otherwise, <c>false</c>.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.LogBasicSessionActivity"> |
| | | <summary> |
| | | Gets a value indicating whether [log basic session activity like connected and disconnected]. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [log basic session activity]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.LogAllSocketException"> |
| | | <summary> |
| | | Gets a value indicating whether [log all socket exception]. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [log all socket exception]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ClearIdleSession"> |
| | | <summary> |
| | | Gets a value indicating whether clear idle session. |
| | | </summary> |
| | | <value><c>true</c> if clear idle session; otherwise, <c>false</c>.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ClearIdleSessionInterval"> |
| | | <summary> |
| | | Gets the clear idle session interval, in seconds. |
| | | </summary> |
| | | <value>The clear idle session interval.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.IdleSessionTimeOut"> |
| | | <summary> |
| | | Gets the idle session timeout time length, in seconds. |
| | | </summary> |
| | | <value>The idle session time out.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.CertificateConfig"> |
| | | <summary> |
| | | Gets the certificate config. |
| | | </summary> |
| | | <value>The certificate config.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Certificate"> |
| | | <summary> |
| | | Gets X509Certificate configuration. |
| | | </summary> |
| | | <value> |
| | | X509Certificate configuration. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Security"> |
| | | <summary> |
| | | Gets the security protocol, X509 certificate. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.MaxRequestLength"> |
| | | <summary> |
| | | Gets the max allowed length of request. |
| | | </summary> |
| | | <value> |
| | | The max allowed length of request. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.DisableSessionSnapshot"> |
| | | <summary> |
| | | Gets a value indicating whether [disable session snapshot] |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.SessionSnapshotInterval"> |
| | | <summary> |
| | | Gets the interval to taking snapshot for all live sessions. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ConnectionFilter"> |
| | | <summary> |
| | | Gets the connection filters used by this server instance. |
| | | </summary> |
| | | <value> |
| | | The connection filters's name list, seperated by comma |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.CommandLoader"> |
| | | <summary> |
| | | Gets the command loader, multiple values should be separated by comma. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.KeepAliveTime"> |
| | | <summary> |
| | | Gets the start keep alive time, in seconds |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.KeepAliveInterval"> |
| | | <summary> |
| | | Gets the keep alive interval, in seconds. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.ListenBacklog"> |
| | | <summary> |
| | | Gets the backlog size of socket listening. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.StartupOrder"> |
| | | <summary> |
| | | Gets the startup order of the server instance. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.SendingQueueSize"> |
| | | <summary> |
| | | Gets/sets the size of the sending queue. |
| | | </summary> |
| | | <value> |
| | | The size of the sending queue. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.LogFactory"> |
| | | <summary> |
| | | Gets the logfactory name of the server instance. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.TextEncoding"> |
| | | <summary> |
| | | Gets the default text encoding. |
| | | </summary> |
| | | <value> |
| | | The text encoding. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.Listeners"> |
| | | <summary> |
| | | Gets the listeners' configuration. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.SuperSocket#SocketBase#Config#IServerConfig#Listeners"> |
| | | <summary> |
| | | Gets the listeners' configuration. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Server.CommandAssemblies"> |
| | | <summary> |
| | | Gets the command assemblies configuration. |
| | | </summary> |
| | | <value> |
| | | The command assemblies. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.SocketServiceConfig"> |
| | | <summary> |
| | | SocketServiceConfig, the part which is compatible with .Net 4.5 or higher |
| | | </summary> |
| | | <summary> |
| | | SuperSocket's root configuration node |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)"> |
| | | <summary> |
| | | Gets a value indicating whether an unknown element is encountered during deserialization. |
| | | To keep compatible with old configuration |
| | | </summary> |
| | | <param name="elementName">The name of the unknown subelement.</param> |
| | | <param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.</param> |
| | | <returns> |
| | | true when an unknown element is encountered while deserializing; otherwise, false. |
| | | </returns> |
| | | <exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.- or -One or more of the element's attributes is locked.- or -<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.- or -The element has a Boolean attribute with an invalid value.- or -An attempt was made to deserialize a property more than once.- or -An attempt was made to deserialize a property that is not a valid member of the element.- or -The element cannot contain a CDATA or text element.</exception> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.OnDeserializeUnrecognizedAttribute(System.String,System.String)"> |
| | | <summary> |
| | | Gets a value indicating whether an unknown attribute is encountered during deserialization. |
| | | </summary> |
| | | <param name="name">The name of the unrecognized attribute.</param> |
| | | <param name="value">The value of the unrecognized attribute.</param> |
| | | <returns> |
| | | true when an unknown attribute is encountered while deserializing; otherwise, false. |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.GetChildConfig``1(System.String)"> |
| | | <summary> |
| | | Gets the child config. |
| | | </summary> |
| | | <typeparam name="TConfig">The type of the config.</typeparam> |
| | | <param name="childConfigName">Name of the child config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.DefaultCulture"> |
| | | <summary> |
| | | Gets/sets the default culture for all server instances. |
| | | </summary> |
| | | <value> |
| | | The default culture. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.Servers"> |
| | | <summary> |
| | | Gets all the server configurations |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.ServerTypes"> |
| | | <summary> |
| | | Gets the service configurations |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.ConnectionFilters"> |
| | | <summary> |
| | | Gets all the connection filter configurations. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.LogFactories"> |
| | | <summary> |
| | | Gets the defined log factory types. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.ReceiveFilterFactories"> |
| | | <summary> |
| | | Gets the logfactory name of the bootstrap. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.CommandLoaders"> |
| | | <summary> |
| | | Gets the command loaders definition. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.MaxWorkingThreads"> |
| | | <summary> |
| | | Gets the max working threads. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.MinWorkingThreads"> |
| | | <summary> |
| | | Gets the min working threads. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.MaxCompletionPortThreads"> |
| | | <summary> |
| | | Gets the max completion port threads. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.MinCompletionPortThreads"> |
| | | <summary> |
| | | Gets the min completion port threads. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.PerformanceDataCollectInterval"> |
| | | <summary> |
| | | Gets the performance data collect interval, in seconds. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.DisablePerformanceDataCollector"> |
| | | <summary> |
| | | Gets a value indicating whether [disable performance data collector]. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [disable performance data collector]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.Isolation"> |
| | | <summary> |
| | | Gets the isolation mode. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.LogFactory"> |
| | | <summary> |
| | | Gets the logfactory name of the bootstrap. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.SocketServiceConfig.OptionElements"> |
| | | <summary> |
| | | Gets the option elements. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.IPerformanceMonitor"> |
| | | <summary> |
| | | Interface of IPerformanceMonitor |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.IPerformanceMonitor.Start"> |
| | | <summary> |
| | | Start PerformanceMonitor. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.IPerformanceMonitor.Stop"> |
| | | <summary> |
| | | Stop PerformanceMonitor. |
| | | </summary> |
| | | </member> |
| | | <member name="E:SuperSocket.SocketEngine.IPerformanceMonitor.OnStatusUpdate"> |
| | | <summary> |
| | | Invokes when status update. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.IPerformanceMonitor.StatusUpdateInterval"> |
| | | <summary> |
| | | Get or Set status update time in seconds. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.IProcessServer"> |
| | | <summary> |
| | | the interface for server instance which works as a process |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.IProcessServer.ProcessId"> |
| | | <summary> |
| | | Gets the process id. |
| | | </summary> |
| | | <value> |
| | | The process id. If the process id is zero, the server instance is not running |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.IRemoteWorkItem"> |
| | | <summary> |
| | | IRemoteWorkItem |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.IRemoteWorkItem.Setup(System.String,System.String,System.String,SuperSocket.SocketBase.Config.IServerConfig,SuperSocket.SocketBase.Provider.ProviderFactoryInfo[],System.String)"> |
| | | <summary> |
| | | Setups the specified config. |
| | | </summary> |
| | | <param name="serverType">Type of the server.</param> |
| | | <param name="bootstrapUri">The bootstrap URI.</param> |
| | | <param name="assemblyImportRoot">The assembly import root.</param> |
| | | <param name="config">The config.</param> |
| | | <param name="factories">The factories.</param> |
| | | <param name="startupConfigFile">The startup configuration file path</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.ProcessAppServer.#ctor(System.String,SuperSocket.SocketBase.Metadata.StatusInfoAttribute[])"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.ProcessAppServer"/> class. |
| | | </summary> |
| | | <param name="serverTypeName">Name of the server type.</param> |
| | | <param name="serverStatusMetadata">The server status metadata.</param> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.ProcessAppServer.ProcessId"> |
| | | <summary> |
| | | Gets the process id. |
| | | </summary> |
| | | <value> |
| | | The process id. If the process id is zero, the server instance is not running |
| | | </value> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.ProcessBootstrap.#ctor(SuperSocket.SocketBase.Config.IConfigurationSource)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.ProcessBootstrap"/> class. |
| | | </summary> |
| | | <param name="config">The config.</param> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.SocketSession"> |
| | | <summary> |
| | | Socket Session, all application session should base on this class |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.LogError(System.Exception,System.String,System.String,System.Int32)"> |
| | | <summary> |
| | | Logs the error, skip the ignored exception |
| | | </summary> |
| | | <param name="exception">The exception.</param> |
| | | <param name="caller">The caller.</param> |
| | | <param name="callerFilePath">The caller file path.</param> |
| | | <param name="callerLineNumber">The caller line number.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.LogError(System.String,System.Exception,System.String,System.String,System.Int32)"> |
| | | <summary> |
| | | Logs the error, skip the ignored exception |
| | | </summary> |
| | | <param name="message">The message.</param> |
| | | <param name="exception">The exception.</param> |
| | | <param name="caller">The caller.</param> |
| | | <param name="callerFilePath">The caller file path.</param> |
| | | <param name="callerLineNumber">The caller line number.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.LogError(System.Int32,System.String,System.String,System.Int32)"> |
| | | <summary> |
| | | Logs the socket error, skip the ignored error |
| | | </summary> |
| | | <param name="socketErrorCode">The socket error code.</param> |
| | | <param name="caller">The caller.</param> |
| | | <param name="callerFilePath">The caller file path.</param> |
| | | <param name="callerLineNumber">The caller line number.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.Start"> |
| | | <summary> |
| | | Starts this session. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.StartSession"> |
| | | <summary> |
| | | Says the welcome information when a client connectted. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.OnClosed(SuperSocket.SocketBase.CloseReason)"> |
| | | <summary> |
| | | Called when [close]. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.TrySend(System.Collections.Generic.IList{System.ArraySegment{System.Byte}})"> |
| | | <summary> |
| | | Tries to send array segment. |
| | | </summary> |
| | | <param name="segments">The segments.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.TrySend(System.ArraySegment{System.Byte})"> |
| | | <summary> |
| | | Tries to send array segment. |
| | | </summary> |
| | | <param name="segment">The segment.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.SendAsync(SuperSocket.Common.SendingQueue)"> |
| | | <summary> |
| | | Sends in async mode. |
| | | </summary> |
| | | <param name="queue">The queue.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.SendSync(SuperSocket.Common.SendingQueue)"> |
| | | <summary> |
| | | Sends in sync mode. |
| | | </summary> |
| | | <param name="queue">The queue.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketSession.ValidateNotInSendingReceiving"> |
| | | <summary> |
| | | Validates the socket is not in the sending or receiving operation. |
| | | </summary> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.SessionID"> |
| | | <summary> |
| | | Gets or sets the session ID. |
| | | </summary> |
| | | <value>The session ID.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.Config"> |
| | | <summary> |
| | | Gets or sets the config. |
| | | </summary> |
| | | <value> |
| | | The config. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.Closed"> |
| | | <summary> |
| | | Occurs when [closed]. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.Client"> |
| | | <summary> |
| | | Gets or sets the client. |
| | | </summary> |
| | | <value>The client.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.LocalEndPoint"> |
| | | <summary> |
| | | Gets the local end point. |
| | | </summary> |
| | | <value>The local end point.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.RemoteEndPoint"> |
| | | <summary> |
| | | Gets the remote end point. |
| | | </summary> |
| | | <value>The remote end point.</value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketSession.SecureProtocol"> |
| | | <summary> |
| | | Gets or sets the secure protocol. |
| | | </summary> |
| | | <value>The secure protocol.</value> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.MarshalAppServer.#ctor(System.String)"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.AppDomainAppServer"/> class. |
| | | </summary> |
| | | <param name="serviceTypeName">Name of the service type.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.MarshalAppServer.Setup(SuperSocket.SocketBase.IBootstrap,SuperSocket.SocketBase.Config.IServerConfig,SuperSocket.SocketBase.Provider.ProviderFactoryInfo[])"> |
| | | <summary> |
| | | Setups the specified root config. |
| | | </summary> |
| | | <param name="bootstrap">The bootstrap.</param> |
| | | <param name="config">The socket server instance config.</param> |
| | | <param name="factories">The providers.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.MarshalAppServer.ReportPotentialConfigChange(SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Reports the potential configuration change. |
| | | </summary> |
| | | <param name="config">The server config which may be changed.</param> |
| | | <exception cref="T:System.NotImplementedException"></exception> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.MarshalAppServer.Start"> |
| | | <summary> |
| | | Starts this server instance. |
| | | </summary> |
| | | <returns> |
| | | return true if start successfull, else false |
| | | </returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.MarshalAppServer.Stop"> |
| | | <summary> |
| | | Stops this server instance. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.MarshalAppServer.InitializeLifetimeService"> |
| | | <summary> |
| | | Obtains a lifetime service object to control the lifetime policy for this instance. |
| | | </summary> |
| | | <returns> |
| | | An object of type <see cref="T:System.Runtime.Remoting.Lifetime.ILease" /> used to control the lifetime policy for this instance. This is the current lifetime service object for this instance if one exists; otherwise, a new lifetime service object initialized to the value of the <see cref="P:System.Runtime.Remoting.Lifetime.LifetimeServices.LeaseManagerPollTime" /> property. |
| | | </returns> |
| | | <PermissionSet> |
| | | <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="RemotingConfiguration, Infrastructure" /> |
| | | </PermissionSet> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.MarshalAppServer.Name"> |
| | | <summary> |
| | | Gets the name of the server instance. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.MarshalAppServer.Config"> |
| | | <summary> |
| | | Gets the server's config. |
| | | </summary> |
| | | <value> |
| | | The server's config. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.MarshalAppServer.State"> |
| | | <summary> |
| | | Gets the current state of the work item. |
| | | </summary> |
| | | <value> |
| | | The state. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.MarshalAppServer.SessionCount"> |
| | | <summary> |
| | | Gets the total session count. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.ISocketListener"> |
| | | <summary> |
| | | The interface for socket listener |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.ISocketListener.Start(SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Starts to listen |
| | | </summary> |
| | | <param name="config">The server config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.ISocketListener.Stop"> |
| | | <summary> |
| | | Stops listening |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.ISocketListener.Info"> |
| | | <summary> |
| | | Gets the info of listener |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.ISocketListener.EndPoint"> |
| | | <summary> |
| | | Gets the end point the listener is working on |
| | | </summary> |
| | | </member> |
| | | <member name="E:SuperSocket.SocketEngine.ISocketListener.NewClientAccepted"> |
| | | <summary> |
| | | Occurs when new client accepted. |
| | | </summary> |
| | | </member> |
| | | <member name="E:SuperSocket.SocketEngine.ISocketListener.Error"> |
| | | <summary> |
| | | Occurs when error got. |
| | | </summary> |
| | | </member> |
| | | <member name="E:SuperSocket.SocketEngine.ISocketListener.Stopped"> |
| | | <summary> |
| | | Occurs when [stopped]. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketListenerBase.Start(SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Starts to listen |
| | | </summary> |
| | | <param name="config">The server config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="E:SuperSocket.SocketEngine.SocketListenerBase.Stopped"> |
| | | <summary> |
| | | Occurs when [stopped]. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.TcpAsyncSocketListener"> |
| | | <summary> |
| | | Tcp socket listener in async mode |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.TcpAsyncSocketListener.Start(SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Starts to listen |
| | | </summary> |
| | | <param name="config">The server config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.SocketServerBase.SendingQueuePool"> |
| | | <summary> |
| | | Gets the sending queue manager. |
| | | </summary> |
| | | <value> |
| | | The sending queue manager. |
| | | </value> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.INegotiateSocketSession"> |
| | | <summary> |
| | | The interface for socket session which requires negotiation before communication |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.INegotiateSocketSession.Negotiate"> |
| | | <summary> |
| | | Start negotiates |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.INegotiateSocketSession.Result"> |
| | | <summary> |
| | | Gets a value indicating whether this <see cref="T:SuperSocket.SocketEngine.INegotiateSocketSession"/> is result. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if result; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.INegotiateSocketSession.AppSession"> |
| | | <summary> |
| | | Gets the app session. |
| | | </summary> |
| | | <value> |
| | | The app session. |
| | | </value> |
| | | </member> |
| | | <member name="E:SuperSocket.SocketEngine.INegotiateSocketSession.NegotiateCompleted"> |
| | | <summary> |
| | | Occurs when [negotiate completed]. |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.AsyncStreamSocketSession.Start"> |
| | | <summary> |
| | | Starts this session communication. |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.CertificateConfig"> |
| | | <summary> |
| | | Certificate configuration |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.FilePath"> |
| | | <summary> |
| | | Gets the certificate file path. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.Password"> |
| | | <summary> |
| | | Gets the password. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.StoreName"> |
| | | <summary> |
| | | Gets the the store where certificate locates. |
| | | </summary> |
| | | <value> |
| | | The name of the store. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.StoreLocation"> |
| | | <summary> |
| | | Gets the store location of the certificate. |
| | | </summary> |
| | | <value> |
| | | The store location. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.Thumbprint"> |
| | | <summary> |
| | | Gets the thumbprint. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.ClientCertificateRequired"> |
| | | <summary> |
| | | Gets a value indicating whether [client certificate required]. |
| | | </summary> |
| | | <value> |
| | | <c>true</c> if [client certificate required]; otherwise, <c>false</c>. |
| | | </value> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.CertificateConfig.KeyStorageFlags"> |
| | | <summary> |
| | | Gets a value that will be used to instantiate the X509Certificate2 object in the CertificateManager |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.Listener"> |
| | | <summary> |
| | | Listener configuration |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Listener.Ip"> |
| | | <summary> |
| | | Gets the ip of listener |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Listener.Port"> |
| | | <summary> |
| | | Gets the port of listener |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Listener.Backlog"> |
| | | <summary> |
| | | Gets the backlog. |
| | | </summary> |
| | | </member> |
| | | <member name="P:SuperSocket.SocketEngine.Configuration.Listener.Security"> |
| | | <summary> |
| | | Gets the security option, None/Default/Tls/Ssl/... |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.ListenerConfigCollection"> |
| | | <summary> |
| | | Listener configuration collection |
| | | </summary> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.Configuration.ServerCollection"> |
| | | <summary> |
| | | Server configuration collection |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.ServerCollection.AddNew(SuperSocket.SocketEngine.Configuration.Server)"> |
| | | <summary> |
| | | Adds the new server element. |
| | | </summary> |
| | | <param name="newServer">The new server.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.Configuration.ServerCollection.Remove(System.String)"> |
| | | <summary> |
| | | Removes the specified server from the configuration. |
| | | </summary> |
| | | <param name="name">The name.</param> |
| | | </member> |
| | | <member name="T:SuperSocket.SocketEngine.SocketServerFactory"> |
| | | <summary> |
| | | Default socket server factory |
| | | </summary> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.SocketServerFactory.CreateSocketServer``1(SuperSocket.SocketBase.IAppServer,SuperSocket.SocketBase.ListenerInfo[],SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Creates the socket server. |
| | | </summary> |
| | | <typeparam name="TRequestInfo">The type of the request info.</typeparam> |
| | | <param name="appServer">The app server.</param> |
| | | <param name="listeners">The listeners.</param> |
| | | <param name="config">The config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.UdpSocketListener.Start(SuperSocket.SocketBase.Config.IServerConfig)"> |
| | | <summary> |
| | | Starts to listen |
| | | </summary> |
| | | <param name="config">The server config.</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.UdpSocketServer`1.#ctor(SuperSocket.SocketBase.IAppServer,SuperSocket.SocketBase.ListenerInfo[])"> |
| | | <summary> |
| | | Initializes a new instance of the <see cref="T:SuperSocket.SocketEngine.UdpSocketServer`1"/> class. |
| | | </summary> |
| | | <param name="appServer">The app server.</param> |
| | | <param name="listeners">The listeners.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.UdpSocketServer`1.OnNewClientAccepted(SuperSocket.SocketEngine.ISocketListener,System.Net.Sockets.Socket,System.Object)"> |
| | | <summary> |
| | | Called when [new client accepted]. |
| | | </summary> |
| | | <param name="listener">The listener.</param> |
| | | <param name="client">The client.</param> |
| | | <param name="state">The state.</param> |
| | | </member> |
| | | <member name="M:SuperSocket.SocketEngine.UdpSocketSession.UpdateRemoteEndPoint(System.Net.IPEndPoint)"> |
| | | <summary> |
| | | Updates the remote end point of the client. |
| | | </summary> |
| | | <param name="remoteEndPoint">The remote end point.</param> |
| | | </member> |
| | | </members> |
| | | </doc> |