初始化
This commit is contained in:
Binary file not shown.
BIN
.vs/DevModeFirmwareInfo/v16/.suo
Normal file
BIN
.vs/DevModeFirmwareInfo/v16/.suo
Normal file
Binary file not shown.
BIN
.vs/DevModeFirmwareInfo/v17/.suo
Normal file
BIN
.vs/DevModeFirmwareInfo/v17/.suo
Normal file
Binary file not shown.
36
.vs/DevModeFirmwareInfo/v17/DocumentLayout.backup.json
Normal file
36
.vs/DevModeFirmwareInfo/v17/DocumentLayout.backup.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"Version": 1,
|
||||||
|
"WorkspaceRootPath": "E:\\Sync\\DevModeFirmwareInfo\\DevModeFirmwareInfo\\",
|
||||||
|
"Documents": [
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}|DevModeFirmwareInfo.vbproj|e:\\sync\\devmodefirmwareinfo\\devmodefirmwareinfo\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form",
|
||||||
|
"RelativeMoniker": "D:0:0:{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}|DevModeFirmwareInfo.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"DocumentGroupContainers": [
|
||||||
|
{
|
||||||
|
"Orientation": 0,
|
||||||
|
"VerticalTabListWidth": 256,
|
||||||
|
"DocumentGroups": [
|
||||||
|
{
|
||||||
|
"DockedWidth": 200,
|
||||||
|
"SelectedChildIndex": 0,
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 0,
|
||||||
|
"Title": "Form1.vb [\u8BBE\u8BA1]",
|
||||||
|
"DocumentMoniker": "E:\\Sync\\DevModeFirmwareInfo\\DevModeFirmwareInfo\\Form1.vb",
|
||||||
|
"RelativeDocumentMoniker": "Form1.vb",
|
||||||
|
"ToolTip": "E:\\Sync\\DevModeFirmwareInfo\\DevModeFirmwareInfo\\Form1.vb [\u8BBE\u8BA1]",
|
||||||
|
"RelativeToolTip": "Form1.vb [\u8BBE\u8BA1]",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
|
||||||
|
"WhenOpened": "2025-10-08T00:57:04.966Z",
|
||||||
|
"EditorCaption": " [\u8BBE\u8BA1]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
36
.vs/DevModeFirmwareInfo/v17/DocumentLayout.json
Normal file
36
.vs/DevModeFirmwareInfo/v17/DocumentLayout.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"Version": 1,
|
||||||
|
"WorkspaceRootPath": "E:\\Sync\\DevModeFirmwareInfo\\DevModeFirmwareInfo\\",
|
||||||
|
"Documents": [
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}|DevModeFirmwareInfo.vbproj|e:\\sync\\devmodefirmwareinfo\\devmodefirmwareinfo\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form",
|
||||||
|
"RelativeMoniker": "D:0:0:{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}|DevModeFirmwareInfo.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"DocumentGroupContainers": [
|
||||||
|
{
|
||||||
|
"Orientation": 0,
|
||||||
|
"VerticalTabListWidth": 256,
|
||||||
|
"DocumentGroups": [
|
||||||
|
{
|
||||||
|
"DockedWidth": 200,
|
||||||
|
"SelectedChildIndex": 0,
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 0,
|
||||||
|
"Title": "Form1.vb [\u8BBE\u8BA1]",
|
||||||
|
"DocumentMoniker": "E:\\Sync\\DevModeFirmwareInfo\\DevModeFirmwareInfo\\Form1.vb",
|
||||||
|
"RelativeDocumentMoniker": "Form1.vb",
|
||||||
|
"ToolTip": "E:\\Sync\\DevModeFirmwareInfo\\DevModeFirmwareInfo\\Form1.vb [\u8BBE\u8BA1]",
|
||||||
|
"RelativeToolTip": "Form1.vb [\u8BBE\u8BA1]",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
|
||||||
|
"WhenOpened": "2025-10-08T00:57:04.966Z",
|
||||||
|
"EditorCaption": " [\u8BBE\u8BA1]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
30
App.config
Normal file
30
App.config
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
|
</startup>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.5" newVersion="8.0.0.5" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
||||||
15
Database/Base/ColumnSchema.vb
Normal file
15
Database/Base/ColumnSchema.vb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
''' <summary>
|
||||||
|
''' Contains the schema of a single DB column.
|
||||||
|
''' </summary>
|
||||||
|
Public Class ColumnSchema
|
||||||
|
Public ColumnName As String
|
||||||
|
Public ColumnType As String
|
||||||
|
Public Length As Integer
|
||||||
|
Public IsNullable As Boolean
|
||||||
|
Public DefaultValue As String
|
||||||
|
Public IsIdentity As Boolean
|
||||||
|
Public IsCaseSensitivity As Boolean? = Nothing
|
||||||
|
End Class
|
||||||
|
End NameSpace
|
||||||
297
Database/Base/CommandHelpers.vb
Normal file
297
Database/Base/CommandHelpers.vb
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
|
||||||
|
Public MustInherit Class CommandHelpers
|
||||||
|
Public Overridable Function Search(param As SearchParams) As String
|
||||||
|
Dim searchString As New StringBuilder
|
||||||
|
|
||||||
|
'基础查询
|
||||||
|
searchString.Append("Select")
|
||||||
|
searchString.Append(" ")
|
||||||
|
searchString.Append($"{String.Join(",", param.SearchColNames)}")
|
||||||
|
searchString.Append(" ")
|
||||||
|
searchString.Append("From")
|
||||||
|
searchString.Append(" ")
|
||||||
|
searchString.Append($"`{param.TableName}`")
|
||||||
|
|
||||||
|
'筛选条件
|
||||||
|
If param.SearchCondition IsNot Nothing Then
|
||||||
|
If param.SearchCondition.Count > 0 Then
|
||||||
|
searchString.Append(" ")
|
||||||
|
searchString.Append("Where")
|
||||||
|
For i As Integer = 0 To param.SearchCondition.Count - 1
|
||||||
|
If i > 0 Then
|
||||||
|
searchString.Append(" ")
|
||||||
|
searchString.Append(param.SearchCondition(i).LogicPrevious.ToString())
|
||||||
|
End If
|
||||||
|
searchString.Append(param.SearchCondition(i).ToString())
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
'排序与排序方式
|
||||||
|
If param.OrderType <> SearchParams.OrderTypeEnum.None Then
|
||||||
|
searchString.Append($" Order By {param.OrderColName} {param.OrderType}")
|
||||||
|
End If
|
||||||
|
|
||||||
|
'返回结果行数
|
||||||
|
If param.Limit > -1 Then
|
||||||
|
searchString.Append($" Limit {param.Limit}")
|
||||||
|
End If
|
||||||
|
|
||||||
|
searchString.Append(";")
|
||||||
|
Return searchString.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function SearchAll(tableName As String) As String
|
||||||
|
Return $"Select * FROM `{tableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchAll(tableName As String, condition As String) As String
|
||||||
|
Return $"Select * FROM `{tableName}` WHERE {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Search(columnName As List(Of String), tableName As String) As String
|
||||||
|
Dim colNameString As New StringBuilder
|
||||||
|
For i As Integer = 0 To columnName.Count - 1
|
||||||
|
If i = 0 Then
|
||||||
|
colNameString.Append($"`{columnName(i)}`")
|
||||||
|
Else
|
||||||
|
colNameString.Append($",`{columnName(i)}`")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return $"Select {colNameString} FROM `{tableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Search(columnName As String, tableName As String) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Search(columnName As String, tableName As String, condition As String) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` WHERE {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Search(columnName As String, tableName As String, condition As String, limit As Integer) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Limit {limit};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchDistinct(columnName As String, tableName As String) As String
|
||||||
|
Return $"Select Distinct {columnName} FROM `{tableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchDistinct(columnName As String, tableName As String, condition As String) As String
|
||||||
|
Return $"Select Distinct {columnName} FROM `{tableName}` WHERE {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchDescOrder(columnName As String, tableName As String, orderCol As String) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Desc;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchDescOrder(columnName As String, tableName As String, orderCol As String, limit As Integer) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Desc Limit {limit};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchDescOrder(columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By `{orderCol}` Desc;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchDescOrder(columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String, limit As Integer) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By `{orderCol}` Desc Limit {limit};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchAscOrder(ByVal columnName As String, ByVal tableName As String, ByVal orderCol As String) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` Order By {orderCol} Asc;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function SearchAscOrder(ByVal columnName As String, ByVal tableName As String, ByVal condition As String, ByVal orderCol As String) As String
|
||||||
|
Return $"Select {columnName} FROM `{tableName}` WHERE {condition} Order By {orderCol} Asc;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchNullTable(tableName As String) As String
|
||||||
|
Return $"Select * FROM `{tableName}` Where Limit 0;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function Insert(ByVal tableName As String, ByVal values As String) As String
|
||||||
|
Return $"Insert into `{tableName}` Values ( {values} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Insert(ByVal tableName As String, ByVal colNames As String, ByVal values As String) As String
|
||||||
|
Return $"Insert into `{tableName}` ({colNames}) Values ( {values} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Insert(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If colNames.Length = 0 Then
|
||||||
|
colNames.Append($"`{keyValuePair.Key}`")
|
||||||
|
values.Append($"'{keyValuePair.Value}'")
|
||||||
|
Else
|
||||||
|
colNames.Append($",`{keyValuePair.Key}`")
|
||||||
|
values.Append($",'{keyValuePair.Value}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function InsertByParameters(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If colNames.Length = 0 Then
|
||||||
|
colNames.Append($"`{keyValuePair.Key}`")
|
||||||
|
values.Append($"{keyValuePair.Value}")
|
||||||
|
Else
|
||||||
|
colNames.Append($",`{keyValuePair.Key}`")
|
||||||
|
values.Append($",{keyValuePair.Value}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function AddCol(ByVal tableName As String, ByVal colName As String, ByVal colType As String, Optional isNull As Boolean = True) As String
|
||||||
|
Return $"Alter Table `{tableName}` Add `{colName}` {colType} {IIf(isNull, "Default Null", "Not Null")};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function AddCol(ByVal tableName As String, colParam As DatabaseData) As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"Alter Table `{tableName}` ")
|
||||||
|
sb.Append("Add ")
|
||||||
|
sb.Append(colParam.ToAddColString())
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function AddCols(tableName As String, colList As List(Of DatabaseData)) As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"Alter Table `{tableName}` ")
|
||||||
|
sb.Append("Add ")
|
||||||
|
sb.Append("( ")
|
||||||
|
|
||||||
|
sb.Append(colList(0).ToAddColString())
|
||||||
|
For i As Integer = 1 To colList.Count - 1
|
||||||
|
sb.Append($",{colList(i).ToAddColString()}")
|
||||||
|
Next
|
||||||
|
|
||||||
|
sb.Append(");")
|
||||||
|
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function Update(ByVal tableName As String, ByVal destStr As String, ByVal condition As String) As String
|
||||||
|
Return $"Update `{tableName}` Set {destStr} Where {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Update(ByVal tableName As String, dicNameValues As Dictionary(Of String, String), ByVal condition As String) As String
|
||||||
|
Dim destStr As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If destStr.Length = 0 Then
|
||||||
|
destStr.Append($"`{keyValuePair.Key}` = '{keyValuePair.Value}'")
|
||||||
|
Else
|
||||||
|
destStr.Append($",`{keyValuePair.Key}` = '{keyValuePair.Value}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Update(tableName, destStr.ToString(), condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function Update(ByVal tableName As String, names() As String, values() As String, condition As String) As String
|
||||||
|
Dim destStr As New StringBuilder
|
||||||
|
If names.Length <> values.Length Then
|
||||||
|
Throw New Exception("DBHelpers_Update:names.Length <> values.Length")
|
||||||
|
End If
|
||||||
|
|
||||||
|
For i As Integer = 0 To names.Length - 1
|
||||||
|
If i = 0 Then
|
||||||
|
destStr.Append($"{names(i)} = '{values(i)}'")
|
||||||
|
Else
|
||||||
|
destStr.Append($",{names(i)} = '{values(i)}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return Update(tableName, destStr.ToString(), condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function DeleteRows(ByVal tableName As String, ByVal condition As String) As String
|
||||||
|
Return $"Delete From `{tableName}` Where {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 清空数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DeleteTable(ByVal tableName As String) As String
|
||||||
|
Return $"Delete From `{tableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function DropCol(ByVal tableName As String, ByVal colName As String) As String
|
||||||
|
Return $"Alter Table `{tableName}` Drop Column `{colName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 删除数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DropTable(ByVal tableName As String) As String
|
||||||
|
Return $"Drop Table `{tableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function CreateTable(ByVal tableName As String, ByVal createStr As String) As String
|
||||||
|
Return $"Create Table `{tableName}` ( {createStr} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function CreateTableWhenNotExists(tableName As String, createStr As String) As String
|
||||||
|
Return $"Create Table if not exists `{tableName}` ( {createStr} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Overridable Function CreateLikeTable(tableName As String, baseTableName As String) As String
|
||||||
|
Return $"create table `{tableName}` like `{baseTableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function CreateLikeTableNotExists(tableName As String, baseTableName As String) As String
|
||||||
|
Return $"create table if not exists `{tableName}` like `{baseTableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建表,同时复制基础表数据(不包含原表索引与主键)
|
||||||
|
''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="baseTableName">基础表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function CreateCopyTable(tableName As String, baseTableName As String) As String
|
||||||
|
Return $"create table `{tableName}` as select * from `{baseTableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
|
||||||
|
''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="baseTableName">基础表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function CreateCopyTableNotExists(tableName As String, baseTableName As String) As String
|
||||||
|
Return $"create table if not exists `{tableName}` as select * from `{baseTableName}`;"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 复制基础表数据到新表中
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="baseTableName">基础表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function InsertCopyTable(tableName As String, baseTableName As String) As String
|
||||||
|
Return $"insert into `{tableName}` select * from `{baseTableName}`;"
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
94
Database/Base/DatabaseData.vb
Normal file
94
Database/Base/DatabaseData.vb
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
Public Class DatabaseData
|
||||||
|
Enum TypeEnum
|
||||||
|
[Bit]
|
||||||
|
[Char]
|
||||||
|
[Date]
|
||||||
|
[DateTime]
|
||||||
|
[Double]
|
||||||
|
[Enum]
|
||||||
|
[Float]
|
||||||
|
[Int]
|
||||||
|
[IntUnsigned]
|
||||||
|
[Json]
|
||||||
|
[Text]
|
||||||
|
[Time]
|
||||||
|
Varchar
|
||||||
|
[Year]
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColumnName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当前值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Value() As String
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 默认值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DefaultValue() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataType() As TypeEnum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型长度
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataTypeLength() As Integer
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否允许为空
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsNull() As Boolean = True
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否自动增长
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsAutoIncrement() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为主键
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsPrimaryKey() As Boolean
|
||||||
|
|
||||||
|
Public Function ToAddColString() As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"`{ColumnName}`")
|
||||||
|
|
||||||
|
Select Case DataType
|
||||||
|
Case TypeEnum.Char, TypeEnum.Varchar
|
||||||
|
sb.Append($" {DataType}({DataTypeLength}) ")
|
||||||
|
Case TypeEnum.Int
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
|
||||||
|
Case Else
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
End Select
|
||||||
|
|
||||||
|
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||||||
|
|
||||||
|
If IsPrimaryKey Then
|
||||||
|
sb.Append($" PRIMARY KEY")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
12
Database/Base/DatabaseSchema.vb
Normal file
12
Database/Base/DatabaseSchema.vb
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Imports System.Collections.Generic
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Contains the entire database schema
|
||||||
|
''' </summary>
|
||||||
|
Public Class DatabaseSchema
|
||||||
|
Public Tables As List(Of TableSchema) = New List(Of TableSchema)()
|
||||||
|
Public Views As List(Of ViewSchema) = New List(Of ViewSchema)()
|
||||||
|
End Class
|
||||||
|
End NameSpace
|
||||||
11
Database/Base/ForeignKeySchema.vb
Normal file
11
Database/Base/ForeignKeySchema.vb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
Public Class ForeignKeySchema
|
||||||
|
Public TableName As String
|
||||||
|
Public ColumnName As String
|
||||||
|
Public ForeignTableName As String
|
||||||
|
Public ForeignColumnName As String
|
||||||
|
Public CascadeOnDelete As Boolean
|
||||||
|
Public IsNullable As Boolean
|
||||||
|
End Class
|
||||||
|
End NameSpace
|
||||||
16
Database/Base/IndexSchema.vb
Normal file
16
Database/Base/IndexSchema.vb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Imports System.Collections.Generic
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
|
||||||
|
|
||||||
|
Public Class IndexSchema
|
||||||
|
Public IndexName As String
|
||||||
|
Public IsUnique As Boolean
|
||||||
|
Public Columns As List(Of IndexColumn)
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class IndexColumn
|
||||||
|
Public ColumnName As String
|
||||||
|
Public IsAscending As Boolean
|
||||||
|
End Class
|
||||||
|
End NameSpace
|
||||||
7
Database/Base/InsertParams.vb
Normal file
7
Database/Base/InsertParams.vb
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Namespace Database.Base
|
||||||
|
Public Class InsertParams
|
||||||
|
Public Property TableName() As String
|
||||||
|
|
||||||
|
Public Property InsertKeyValue As Dictionary(Of String, String)
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
71
Database/Base/SearchCondition.vb
Normal file
71
Database/Base/SearchCondition.vb
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
Public Class SearchCondition
|
||||||
|
Enum ConditionType
|
||||||
|
LessThan
|
||||||
|
GreaterThen
|
||||||
|
EqualTo
|
||||||
|
LessThanOrEqualTo
|
||||||
|
GreaterThenOrEqualTo
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Enum LogicType
|
||||||
|
[And]
|
||||||
|
[Or]
|
||||||
|
[Not]
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 判断列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 判断条件
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Condition() As ConditionType = ConditionType.EqualTo
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 判断值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColValue() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当前条件与上一个条件的逻辑关系
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property LogicPrevious() As LogicType = LogicType.And
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 将当前条件转换为字符串,不支持将条件逻辑关系同时转换
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overrides Function ToString() As String
|
||||||
|
Dim stringBuilder As New StringBuilder
|
||||||
|
stringBuilder.Append(" ")
|
||||||
|
stringBuilder.Append(ColName)
|
||||||
|
|
||||||
|
Select Case Condition
|
||||||
|
Case ConditionType.EqualTo
|
||||||
|
stringBuilder.Append("=")
|
||||||
|
Case ConditionType.LessThan
|
||||||
|
stringBuilder.Append("<")
|
||||||
|
Case ConditionType.LessThanOrEqualTo
|
||||||
|
stringBuilder.Append("<=")
|
||||||
|
Case ConditionType.GreaterThen
|
||||||
|
stringBuilder.Append(">")
|
||||||
|
Case ConditionType.GreaterThenOrEqualTo
|
||||||
|
stringBuilder.Append(">=")
|
||||||
|
End Select
|
||||||
|
|
||||||
|
stringBuilder.Append($"'{ColValue}'")
|
||||||
|
|
||||||
|
Return stringBuilder.ToString()
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
46
Database/Base/SearchParams.vb
Normal file
46
Database/Base/SearchParams.vb
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
Namespace Database.Base
|
||||||
|
Public Class SearchParams
|
||||||
|
Enum OrderTypeEnum
|
||||||
|
None
|
||||||
|
Desc
|
||||||
|
Asc
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询条件的表名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property TableName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当IsSearchAllCols = False时,查询返回列名集合
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property SearchColNames() As String()
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询的条件
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property SearchCondition() As List(Of SearchCondition)
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 排序方式
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property OrderType As OrderTypeEnum = OrderTypeEnum.None
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 但需要排序时排序列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property OrderColName() As String
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 从返回结果提取指定行的内容
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Limit() As Integer = 0
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
14
Database/Base/TableSchema.vb
Normal file
14
Database/Base/TableSchema.vb
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Imports System.Collections.Generic
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
|
||||||
|
|
||||||
|
Public Class TableSchema
|
||||||
|
Public TableName As String
|
||||||
|
Public TableSchemaName As String
|
||||||
|
Public Columns As List(Of ColumnSchema)
|
||||||
|
Public PrimaryKey As List(Of String)
|
||||||
|
Public ForeignKeys As List(Of ForeignKeySchema)
|
||||||
|
Public Indexes As List(Of IndexSchema)
|
||||||
|
End Class
|
||||||
|
End NameSpace
|
||||||
71
Database/Base/TriggerBuilder.vb
Normal file
71
Database/Base/TriggerBuilder.vb
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
Imports System.Collections.Generic
|
||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
|
||||||
|
Public Module TriggerBuilder
|
||||||
|
Public Function GetForeignKeyTriggers(ByVal dt As TableSchema) As IList(Of TriggerSchema)
|
||||||
|
Dim result As IList(Of TriggerSchema) = New List(Of TriggerSchema)()
|
||||||
|
For Each fks As ForeignKeySchema In dt.ForeignKeys
|
||||||
|
result.Add(GenerateInsertTrigger(fks))
|
||||||
|
result.Add(GenerateUpdateTrigger(fks))
|
||||||
|
result.Add(GenerateDeleteTrigger(fks))
|
||||||
|
Next
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function MakeTriggerName(ByVal fks As ForeignKeySchema, ByVal prefix As String) As String
|
||||||
|
Return prefix & "_" & fks.TableName & "_" & fks.ColumnName & "_" & fks.ForeignTableName & "_" & fks.ForeignColumnName
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GenerateInsertTrigger(ByVal fks As ForeignKeySchema) As TriggerSchema
|
||||||
|
Dim trigger As TriggerSchema = New TriggerSchema()
|
||||||
|
trigger.Name = MakeTriggerName(fks, "fki")
|
||||||
|
trigger.Type = TriggerType.Before
|
||||||
|
trigger.Event = TriggerEvent.Insert
|
||||||
|
trigger.Table = fks.TableName
|
||||||
|
Dim nullString As String = ""
|
||||||
|
|
||||||
|
If fks.IsNullable Then
|
||||||
|
nullString = " NEW." & fks.ColumnName & " IS NOT NULL AND"
|
||||||
|
End If
|
||||||
|
|
||||||
|
trigger.Body = "SELECT RAISE(ROLLBACK, 'insert on table " & fks.TableName & " violates foreign key constraint " & trigger.Name & "')" & " WHERE" & nullString & " (SELECT " & fks.ForeignColumnName & " FROM " & fks.ForeignTableName & " WHERE " & fks.ForeignColumnName & " = NEW." & fks.ColumnName & ") IS NULL; "
|
||||||
|
Return trigger
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GenerateUpdateTrigger(ByVal fks As ForeignKeySchema) As TriggerSchema
|
||||||
|
Dim trigger As TriggerSchema = New TriggerSchema()
|
||||||
|
trigger.Name = MakeTriggerName(fks, "fku")
|
||||||
|
trigger.Type = TriggerType.Before
|
||||||
|
trigger.Event = TriggerEvent.Update
|
||||||
|
trigger.Table = fks.TableName
|
||||||
|
Dim triggerName As String = trigger.Name
|
||||||
|
Dim nullString As String = ""
|
||||||
|
|
||||||
|
If fks.IsNullable Then
|
||||||
|
nullString = " NEW." & fks.ColumnName & " IS NOT NULL AND"
|
||||||
|
End If
|
||||||
|
|
||||||
|
trigger.Body = "SELECT RAISE(ROLLBACK, 'update on table " & fks.TableName & " violates foreign key constraint " & triggerName & "')" & " WHERE" & nullString & " (SELECT " & fks.ForeignColumnName & " FROM " & fks.ForeignTableName & " WHERE " & fks.ForeignColumnName & " = NEW." & fks.ColumnName & ") IS NULL; "
|
||||||
|
Return trigger
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GenerateDeleteTrigger(ByVal fks As ForeignKeySchema) As TriggerSchema
|
||||||
|
Dim trigger As TriggerSchema = New TriggerSchema()
|
||||||
|
trigger.Name = MakeTriggerName(fks, "fkd")
|
||||||
|
trigger.Type = TriggerType.Before
|
||||||
|
trigger.Event = TriggerEvent.Delete
|
||||||
|
trigger.Table = fks.ForeignTableName
|
||||||
|
Dim triggerName as String = trigger.Name
|
||||||
|
|
||||||
|
If Not fks.CascadeOnDelete Then
|
||||||
|
trigger.Body = "SELECT RAISE(ROLLBACK, 'delete on table " & fks.ForeignTableName & " violates foreign key constraint " & triggerName & "')" & " WHERE (SELECT " & fks.ColumnName & " FROM " & fks.TableName & " WHERE " & fks.ColumnName & " = OLD." & fks.ForeignColumnName & ") IS NOT NULL; "
|
||||||
|
Else
|
||||||
|
trigger.Body = "DELETE FROM [" & fks.TableName & "] WHERE " & fks.ColumnName & " = OLD." & fks.ForeignColumnName & "; "
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return trigger
|
||||||
|
End Function
|
||||||
|
End Module
|
||||||
|
End NameSpace
|
||||||
20
Database/Base/TriggerSchema.vb
Normal file
20
Database/Base/TriggerSchema.vb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Namespace Database.Base
|
||||||
|
Public Enum TriggerEvent
|
||||||
|
Delete
|
||||||
|
Update
|
||||||
|
Insert
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public Enum TriggerType
|
||||||
|
After
|
||||||
|
Before
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
Public Class TriggerSchema
|
||||||
|
Public Name As String
|
||||||
|
Public [Event] As TriggerEvent
|
||||||
|
Public Type As TriggerType
|
||||||
|
Public Body As String
|
||||||
|
Public Table As String
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
17
Database/Base/ViewSchema.vb
Normal file
17
Database/Base/ViewSchema.vb
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
Namespace Database.Base
|
||||||
|
''' <summary>
|
||||||
|
''' Describes a single view schema
|
||||||
|
''' </summary>
|
||||||
|
Public Class ViewSchema
|
||||||
|
''' <summary>
|
||||||
|
''' Contains the view name
|
||||||
|
''' </summary>
|
||||||
|
Public ViewName As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Contains the view SQL statement
|
||||||
|
''' </summary>
|
||||||
|
Public ViewSql As String
|
||||||
|
End Class
|
||||||
|
End NameSpace
|
||||||
756
Database/DbCmdHelper.vb
Normal file
756
Database/DbCmdHelper.vb
Normal file
@@ -0,0 +1,756 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据库语句助手
|
||||||
|
''' 时间:2020-12-21
|
||||||
|
''' 作者:ML
|
||||||
|
''' 版本:1.0
|
||||||
|
'''
|
||||||
|
''' 注意:添加一条数据库帮助语句时,需要考虑Mysql/Sqlite/Mssql等数据库是否支持命令,不支持则需要在对应帮助类中重写该帮助语句
|
||||||
|
''' 注意:Sqlite数据库与大多数据库不相同,DB开头数据库语句大多不适用
|
||||||
|
'''
|
||||||
|
''' </summary>
|
||||||
|
Public MustInherit Class DbCmdHelper
|
||||||
|
Protected FiledSuffix As Char
|
||||||
|
Protected FiledPrefix As Char
|
||||||
|
|
||||||
|
Public Shared Function CreateCmdHelper(type As DbExecutor.DbTypeEnum) As DbCmdHelper
|
||||||
|
Select Case type
|
||||||
|
Case DbExecutor.DbTypeEnum.Mysql
|
||||||
|
Return New MysqlCmdHelper()
|
||||||
|
Case DbExecutor.DbTypeEnum.Mssql
|
||||||
|
Return New MssqlCmdHelper()
|
||||||
|
Case DbExecutor.DbTypeEnum.Sqlite
|
||||||
|
Return New SqliteCmdHelper()
|
||||||
|
Case Else
|
||||||
|
Throw New Exception($"CreateCmdHelper :Unknown Type {type}")
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
#Region "访问单数据库连接"
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据表符合条件的所有数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="condition">查询条件,</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function SearchAll(tableName As String, Optional condition As String = "") As String
|
||||||
|
If String.IsNullOrWhiteSpace(condition) Then
|
||||||
|
Return $"Select * FROM {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
Else
|
||||||
|
Return $"Select * FROM {FiledSuffix}{tableName}{FiledPrefix} WHERE {condition};"
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询表符合条件的所有指定列的数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="columnName">列名集合,需要返回多列时用','符号分隔列名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="condition">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function Search(columnName As String, tableName As String, Optional condition As String = "") As String
|
||||||
|
If String.IsNullOrWhiteSpace(condition) Then
|
||||||
|
Return $"Select {columnName} FROM {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
Else
|
||||||
|
Return $"Select {columnName} FROM {FiledSuffix}{tableName}{FiledPrefix} WHERE {condition};"
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询表符合条件的所有指定列的数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="columnName">表名</param>
|
||||||
|
''' <param name="tableName">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function Search(columnName As List(Of String), tableName As String, Optional condition As String = "") As String
|
||||||
|
Dim colNameString As New StringBuilder
|
||||||
|
For i As Integer = 0 To columnName.Count - 1
|
||||||
|
If i = 0 Then
|
||||||
|
colNameString.Append($"{FiledSuffix}{columnName(i)}{FiledPrefix}")
|
||||||
|
Else
|
||||||
|
colNameString.Append($",{FiledSuffix}{columnName(i)}{FiledPrefix}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
If String.IsNullOrWhiteSpace(condition) Then
|
||||||
|
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
Else
|
||||||
|
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix} Where {condition};"
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overridable Function SearchOrder(columnName As List(Of String), tableName As String, Optional orderString As String = "") As String
|
||||||
|
Dim colNameString As New StringBuilder
|
||||||
|
For i As Integer = 0 To columnName.Count - 1
|
||||||
|
If i = 0 Then
|
||||||
|
colNameString.Append($"{FiledSuffix}{columnName(i)}{FiledPrefix}")
|
||||||
|
Else
|
||||||
|
colNameString.Append($",{FiledSuffix}{columnName(i)}{FiledPrefix}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
If String.IsNullOrWhiteSpace(orderString) Then
|
||||||
|
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
Else
|
||||||
|
Return $"Select {colNameString} FROM {FiledSuffix}{tableName}{FiledPrefix} {orderString};"
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定表包含的内容行数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <param name="condition">查询条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function SearchCount(tableName As String, Optional condition As String = "") As String
|
||||||
|
Return Search("count(*)", tableName, condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据表的信息
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function SearchTableInfo(tableName As String) As String
|
||||||
|
Return $"Select * from information_schema.tables where table_name = '{tableName}';"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据表是否存在的信息,返回查询当前表在数据库中存在的数量
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function SearchTableExists(tableName As String) As String
|
||||||
|
Return $"Select count(*) from information_schema.tables where table_name = '{tableName}';"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据表插入一行数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colNames">列名字符串</param>
|
||||||
|
''' <param name="values">列值字符串</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function Insert(tableName As String, colNames As String, values As String) As String
|
||||||
|
'将返回输出到C盘 log.txt中
|
||||||
|
'判断文件是否存在,如果不存在则创建
|
||||||
|
|
||||||
|
Return $"Insert into {FiledSuffix}{tableName}{FiledPrefix} ({colNames}) Values ( {values} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据表插入一行数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="dicNameValues">列名与列值键值对</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function Insert(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If colNames.Length = 0 Then
|
||||||
|
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($"'{keyValuePair.Value}'")
|
||||||
|
Else
|
||||||
|
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($",'{keyValuePair.Value}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Public Overridable Function Insert2(tableName As String, dicNameValues As Dictionary(Of String, Object )) As String
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, Object) In dicNameValues
|
||||||
|
|
||||||
|
If colNames.Length = 0 Then
|
||||||
|
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($"'{keyValuePair.Value}'")
|
||||||
|
Else
|
||||||
|
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($",'{keyValuePair.Value}'")
|
||||||
|
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据表插入一行,通过命令参数方式执行时使用
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName"></param>
|
||||||
|
''' <param name="dicNameValues"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function InsertParam(tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If colNames.Length = 0 Then
|
||||||
|
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($"{keyValuePair.Value}")
|
||||||
|
Else
|
||||||
|
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($",{keyValuePair.Value}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Insert(tableName, colNames.ToString(), values.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colNames">字段列表</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function InsertParam(tableName As String, colNames As List(Of String)) As String
|
||||||
|
Dim colNameString As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each colName As String In colNames
|
||||||
|
If colNameString.Length = 0 Then
|
||||||
|
colNameString.Append($"{FiledSuffix}{colName}{FiledPrefix}")
|
||||||
|
values.Append($"@{colName}")
|
||||||
|
Else
|
||||||
|
colNameString.Append($",{FiledSuffix}{colName}{FiledPrefix}")
|
||||||
|
values.Append($",@{colName}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Insert(tableName, colNameString.ToString(), values.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 更新指定表数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="destStr">更新字符串</param>
|
||||||
|
''' <param name="condition"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function Update(tableName As String, destStr As String, condition As String) As String
|
||||||
|
Return $"Update {FiledSuffix}{tableName}{FiledPrefix} Set {destStr} Where {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 更新指定表数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="dicNameValues">更新列名与列值键值对</param>
|
||||||
|
''' <param name="condition">更新列索引条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function Update(tableName As String, dicNameValues As Dictionary(Of String, String), condition As String) As String
|
||||||
|
Dim destStr As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If destStr.Length = 0 Then
|
||||||
|
destStr.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix} = '{keyValuePair.Value}'")
|
||||||
|
Else
|
||||||
|
destStr.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix} = '{keyValuePair.Value}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Update(tableName, destStr.ToString(), condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 更新指定数据库中指定表数据,参数名由@{ColName}
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="colNames">更新列名的集合</param>
|
||||||
|
''' <param name="condition">更新列索引条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function UpdateParam(tableName As String, colNames As List(Of String), condition As String) As String
|
||||||
|
Dim destStr As New StringBuilder
|
||||||
|
For Each colName As String In colNames
|
||||||
|
If destStr.Length = 0 Then
|
||||||
|
destStr.Append($"{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
|
||||||
|
Else
|
||||||
|
destStr.Append($",{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return Update(tableName, destStr.ToString(), condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据表增加一列数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colName">列名</param>
|
||||||
|
''' <param name="colType">列类型</param>
|
||||||
|
''' <param name="isNull">是否允许为空</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function AddCol(tableName As String, colName As String, colType As String, Optional isNull As Boolean = True) As String
|
||||||
|
Return $"Alter Table {FiledSuffix}{tableName}{FiledPrefix} Add {FiledSuffix}{colName}{FiledPrefix} {colType} {IIf(isNull, "Default Null", "Not Null")};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据表删除一列数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colName">需要删除的列名,仅一列</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DropCol(tableName As String, colName As String) As String
|
||||||
|
Return $"Alter Table {FiledSuffix}{tableName}{FiledPrefix} Drop Column {FiledSuffix}{colName}{FiledPrefix};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 删除指定表多行数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="condition">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DeleteRows(tableName As String, condition As String) As String
|
||||||
|
Return $"Delete From {FiledSuffix}{tableName}{FiledPrefix} Where {condition};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="createStr">创建表的列信息字符串</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function CreateTable(tableName As String, createStr As String) As String
|
||||||
|
Return $"Create Table {FiledSuffix}{tableName}{FiledPrefix} ( {createStr} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建数据表,如果存在则不创建
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="createStr">创建表的列信息字符串</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function CreateTableWhenNotExists(tableName As String, createStr As String) As String
|
||||||
|
Return $"Create Table if not exists {FiledSuffix}{tableName}{FiledPrefix} ( {createStr} );"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 清空数据表,表依旧存在
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DeleteTable(tableName As String) As String
|
||||||
|
Return $"Delete From {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 删除数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DropTable(tableName As String) As String
|
||||||
|
Return $"Drop Table {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 删除数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DropTableWhenExists(tableName As String) As String
|
||||||
|
Return $"Drop Table If Exists {FiledSuffix}{tableName}{FiledPrefix};"
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
#Region "访问多数据库连接"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据库中指定数据表符合条件的所有指定列的数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="ColsName">列名集合,需要返回多列时用','符号分隔列名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="condition">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbSearch(dbName As String, colsName As String, tableName As String, Optional condition As String = "") As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Select {colsName} From ")
|
||||||
|
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
|
||||||
|
If String.IsNullOrWhiteSpace(condition) = False Then
|
||||||
|
cmdText.Append($" WHERE {condition}")
|
||||||
|
End If
|
||||||
|
|
||||||
|
cmdText.Append($";")
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据库中指定数据表符合条件的所有指定列的去重数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="ColsName">列名集合,需要返回多列时用','符号分隔列名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="condition">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbDistinctSearch(dbName As String, colsName As String, tableName As String, Optional condition As String = "") As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Select Distinct {colsName} From ")
|
||||||
|
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
|
||||||
|
If String.IsNullOrWhiteSpace(condition) = False Then
|
||||||
|
cmdText.Append($" WHERE {condition}")
|
||||||
|
End If
|
||||||
|
|
||||||
|
cmdText.Append($";")
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据库中指定数据表符合条件的所有指定列的数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="columnName">表名</param>
|
||||||
|
''' <param name="tableName">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbSearch(dbName As String, columnName As List(Of String), tableName As String, Optional condition As String = "") As String
|
||||||
|
Dim colNameString As New StringBuilder
|
||||||
|
For i As Integer = 0 To columnName.Count - 1
|
||||||
|
If i = 0 Then
|
||||||
|
colNameString.Append($"{FiledSuffix}{columnName(i)}{FiledPrefix}")
|
||||||
|
Else
|
||||||
|
colNameString.Append($",{FiledSuffix}{columnName(i)}{FiledPrefix}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return DbSearch(dbName, colNameString.ToString(), tableName, condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定表包含的内容行数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <param name="condition">查询条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbSearchCount(dbName As String, tableName As String, Optional condition As String = "") As String
|
||||||
|
Return DbSearch(dbName, "count(*)", tableName, condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据库中指定数据表符合条件的所有数据
|
||||||
|
'''
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <param name="condition">查询条件(可选)</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbSearchAll(dbName As String, tableName As String, Optional condition As String = "") As String
|
||||||
|
Return DbSearch(dbName, "*", tableName, condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据库中指定数据表的信息
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbSearchTableInfo(dbName As String, tableName As String) As String
|
||||||
|
Return DbSearch("", "*", "information_schema.tables", "table_schema = '{dbName}' and table_name = '{tableName}'")
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据表是否存在的信息,返回查询当前表在指定数据库中存在的数量
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbSearchTableExists(dbName As String, tableName As String) As String
|
||||||
|
Return DbSearch("", "count(*)", "information_schema.tables", "table_schema = '{dbName}' and table_name = '{tableName}'")
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中数据表插入一行数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colNames">列名字符串</param>
|
||||||
|
''' <param name="values">列值字符串</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbInsert(dbName As String, tableName As String, colNames As String, values As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Insert into ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" ({colNames}) Values ( {values} );")
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中数据表插入一行数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="dicNameValues">列名与列值键值对</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbInsert(dbName As String, tableName As String, dicNameValues As Dictionary(Of String, String)) As String
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim values As New StringBuilder
|
||||||
|
For Each keyValuePair As KeyValuePair(Of String, String) In dicNameValues
|
||||||
|
If colNames.Length = 0 Then
|
||||||
|
colNames.Append($"{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($"'{keyValuePair.Value}'")
|
||||||
|
Else
|
||||||
|
colNames.Append($",{FiledSuffix}{keyValuePair.Key}{FiledPrefix}")
|
||||||
|
values.Append($",'{keyValuePair.Value}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return DbInsert(dbName, tableName, colNames.ToString(), values.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName"></param>
|
||||||
|
''' <param name="colNames">需要插入列名的集合</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbInsertParam(dbName As String, tableName As String, colNames As List(Of String)) As String
|
||||||
|
Dim colNameBuilder As New StringBuilder
|
||||||
|
Dim valueBuilder As New StringBuilder
|
||||||
|
For Each colName As String In colNames
|
||||||
|
If colNameBuilder.Length = 0 Then
|
||||||
|
colNameBuilder.Append($"{FiledSuffix}{colName}{FiledPrefix}")
|
||||||
|
valueBuilder.Append($"@{colName}")
|
||||||
|
Else
|
||||||
|
colNameBuilder.Append($",{FiledSuffix}{colName}{FiledPrefix}")
|
||||||
|
valueBuilder.Append($",@{colName}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
'insert into dbName.tablename (1,2,3) value (@1,@2,@3)
|
||||||
|
Return DbInsert(dbName, tableName, colNameBuilder.ToString(), valueBuilder.ToString())
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 更新指定数据库中指定表数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="destStr">更新字符串</param>
|
||||||
|
''' <param name="condition"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbUpdate(dbName As String, tableName As String, destStr As String, condition As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
Dim tmpStrCmdText As String = ""
|
||||||
|
|
||||||
|
cmdText.Append($"Update ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" Set {destStr} Where {condition};")
|
||||||
|
tmpStrCmdText = cmdText.ToString()
|
||||||
|
'Console.WriteLine("SQL_CMD = " & tmpStrCmdText)
|
||||||
|
'If Not System.IO.File.Exists("C:\log.txt") Then
|
||||||
|
' System.IO.File.Create("C:\log.txt").Dispose()
|
||||||
|
'End If
|
||||||
|
''将返回写入 Log.txt中
|
||||||
|
'System.IO.File.AppendAllText("C:\log.txt", $"{tmpStrCmdText}")
|
||||||
|
Return tmpStrCmdText
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 更新指定数据库中指定表数据,参数名由@{ColName}
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="colNames">更新列名的集合</param>
|
||||||
|
''' <param name="condition">更新列索引条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbUpdateParam(dbName As String, tableName As String, colNames As List(Of String), condition As String) As String
|
||||||
|
Dim destStr As New StringBuilder
|
||||||
|
For Each colName As String In colNames
|
||||||
|
If destStr.Length = 0 Then
|
||||||
|
destStr.Append($"{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
|
||||||
|
Else
|
||||||
|
destStr.Append($",{FiledSuffix}{colName}{FiledPrefix} = @{colName}")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return DbUpdate(dbName, tableName, destStr.ToString(), condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 更新指定数据库中指定表数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">指定表名</param>
|
||||||
|
''' <param name="filedDictionary">更新列名与列值键值对</param>
|
||||||
|
''' <param name="condition">更新列索引条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbUpdate(dbName As String, tableName As String, filedDictionary As Dictionary(Of String, String), condition As String) As String
|
||||||
|
Dim destStr As New StringBuilder
|
||||||
|
For Each filed As KeyValuePair(Of String, String) In filedDictionary
|
||||||
|
If destStr.Length = 0 Then
|
||||||
|
destStr.Append($"{FiledSuffix}{filed.Key}{FiledPrefix} = '{filed.Value}'")
|
||||||
|
Else
|
||||||
|
destStr.Append($",{FiledSuffix}{filed.Key}{FiledPrefix} = '{filed.Value}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return DbUpdate(dbName, tableName, destStr.ToString(), condition)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中指定数据表增加一列数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colName">列名</param>
|
||||||
|
''' <param name="colType">列类型</param>
|
||||||
|
''' <param name="isNull">是否允许为空</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbAddCol(dbName As String, tableName As String, colName As String, colType As String, Optional isNull As Boolean = True) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Alter Table ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" Add {FiledSuffix}{colName}{FiledPrefix} {colType} {IIf(isNull, "Default Null", "Not Null")};")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中数据表删除一列数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="colName">需要删除的列名,仅一列</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbDropCol(dbName As String, tableName As String, colName As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Alter Table ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" Drop Column {FiledSuffix}{colName}{FiledPrefix};")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中指定表删除多行数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="condition">条件</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbDeleteRows(dbName As String, tableName As String, condition As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Delete From ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" Where {condition};")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中创建数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="createStr">创建表的列信息字符串</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbCreateTable(dbName As String, tableName As String, createStr As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Create Table ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" ( {createStr} );")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 指定数据库中创建数据表,如果存在则不创建
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">表名</param>
|
||||||
|
''' <param name="createStr">创建表的列信息字符串</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbCreateTableWhenNotExists(dbName As String, tableName As String, createStr As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Create Table if not exists ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($" ( {createStr} );")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 清空指定数据库中数据表,表依旧存在
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbDeleteTable(dbName As String, tableName As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Delete From ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($";")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 删除指定数据库中数据表
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="dbName">数据库名</param>
|
||||||
|
''' <param name="tableName">数据表名</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overridable Function DbDropTable(dbName As String, tableName As String) As String
|
||||||
|
Dim cmdText As New StringBuilder
|
||||||
|
cmdText.Append($"Drop Table ")
|
||||||
|
If String.IsNullOrEmpty(dbName) = False Then
|
||||||
|
cmdText.Append($"{FiledSuffix}{dbName}{FiledPrefix}.")
|
||||||
|
End If
|
||||||
|
cmdText.Append($"{FiledSuffix}{tableName}{FiledPrefix}")
|
||||||
|
cmdText.Append($";")
|
||||||
|
|
||||||
|
Return cmdText.ToString()
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
End Class
|
||||||
385
Database/DbExecutor.vb
Normal file
385
Database/DbExecutor.vb
Normal file
@@ -0,0 +1,385 @@
|
|||||||
|
Imports System.Data.Common
|
||||||
|
Imports System.Data.SqlClient
|
||||||
|
Imports System.Data.SQLite
|
||||||
|
Imports MySql.Data.MySqlClient
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据库通用命令执行器
|
||||||
|
''' 时间:2020-12-21
|
||||||
|
''' 作者:ML
|
||||||
|
''' 版本:1.0
|
||||||
|
''' </summary>
|
||||||
|
Public Class DbExecutor
|
||||||
|
Implements IDisposable
|
||||||
|
''' <summary>
|
||||||
|
''' 数据库类型,目前支持Mysql与Sqlite
|
||||||
|
''' </summary>
|
||||||
|
Enum DbTypeEnum
|
||||||
|
Mysql
|
||||||
|
Sqlite
|
||||||
|
Mssql
|
||||||
|
npgsql
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
|
||||||
|
Private ReadOnly _connectionString As String '数据库连接语句
|
||||||
|
|
||||||
|
Private ReadOnly _dbType As DbTypeEnum '数据库类型
|
||||||
|
|
||||||
|
Private _connection As DbConnection '数据库连接句柄
|
||||||
|
|
||||||
|
Private _command As DbCommand '数据库命令句柄
|
||||||
|
|
||||||
|
Private _dataAdapter As DbDataAdapter '数据库查询填充器句柄
|
||||||
|
|
||||||
|
Private _transaction As DbTransaction '数据库事务句柄
|
||||||
|
|
||||||
|
Private _commandHelper As DbCmdHelper '数据库语句填充助手
|
||||||
|
|
||||||
|
Sub New(type As DbTypeEnum, connectionString As String)
|
||||||
|
_dbType = type
|
||||||
|
_connectionString = connectionString
|
||||||
|
InitByDbType(_dbType)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub InitByDbType(type As DbTypeEnum)
|
||||||
|
Select Case type
|
||||||
|
Case DbTypeEnum.Mysql
|
||||||
|
_connection = New MySqlConnection()
|
||||||
|
_command = _connection.CreateCommand()
|
||||||
|
_dataAdapter = New MySqlDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
|
||||||
|
|
||||||
|
_commandHelper = New MysqlCmdHelper()
|
||||||
|
Case DbTypeEnum.Sqlite
|
||||||
|
_connection = New SqliteConnection()
|
||||||
|
_command = _connection.CreateCommand()
|
||||||
|
_dataAdapter = New SQLiteDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
|
||||||
|
|
||||||
|
_commandHelper = New SqliteCmdHelper()
|
||||||
|
Case DbTypeEnum.Mssql
|
||||||
|
_connection = New SqlConnection()
|
||||||
|
_command = _connection.CreateCommand()
|
||||||
|
_dataAdapter = New SqlDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
|
||||||
|
|
||||||
|
_commandHelper = New MssqlCmdHelper()
|
||||||
|
|
||||||
|
Case DbTypeEnum.npgsql
|
||||||
|
_connection = New Npgsql.NpgsqlConnection()
|
||||||
|
_command = _connection.CreateCommand()
|
||||||
|
_dataAdapter = New Npgsql.NpgsqlDataAdapter() With {.MissingSchemaAction = MissingSchemaAction.AddWithKey}
|
||||||
|
_commandHelper = New MysqlCmdHelper()
|
||||||
|
End Select
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Public ReadOnly Property DatabaseType() As DbTypeEnum
|
||||||
|
Get
|
||||||
|
Return _dbType
|
||||||
|
End Get
|
||||||
|
'Set(value As DbTypeEnum)
|
||||||
|
' _dbType = value
|
||||||
|
' '执行上一个数据库的关闭操作
|
||||||
|
' InitByDbType(_dbType)
|
||||||
|
'End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property Connection() As DbConnection
|
||||||
|
Get
|
||||||
|
Return _connection
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
|
||||||
|
Public ReadOnly Property Command() As DbCommand
|
||||||
|
Get
|
||||||
|
Return _command
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Public ReadOnly Property CmdHelper() As DbCmdHelper
|
||||||
|
Get
|
||||||
|
Return _commandHelper
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 打开数据库连接
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function Open() As Boolean
|
||||||
|
If _connection Is Nothing Then Return False
|
||||||
|
If String.IsNullOrWhiteSpace(_connectionString) Then Return False
|
||||||
|
Try
|
||||||
|
_connection.ConnectionString = _connectionString
|
||||||
|
|
||||||
|
_connection.Open()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 关闭数据库连接
|
||||||
|
''' </summary>
|
||||||
|
Public Sub Close()
|
||||||
|
If _connection Is Nothing Then Return
|
||||||
|
If _connection.State = ConnectionState.Closed Then Return
|
||||||
|
_connection.Close()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建当前连接的命令执行句柄
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function CreateCommand() As DbCommand
|
||||||
|
Return _connection.CreateCommand()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 运行非查询语句,返回执行该语句受到影响的行数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteNonQuery(commandText As String) As Integer
|
||||||
|
Dim result As Integer
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
result = _command.ExecuteNonQuery()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <param name="commandParams">执行的数据库命令参数</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteNonQuery(commandText As String, commandParams As DbParameterCollection) As Integer
|
||||||
|
Dim result As Integer
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
_command.Parameters.Clear()
|
||||||
|
For Each param As DbParameter In commandParams
|
||||||
|
_command.Parameters.Add(param)
|
||||||
|
Next
|
||||||
|
result = _command.ExecuteNonQuery()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 执行数据库语句,返回数据库读取流的句柄
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteReader(commandText As String) As DbDataReader
|
||||||
|
Dim result As DbDataReader
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
result = _command.ExecuteReader()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 使用命令参数模式执行数据库语句,返回数据库读取流的句柄
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <param name="commandParams">执行的数据库命令参数</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteReader(commandText As String, commandParams As DbParameterCollection) As DbDataReader
|
||||||
|
Dim result As DbDataReader
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
_command.Parameters.Clear()
|
||||||
|
For Each param As DbParameter In commandParams
|
||||||
|
_command.Parameters.Add(param)
|
||||||
|
Next
|
||||||
|
result = _command.ExecuteReader()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 执行数据库语句,返回查询结果的第一行第一列的内容
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteScalar(commandText As String) As Object
|
||||||
|
Dim result As Object
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
result = _command.ExecuteScalar()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <param name="commandParams">执行的数据库命令参数</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteScalar(commandText As String, commandParams As DbParameterCollection) As Object
|
||||||
|
Dim result As Object
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
_command.Parameters.Clear()
|
||||||
|
For Each param As DbParameter In commandParams
|
||||||
|
_command.Parameters.Add(param)
|
||||||
|
Next
|
||||||
|
result = _command.ExecuteScalar()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteDataTable(commandText As String, Optional withKey As Boolean = True) As DataTable
|
||||||
|
Dim dataTable As New DataTable
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
If withKey Then
|
||||||
|
_dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
|
||||||
|
Else
|
||||||
|
_dataAdapter.MissingSchemaAction = MissingSchemaAction.Add
|
||||||
|
End If
|
||||||
|
_dataAdapter.SelectCommand = _command
|
||||||
|
_dataAdapter.Fill(dataTable)
|
||||||
|
Catch ex As Exception
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
Return dataTable
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="commandText">执行的数据库命令文本</param>
|
||||||
|
''' <param name="commandParams">执行的数据库命令参数</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function ExecuteDataTable(commandText As String, commandParams As DbParameterCollection) As DataTable
|
||||||
|
Dim dataTable As New DataTable
|
||||||
|
Try
|
||||||
|
_command.CommandText = commandText
|
||||||
|
_command.Parameters.Clear()
|
||||||
|
For Each param As DbParameter In commandParams
|
||||||
|
_command.Parameters.Add(param)
|
||||||
|
Next
|
||||||
|
_dataAdapter.SelectCommand = _command
|
||||||
|
_dataAdapter.Fill(dataTable)
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
Return dataTable
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 开启事务
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function BeginTransaction() As DbTransaction
|
||||||
|
_transaction = _connection.BeginTransaction()
|
||||||
|
Return _transaction
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 提交事务
|
||||||
|
''' </summary>
|
||||||
|
Public Sub CommitTransaction()
|
||||||
|
Try
|
||||||
|
_transaction.Commit()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 回滚事务
|
||||||
|
''' </summary>
|
||||||
|
Public Sub RollbackTransaction()
|
||||||
|
Try
|
||||||
|
_transaction.Rollback()
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建数据参数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="type">参数数据类型</param>
|
||||||
|
''' <param name="ParameterName">参数名称</param>
|
||||||
|
''' <param name="value">参数值</param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function CreateDbParameter(type As DbType, parameterName As String, value As Object) As DbParameter
|
||||||
|
Dim dbParam As DbParameter = _command.CreateParameter()
|
||||||
|
dbParam.DbType = type
|
||||||
|
dbParam.ParameterName = parameterName
|
||||||
|
dbParam.Value = value
|
||||||
|
Return dbParam
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 添加数据参数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="type"></param>
|
||||||
|
''' <param name="parameterName"></param>
|
||||||
|
''' <param name="value"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function AddDbParameter(type As DbType, parameterName As String, value As Object) As DbParameter
|
||||||
|
Dim dbParam As DbParameter = _command.CreateParameter()
|
||||||
|
dbParam.DbType = type
|
||||||
|
dbParam.ParameterName = parameterName
|
||||||
|
dbParam.Value = value
|
||||||
|
_command.Parameters.Add(dbParam)
|
||||||
|
Return dbParam
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 清空数据
|
||||||
|
''' </summary>
|
||||||
|
Public Sub ClearDbParameter()
|
||||||
|
_command.Parameters.Clear()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 回收资源
|
||||||
|
''' </summary>
|
||||||
|
Public Sub Dispose() Implements IDisposable.Dispose
|
||||||
|
If _connection IsNot Nothing Then
|
||||||
|
If _connection.State = ConnectionState.Open Then
|
||||||
|
_connection.Close()
|
||||||
|
End If
|
||||||
|
_connection.Dispose()
|
||||||
|
End If
|
||||||
|
|
||||||
|
If _command IsNot Nothing Then _command.Dispose()
|
||||||
|
If _dataAdapter IsNot Nothing Then _dataAdapter.Dispose()
|
||||||
|
|
||||||
|
GC.Collect() '对所有缓存垃圾进行回收
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
10
Database/Mssql/MssqlCmdHelper.vb
Normal file
10
Database/Mssql/MssqlCmdHelper.vb
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Namespace Database.Mssql
|
||||||
|
Public Class MssqlCmdHelper
|
||||||
|
Inherits DbCmdHelper
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
FiledSuffix = "["c
|
||||||
|
FiledPrefix = "]"c
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
8
Database/MssqlCmdHelper.vb
Normal file
8
Database/MssqlCmdHelper.vb
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Public Class MssqlCmdHelper
|
||||||
|
Inherits DbCmdHelper
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
FiledSuffix = "["c
|
||||||
|
FiledPrefix = "]"c
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
222
Database/Mysql/DataParam.vb
Normal file
222
Database/Mysql/DataParam.vb
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Mysql
|
||||||
|
Public Class DataParam
|
||||||
|
Enum DataTypeEnum
|
||||||
|
'###############################数值类型#############################
|
||||||
|
''' <summary>
|
||||||
|
''' 1 byte,小整数值
|
||||||
|
''' </summary>
|
||||||
|
Tinyint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 2 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
Smallint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 3 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
Mediumint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
Int
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
[Integer]
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 8 bytes,极大整数值
|
||||||
|
''' </summary>
|
||||||
|
Bigint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,单精度浮点数值
|
||||||
|
''' </summary>
|
||||||
|
Float
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 8 bytes,双精度浮点数值
|
||||||
|
''' </summary>
|
||||||
|
[Double]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'####################日期类型###############################
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
|
||||||
|
''' </summary>
|
||||||
|
[Decimal]
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 3 bytes,日期值,YYYY-MM-DD
|
||||||
|
''' </summary>
|
||||||
|
[Date]
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 3 bytes,时间值或持续时间,HH:MM:SS
|
||||||
|
''' </summary>
|
||||||
|
Time
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 1 bytes,年份值,YYYY
|
||||||
|
''' </summary>
|
||||||
|
Year
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
|
||||||
|
''' </summary>
|
||||||
|
Datetime
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
|
||||||
|
''' </summary>
|
||||||
|
Timestamp
|
||||||
|
|
||||||
|
|
||||||
|
'####################字符类型###############################
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-255 bytes,定长字符串
|
||||||
|
''' </summary>
|
||||||
|
[Char]
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-65535 bytes,变长字符串
|
||||||
|
''' </summary>
|
||||||
|
Varchar
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-255 bytes,不超过 255 个字符的二进制字符串
|
||||||
|
''' </summary>
|
||||||
|
Tinyblob
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-255 bytes,短文本字符串
|
||||||
|
''' </summary>
|
||||||
|
Tinytext
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-65 535 bytes,二进制形式的长文本数据
|
||||||
|
''' </summary>
|
||||||
|
Blob
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-65 535 bytes,长文本数据
|
||||||
|
''' </summary>
|
||||||
|
Text
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
|
||||||
|
''' </summary>
|
||||||
|
Mediumblob
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-16 777 215 bytes,中等长度文本数据
|
||||||
|
''' </summary>
|
||||||
|
Mediumtext
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
|
||||||
|
''' </summary>
|
||||||
|
Longblob
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-4 294 967 295 bytes,极大文本数据
|
||||||
|
''' </summary>
|
||||||
|
Longtext
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColumnName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当前值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Value() As String
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 默认值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DefaultValue() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataType() As DataTypeEnum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型长度
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataTypeLength() As Integer
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型是否带符号
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsUnsigned() As Boolean
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否允许为空
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsNull() As Boolean = True
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否自动增长
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsAutoIncrement() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为主键
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsPrimaryKey() As Boolean
|
||||||
|
|
||||||
|
Public Function ToAddColString() As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"`{ColumnName}`")
|
||||||
|
|
||||||
|
Select Case DataType
|
||||||
|
Case DataTypeEnum.Varchar,DataTypeEnum.[Char]
|
||||||
|
sb.Append($" {DataType}({DataTypeLength}) ")
|
||||||
|
Case DataTypeEnum.Int
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
if IsUnsigned Then sb.Append($" Unsigned")
|
||||||
|
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
|
||||||
|
Case Else
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
End Select
|
||||||
|
|
||||||
|
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||||||
|
|
||||||
|
If IsPrimaryKey Then
|
||||||
|
sb.Append($" PRIMARY KEY")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
13
Database/Mysql/MysqlCmdHelper.vb
Normal file
13
Database/Mysql/MysqlCmdHelper.vb
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Mysql
|
||||||
|
Public Class MysqlCmdHelper
|
||||||
|
Inherits DbCmdHelper
|
||||||
|
|
||||||
|
Sub New
|
||||||
|
FiledSuffix = "`"c
|
||||||
|
FiledPrefix = "`"c
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
9
Database/MysqlCmdHelper.vb
Normal file
9
Database/MysqlCmdHelper.vb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Public Class MysqlCmdHelper
|
||||||
|
Inherits DbCmdHelper
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
FiledSuffix = "`"c
|
||||||
|
FiledPrefix = "`"c
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
End Class
|
||||||
220
Database/MysqlDataParam.vb
Normal file
220
Database/MysqlDataParam.vb
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Public Class MysqlDataParam
|
||||||
|
Enum DataTypeEnum
|
||||||
|
'###############################数值类型#############################
|
||||||
|
''' <summary>
|
||||||
|
''' 1 byte,小整数值
|
||||||
|
''' </summary>
|
||||||
|
Tinyint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 2 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
Smallint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 3 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
Mediumint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
Int
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,大整数值
|
||||||
|
''' </summary>
|
||||||
|
[Integer]
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 8 bytes,极大整数值
|
||||||
|
''' </summary>
|
||||||
|
Bigint
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,单精度浮点数值
|
||||||
|
''' </summary>
|
||||||
|
Float
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 8 bytes,双精度浮点数值
|
||||||
|
''' </summary>
|
||||||
|
[Double]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'####################日期类型###############################
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
|
||||||
|
''' </summary>
|
||||||
|
[Decimal]
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 3 bytes,日期值,YYYY-MM-DD
|
||||||
|
''' </summary>
|
||||||
|
[Date]
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 3 bytes,时间值或持续时间,HH:MM:SS
|
||||||
|
''' </summary>
|
||||||
|
Time
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 1 bytes,年份值,YYYY
|
||||||
|
''' </summary>
|
||||||
|
Year
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
|
||||||
|
''' </summary>
|
||||||
|
Datetime
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
|
||||||
|
''' </summary>
|
||||||
|
Timestamp
|
||||||
|
|
||||||
|
|
||||||
|
'####################字符类型###############################
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-255 bytes,定长字符串
|
||||||
|
''' </summary>
|
||||||
|
[Char]
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-65535 bytes,变长字符串
|
||||||
|
''' </summary>
|
||||||
|
Varchar
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-255 bytes,不超过 255 个字符的二进制字符串
|
||||||
|
''' </summary>
|
||||||
|
Tinyblob
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-255 bytes,短文本字符串
|
||||||
|
''' </summary>
|
||||||
|
Tinytext
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-65 535 bytes,二进制形式的长文本数据
|
||||||
|
''' </summary>
|
||||||
|
Blob
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-65 535 bytes,长文本数据
|
||||||
|
''' </summary>
|
||||||
|
Text
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
|
||||||
|
''' </summary>
|
||||||
|
Mediumblob
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-16 777 215 bytes,中等长度文本数据
|
||||||
|
''' </summary>
|
||||||
|
Mediumtext
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
|
||||||
|
''' </summary>
|
||||||
|
Longblob
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 0-4 294 967 295 bytes,极大文本数据
|
||||||
|
''' </summary>
|
||||||
|
Longtext
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColumnName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当前值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Value() As String
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 默认值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DefaultValue() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataType() As DataTypeEnum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型长度
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataTypeLength() As Integer
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型是否带符号
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsUnsigned() As Boolean
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否允许为空
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsNull() As Boolean = True
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否自动增长
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsAutoIncrement() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为主键
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsPrimaryKey() As Boolean
|
||||||
|
|
||||||
|
Public Function ToAddColString() As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"`{ColumnName}`")
|
||||||
|
|
||||||
|
Select Case DataType
|
||||||
|
Case DataTypeEnum.Varchar, DataTypeEnum.[Char]
|
||||||
|
sb.Append($" {DataType}({DataTypeLength}) ")
|
||||||
|
Case DataTypeEnum.Int
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
If IsUnsigned Then sb.Append($" Unsigned")
|
||||||
|
If IsAutoIncrement Then sb.Append($" AUTO_INCREMENT")
|
||||||
|
Case Else
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
End Select
|
||||||
|
|
||||||
|
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||||||
|
|
||||||
|
If IsPrimaryKey Then
|
||||||
|
sb.Append($" PRIMARY KEY")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
106
Database/Sqlite/DataParam.vb
Normal file
106
Database/Sqlite/DataParam.vb
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
Namespace Database.Sqlite
|
||||||
|
Public Class DataParam
|
||||||
|
Enum DataTypeEnum
|
||||||
|
Varchar
|
||||||
|
Nchar
|
||||||
|
Blob
|
||||||
|
Bit
|
||||||
|
Datetime
|
||||||
|
[Decimal]
|
||||||
|
Real
|
||||||
|
UniqueIdentifier
|
||||||
|
Int
|
||||||
|
[Integer]
|
||||||
|
TinyInt
|
||||||
|
[Single]
|
||||||
|
Nvarchar
|
||||||
|
SmallInt
|
||||||
|
SmallUint
|
||||||
|
Uint
|
||||||
|
UnsignedInteger
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColumnName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当前值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Value() As String
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 默认值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DefaultValue() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataType() As DataTypeEnum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型长度
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataTypeLength() As Integer
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否允许为空
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsNull() As Boolean = True
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否自动增长
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsAutoIncrement() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为主键
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsPrimaryKey() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为唯一值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsUnique() As Boolean
|
||||||
|
|
||||||
|
|
||||||
|
Public Function ToAddColString() As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"`{ColumnName}`")
|
||||||
|
|
||||||
|
Select Case DataType
|
||||||
|
Case DataTypeEnum.Varchar, DataTypeEnum.Nchar, DataTypeEnum.Nvarchar
|
||||||
|
sb.Append($" {DataType}({DataTypeLength}) ")
|
||||||
|
Case DataTypeEnum.Int,DataTypeEnum.Integer
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
Case Else
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
End Select
|
||||||
|
|
||||||
|
If IsAutoIncrement Then sb.Append($" AUTOINCREMENT")
|
||||||
|
|
||||||
|
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||||||
|
|
||||||
|
If IsPrimaryKey Then
|
||||||
|
sb.Append($" PRIMARY KEY")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
20
Database/Sqlite/SqliteCmdHelper.vb
Normal file
20
Database/Sqlite/SqliteCmdHelper.vb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Namespace Database.Sqlite
|
||||||
|
Public Class SqliteCmdHelper
|
||||||
|
Inherits DbCmdHelper
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
FiledSuffix = "["c
|
||||||
|
FiledPrefix = "]"c
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据表的信息
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overrides Function SearchTableInfo(tableName As String) As String
|
||||||
|
Return $"select * from sqlite_master where tbl_name = '{tableName}';"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
19
Database/SqliteCmdHelper.vb
Normal file
19
Database/SqliteCmdHelper.vb
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
Public Class SqliteCmdHelper
|
||||||
|
Inherits DbCmdHelper
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
FiledSuffix = "["c
|
||||||
|
FiledPrefix = "]"c
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 查询指定数据表的信息
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="tableName"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Overrides Function SearchTableInfo(tableName As String) As String
|
||||||
|
Return $"select * from sqlite_master where tbl_name = '{tableName}';"
|
||||||
|
End Function
|
||||||
|
|
||||||
|
End Class
|
||||||
105
Database/SqliteDataParam.vb
Normal file
105
Database/SqliteDataParam.vb
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
Imports System.Text
|
||||||
|
|
||||||
|
|
||||||
|
Public Class SqliteDataParam
|
||||||
|
Enum DataTypeEnum
|
||||||
|
Varchar
|
||||||
|
Nchar
|
||||||
|
Blob
|
||||||
|
Bit
|
||||||
|
Datetime
|
||||||
|
[Decimal]
|
||||||
|
Real
|
||||||
|
UniqueIdentifier
|
||||||
|
Int
|
||||||
|
[Integer]
|
||||||
|
TinyInt
|
||||||
|
[Single]
|
||||||
|
Nvarchar
|
||||||
|
SmallInt
|
||||||
|
SmallUint
|
||||||
|
Uint
|
||||||
|
UnsignedInteger
|
||||||
|
End Enum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 列名
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property ColumnName() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 当前值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property Value() As String
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 默认值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DefaultValue() As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataType() As DataTypeEnum
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据类型长度
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property DataTypeLength() As Integer
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否允许为空
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsNull() As Boolean = True
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否自动增长
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsAutoIncrement() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为主键
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsPrimaryKey() As Boolean
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 是否为唯一值
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property IsUnique() As Boolean
|
||||||
|
|
||||||
|
|
||||||
|
Public Function ToAddColString() As String
|
||||||
|
Dim sb As New StringBuilder
|
||||||
|
sb.Append($"`{ColumnName}`")
|
||||||
|
|
||||||
|
Select Case DataType
|
||||||
|
Case DataTypeEnum.Varchar, DataTypeEnum.Nchar, DataTypeEnum.Nvarchar
|
||||||
|
sb.Append($" {DataType}({DataTypeLength}) ")
|
||||||
|
Case DataTypeEnum.Int, DataTypeEnum.Integer
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
Case Else
|
||||||
|
sb.Append($" {DataType}")
|
||||||
|
End Select
|
||||||
|
|
||||||
|
If IsAutoIncrement Then sb.Append($" AUTOINCREMENT")
|
||||||
|
|
||||||
|
sb.Append(IIf(IsNull, " Default Null", " Not Null"))
|
||||||
|
|
||||||
|
If IsPrimaryKey Then
|
||||||
|
sb.Append($" PRIMARY KEY")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return sb.ToString()
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
25
DevModeFirmwareInfo.sln
Normal file
25
DevModeFirmwareInfo.sln
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.36422.26
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DevModeFirmwareInfo", "DevModeFirmwareInfo.vbproj", "{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {5AE8A899-F082-4F80-9531-A3AC9E7A362B}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
238
DevModeFirmwareInfo.vbproj
Normal file
238
DevModeFirmwareInfo.vbproj
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
<?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>{9E2AC81D-D711-4219-95A1-9C4FA3FCB393}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<StartupObject>DevModeFirmwareInfo.My.MyApplication</StartupObject>
|
||||||
|
<RootNamespace>DevModeFirmwareInfo</RootNamespace>
|
||||||
|
<AssemblyName>DevModeFirmwareInfo</AssemblyName>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<MyType>WindowsForms</MyType>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<DefineDebug>true</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DocumentationFile>DevModeFirmwareInfo.xml</DocumentationFile>
|
||||||
|
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<DefineDebug>false</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DocumentationFile>DevModeFirmwareInfo.xml</DocumentationFile>
|
||||||
|
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionExplicit>On</OptionExplicit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionCompare>Binary</OptionCompare>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionStrict>Off</OptionStrict>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionInfer>On</OptionInfer>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\BouncyCastle.Cryptography.2.5.1\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="FlexCell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=6f86587eb70ee309, processorArchitecture=MSIL" />
|
||||||
|
<Reference Include="FluentFTP, Version=33.0.3.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\FluentFTP.33.0.3\lib\net45\FluentFTP.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Google.Protobuf, Version=3.30.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\Google.Protobuf.3.30.0\lib\net45\Google.Protobuf.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="K4os.Compression.LZ4, Version=1.3.8.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\K4os.Compression.LZ4.1.3.8\lib\net462\K4os.Compression.LZ4.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="K4os.Compression.LZ4.Streams, Version=1.3.8.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\K4os.Compression.LZ4.Streams.1.3.8\lib\net462\K4os.Compression.LZ4.Streams.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="K4os.Hash.xxHash, Version=1.0.8.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Bcl.HashCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\Microsoft.Extensions.Logging.Abstractions.8.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="MySql.Data, Version=9.4.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\MySql.Data.9.4.0\lib\net48\MySql.Data.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Npgsql, Version=8.0.7.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\Npgsql.8.0.7\lib\netstandard2.0\Npgsql.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Collections.Immutable, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Collections.Immutable.8.0.0\lib\net462\System.Collections.Immutable.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Configuration" />
|
||||||
|
<Reference Include="System.Configuration.ConfigurationManager, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Data.SQLite, Version=2.0.2.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Data.SQLite.2.0.2\lib\net471\System.Data.SQLite.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Diagnostics.DiagnosticSource, Version=8.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.IO.Pipelines, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Management" />
|
||||||
|
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Numerics" />
|
||||||
|
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Text.Encodings.Web, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Text.Json, Version=8.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Text.Json.8.0.5\lib\net462\System.Text.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Channels, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Threading.Channels.8.0.0\lib\net462\System.Threading.Channels.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Transactions" />
|
||||||
|
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="ZstdSharp, Version=0.8.5.0, Culture=neutral, PublicKeyToken=8d151af33a4ad5cf, processorArchitecture=MSIL">
|
||||||
|
<HintPath>packages\ZstdSharp.Port.0.8.5\lib\net462\ZstdSharp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Import Include="Microsoft.VisualBasic" />
|
||||||
|
<Import Include="System" />
|
||||||
|
<Import Include="System.Collections" />
|
||||||
|
<Import Include="System.Collections.Generic" />
|
||||||
|
<Import Include="System.Data" />
|
||||||
|
<Import Include="System.Drawing" />
|
||||||
|
<Import Include="System.Diagnostics" />
|
||||||
|
<Import Include="System.Windows.Forms" />
|
||||||
|
<Import Include="System.Linq" />
|
||||||
|
<Import Include="System.Xml.Linq" />
|
||||||
|
<Import Include="System.Threading.Tasks" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Database\Base\ColumnSchema.vb" />
|
||||||
|
<Compile Include="Database\Base\CommandHelpers.vb" />
|
||||||
|
<Compile Include="Database\Base\DatabaseData.vb" />
|
||||||
|
<Compile Include="Database\Base\DatabaseSchema.vb" />
|
||||||
|
<Compile Include="Database\Base\ForeignKeySchema.vb" />
|
||||||
|
<Compile Include="Database\Base\IndexSchema.vb" />
|
||||||
|
<Compile Include="Database\Base\InsertParams.vb" />
|
||||||
|
<Compile Include="Database\Base\SearchCondition.vb" />
|
||||||
|
<Compile Include="Database\Base\SearchParams.vb" />
|
||||||
|
<Compile Include="Database\Base\TableSchema.vb" />
|
||||||
|
<Compile Include="Database\Base\TriggerBuilder.vb" />
|
||||||
|
<Compile Include="Database\Base\TriggerSchema.vb" />
|
||||||
|
<Compile Include="Database\Base\ViewSchema.vb" />
|
||||||
|
<Compile Include="Database\DbCmdHelper.vb" />
|
||||||
|
<Compile Include="Database\DbExecutor.vb" />
|
||||||
|
<Compile Include="Database\MssqlCmdHelper.vb" />
|
||||||
|
<Compile Include="Database\Mssql\MssqlCmdHelper.vb" />
|
||||||
|
<Compile Include="Database\MysqlCmdHelper.vb" />
|
||||||
|
<Compile Include="Database\MysqlDataParam.vb" />
|
||||||
|
<Compile Include="Database\Mysql\DataParam.vb" />
|
||||||
|
<Compile Include="Database\Mysql\MysqlCmdHelper.vb" />
|
||||||
|
<Compile Include="Database\SqliteCmdHelper.vb" />
|
||||||
|
<Compile Include="Database\SqliteDataParam.vb" />
|
||||||
|
<Compile Include="Database\Sqlite\DataParam.vb" />
|
||||||
|
<Compile Include="Database\Sqlite\SqliteCmdHelper.vb" />
|
||||||
|
<Compile Include="Form1.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Form1.Designer.vb">
|
||||||
|
<DependentUpon>Form1.vb</DependentUpon>
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="FTP\blvFtpServer.vb" />
|
||||||
|
<Compile Include="FTP\UtsFtp.vb" />
|
||||||
|
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||||
|
<Compile Include="My Project\Application.Designer.vb">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Application.myapp</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="My Project\Resources.Designer.vb">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="My Project\Settings.Designer.vb">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Form1.resx">
|
||||||
|
<DependentUpon>Form1.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="My Project\Resources.resx">
|
||||||
|
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||||
|
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="My Project\Application.myapp">
|
||||||
|
<Generator>MyApplicationCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<None Include="My Project\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<CustomToolNamespace>My</CustomToolNamespace>
|
||||||
|
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<None Include="App.config" />
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
|
</Project>
|
||||||
6
DevModeFirmwareInfo.vbproj.user
Normal file
6
DevModeFirmwareInfo.vbproj.user
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectView>ShowAllFiles</ProjectView>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
217
FTP/UtsFtp.vb
Normal file
217
FTP/UtsFtp.vb
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
Imports System.Threading
|
||||||
|
Imports FluentFTP
|
||||||
|
|
||||||
|
Namespace UTSModule
|
||||||
|
Public Class UtsFtp
|
||||||
|
''' <summary>测试器句柄,全局唯一</summary>
|
||||||
|
Private Shared _object As UtsFtp
|
||||||
|
|
||||||
|
''' <summary>初始化测试器线程锁</summary>
|
||||||
|
Private Shared ReadOnly InitLock As New Object()
|
||||||
|
|
||||||
|
Private Shared FtpPort As Integer
|
||||||
|
Private Shared FtpUser As String
|
||||||
|
Private Shared FtpPwd As String
|
||||||
|
|
||||||
|
Private _ftpUser As String
|
||||||
|
Private _ftpPwd As String
|
||||||
|
Private _ftpPort As Integer
|
||||||
|
Private _ftpHost As String
|
||||||
|
|
||||||
|
Private Default_FTP_Host As String = "blv-oa.com"
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 初始化FTP连接参数
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="port">端口号</param>
|
||||||
|
''' <param name="user">用户名</param>
|
||||||
|
''' <param name="pwd">用户密码</param>
|
||||||
|
Public Shared Sub InitConnectParams(port As Integer, user As String, pwd As String)
|
||||||
|
FtpPort = port
|
||||||
|
FtpUser = user
|
||||||
|
FtpPwd = pwd
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建类单例对象
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Shared Function CreateObject() As UtsFtp
|
||||||
|
If _object Is Nothing Then
|
||||||
|
SyncLock InitLock
|
||||||
|
'内存护栏
|
||||||
|
Thread.MemoryBarrier()
|
||||||
|
If _object Is Nothing Then
|
||||||
|
_object = New UtsFtp("blv-oa.com", FtpPort, FtpUser, FtpPwd)
|
||||||
|
End If
|
||||||
|
End SyncLock
|
||||||
|
End If
|
||||||
|
Return _object
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Sub New(host As String, port As Integer, user As String, pwd As String)
|
||||||
|
_ftpHost = host
|
||||||
|
_ftpPort = port
|
||||||
|
_ftpUser = user
|
||||||
|
_ftpPwd = pwd
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Ftp服务器地址
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Property FtpHost As String
|
||||||
|
Get
|
||||||
|
Return _ftpHost
|
||||||
|
End Get
|
||||||
|
Set(value As String)
|
||||||
|
_ftpHost = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
Private Sub OnValidateCertificate(control As FtpClient, e As FtpSslValidationEventArgs)
|
||||||
|
e.Accept = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 判断FTP文件是否存在
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="path"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function FtpFileExists(path As String) As Boolean
|
||||||
|
Dim result As Boolean
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
result = ftpClient.FileExists(path)
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
End Using
|
||||||
|
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 创建Ftp文件夹
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="remoteDir">Ftp文件夹路径</param>
|
||||||
|
''' <param name="force">创建所有不存在的文件夹路径</param>
|
||||||
|
Public Sub CreateDir(remoteDir As String, Optional force As Boolean = False)
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(FtpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
ftpClient.CreateDirectory(remoteDir, force)
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
End Using
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 上传本地文件至Ftp
|
||||||
|
''' 将本地指定路径压缩包上传到FTP服务器上manager文件夹下
|
||||||
|
''' </summary>
|
||||||
|
Public Function FtpUpload2(remotePath As String, loadPath As String) As FtpStatus
|
||||||
|
Dim ftpstart As FtpStatus
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
ftpstart = ftpClient.UploadFile(loadPath, remotePath, FtpRemoteExists.Overwrite, True)
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
End Using
|
||||||
|
Return ftpstart
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Public Function FtpUpload(remotePath As String, loadPath As String) As FtpStatus
|
||||||
|
Dim ftpstart As FtpStatus
|
||||||
|
Try
|
||||||
|
Dim datS As String = remotePath.Replace(".xml", ".dat")
|
||||||
|
Dim datl As String = loadPath.Replace(".xml", ".dat")
|
||||||
|
Dim ndatS As String = remotePath.Replace(".xml", ".nxml")
|
||||||
|
Dim ndatS1 As String = remotePath.Replace(".xml", ".ndat")
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
ftpstart = ftpClient.UploadFile(loadPath, ndatS, FtpRemoteExists.Overwrite, True)
|
||||||
|
ftpClient.Rename(ndatS, remotePath)
|
||||||
|
ftpstart = ftpClient.UploadFile(datl, ndatS1, FtpRemoteExists.Overwrite, True)
|
||||||
|
ftpClient.Rename(ndatS1, datS)
|
||||||
|
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
|
||||||
|
End Using
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox($"发布错误:{ex.Message }")
|
||||||
|
ftpstart = FtpStatus.Failed
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return ftpstart
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Public Function FtpUploadBlv(remotePath As String, loadPath As String) As FtpStatus
|
||||||
|
Dim ftpstart As FtpStatus
|
||||||
|
Dim datS As String = remotePath.Replace(".blv", ".dat")
|
||||||
|
Dim datl As String = loadPath.Replace(".blv", ".dat")
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
ftpstart = ftpClient.UploadFile(loadPath, remotePath, FtpRemoteExists.Overwrite, True)
|
||||||
|
ftpstart = ftpClient.UploadFile(datl, datS, FtpRemoteExists.Overwrite, True)
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
End Using
|
||||||
|
Return ftpstart
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 从Ftp下载文件至本地
|
||||||
|
''' 从FTP下载压缩包,到本地指定路径
|
||||||
|
''' </summary>
|
||||||
|
Public Overloads Function FtpDownload(remotePath As String, loadPath As String, Optional existMode As FtpLocalExists = FtpLocalExists.Overwrite) As FtpStatus
|
||||||
|
Dim ftpstart As FtpStatus
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
|
||||||
|
ftpstart = ftpClient.DownloadFile(loadPath, remotePath, existMode)
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
|
||||||
|
End Using
|
||||||
|
Return ftpstart
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Overloads Function FtpDownload(FtpDownloadfile As Dictionary(Of String, String), Optional flag As Boolean = False, Optional existMode As FtpLocalExists = FtpLocalExists.Overwrite) As FtpStatus
|
||||||
|
Dim ftpstart As FtpStatus = FtpStatus.Success
|
||||||
|
Using ftpClient As FtpClient = New FtpClient(_ftpHost, _ftpPort, _ftpUser, _ftpPwd)
|
||||||
|
AddHandler ftpClient.ValidateCertificate, AddressOf OnValidateCertificate
|
||||||
|
ftpClient.EncryptionMode = FtpEncryptionMode.Auto
|
||||||
|
ftpClient.AutoConnect()
|
||||||
|
For Each loadfile In FtpDownloadfile
|
||||||
|
ftpstart = ftpClient.DownloadFile(loadfile.Value, loadfile.Key, existMode)
|
||||||
|
If flag Then
|
||||||
|
ftpstart = ftpClient.DownloadFile(loadfile.Value.Replace(".xml", ".dat"), loadfile.Key.Replace(".xml", ".dat"), existMode)
|
||||||
|
End If
|
||||||
|
If ftpstart = 1 Then
|
||||||
|
Continue For
|
||||||
|
Else
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
ftpClient.Disconnect()
|
||||||
|
|
||||||
|
End Using
|
||||||
|
Return ftpstart
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
|
|
||||||
510
FTP/blvFtpServer.vb
Normal file
510
FTP/blvFtpServer.vb
Normal file
@@ -0,0 +1,510 @@
|
|||||||
|
Imports BLV_Studio.UTSModule
|
||||||
|
Imports MD5Hash
|
||||||
|
Imports System.IO
|
||||||
|
Imports System.Security.Cryptography
|
||||||
|
Imports System.Security.Policy
|
||||||
|
Imports System.Text
|
||||||
|
Imports System.Threading
|
||||||
|
Public Class blvFtpServer
|
||||||
|
''' <summary>
|
||||||
|
''' 单独下载控制开关 和 separateMap 一起使用
|
||||||
|
''' </summary>
|
||||||
|
Public separateSart As Boolean = False
|
||||||
|
''' <summary>
|
||||||
|
''' 单独下载 文件集合 <云文件路径本地文件路径>
|
||||||
|
''' </summary>
|
||||||
|
Public separateMap As New Dictionary(Of String, String)
|
||||||
|
'Public password As String = MD5Hash.Hash.Content("123")
|
||||||
|
''' <summary>
|
||||||
|
''' 文件同步线程
|
||||||
|
''' </summary>
|
||||||
|
Public _syn_thread As Thread
|
||||||
|
''' <summary>
|
||||||
|
''' 本地同步文件夹路径
|
||||||
|
''' </summary>
|
||||||
|
Public _SyncLoadDirPath As String
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 数据库登录
|
||||||
|
''' </summary>
|
||||||
|
Public _dbLoginStr As String
|
||||||
|
''' <summary>
|
||||||
|
''' 数据库同步文件集 所在文件夹路径 *文件名
|
||||||
|
''' </summary>
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 需要下载的文件集 相对路径文件名
|
||||||
|
''' </summary>
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' FTP同步标志
|
||||||
|
''' </summary>
|
||||||
|
Public _startFlag As Integer = 0
|
||||||
|
''' <summary>
|
||||||
|
''' FTP同步间隔
|
||||||
|
''' </summary>
|
||||||
|
Public num As Integer = 30
|
||||||
|
|
||||||
|
Public IsRuning As Boolean
|
||||||
|
''' <summary>
|
||||||
|
'''
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="loadpath">同步文件夹本地路径</param>
|
||||||
|
''' <param name="serverpath">同步云文件夹路径</param>
|
||||||
|
Sub New(loadpath As String, dbLoginStr As String)
|
||||||
|
_dbLoginStr = dbLoginStr
|
||||||
|
If loadpath.Substring(loadpath.Length - 1, 1).Equals("\") Then
|
||||||
|
_SyncLoadDirPath = loadpath
|
||||||
|
Else
|
||||||
|
_SyncLoadDirPath = loadpath & "\"
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Public Sub FtpfileMain()
|
||||||
|
|
||||||
|
'开启线程
|
||||||
|
IsRuning = True
|
||||||
|
FtpfileThread()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub FtpfileDownload(dirpath As String, filename As String)
|
||||||
|
Try
|
||||||
|
UTSModule.UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||||
|
Dim ftp As UTSModule.UtsFtp = UTSModule.UtsFtp.CreateObject()
|
||||||
|
ftp.FtpHost = FtpHost
|
||||||
|
'For Each filepath In _SyncToLoadFile
|
||||||
|
|
||||||
|
'ftp.FtpDownload("/Data/Model/485Model/3.txt", _SyncLoadDirPath & "3.txt")
|
||||||
|
ftp.FtpDownload(dirpath, filename)
|
||||||
|
|
||||||
|
' Next
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub FtpfileThread()
|
||||||
|
Dim cnt As Integer = 50
|
||||||
|
Dim _FilePath_li As List(Of String)
|
||||||
|
Dim loadFilerow As List(Of Dictionary(Of String, String))
|
||||||
|
Dim FileMysqlRow As List(Of Dictionary(Of String, String))
|
||||||
|
Dim SyncToLoadFile As Dictionary(Of String, String)
|
||||||
|
_startFlag = 0
|
||||||
|
While IsRuning
|
||||||
|
|
||||||
|
If cnt > num Then
|
||||||
|
cnt = 0
|
||||||
|
_startFlag = 0
|
||||||
|
RaiseEvent updateIcon(0)
|
||||||
|
|
||||||
|
num = 1800
|
||||||
|
|
||||||
|
_FilePath_li = Enumerationdirectory(_SyncLoadDirPath)
|
||||||
|
'本地文件信息储存
|
||||||
|
loadFilerow = filetosqlfunction(_FilePath_li)
|
||||||
|
' 获取数据库文件数据
|
||||||
|
FileMysqlRow = GetMysqlfiledata(_dbLoginStr)
|
||||||
|
' 文件比对
|
||||||
|
SyncToLoadFile = Proofreadfile(loadFilerow, FileMysqlRow)
|
||||||
|
' FTP下载
|
||||||
|
FTPDownloadFile(SyncToLoadFile, FileMysqlRow)
|
||||||
|
|
||||||
|
FileMysqlRow.Clear()
|
||||||
|
SyncNumber.Clear()
|
||||||
|
SyncToLoadFile.Clear()
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If separateSart Then
|
||||||
|
_startFlag = 0
|
||||||
|
RaiseEvent updateIcon(0)
|
||||||
|
Dim filename As String = separateMap.Keys(0)
|
||||||
|
filename = filename.Substring(filename.LastIndexOf("\") + 1)
|
||||||
|
filename = $" `CONFIG_XML` = '{filename}' "
|
||||||
|
FileMysqlRow = GetMysqlfiledata(_dbLoginStr, filename)
|
||||||
|
If FileMysqlRow.Count > 0 Then
|
||||||
|
SyncNumber.Add(0)
|
||||||
|
End If
|
||||||
|
FTPDownloadFile(separateMap, FileMysqlRow.Item(0))
|
||||||
|
FileMysqlRow.Clear()
|
||||||
|
separateMap.Clear()
|
||||||
|
SyncNumber.Clear()
|
||||||
|
separateSart = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
cnt += 1
|
||||||
|
Thread.Sleep(1000)
|
||||||
|
End While
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
'''' <summary>
|
||||||
|
'''' 获取指定文件夹下所有文件
|
||||||
|
'''' 获取同步文件夹文件
|
||||||
|
'''' </summary>
|
||||||
|
'''' <param name="dirpath"></param>
|
||||||
|
'Public Function Enumerationdirectory(dirpath As String) As List(Of String)
|
||||||
|
' If IO.Directory.Exists(dirpath) Then
|
||||||
|
' Dim filebufF() As String = IO.Directory.GetFiles(dirpath)
|
||||||
|
' If filebufF.Length > 0 Then
|
||||||
|
' _FilePath_li.AddRange(filebufF)
|
||||||
|
' End If
|
||||||
|
|
||||||
|
' Dim dirbuff() As String = IO.Directory.GetDirectories(dirpath)
|
||||||
|
' _DirPah_li.AddRange(dirbuff)
|
||||||
|
' For Each partdir In dirbuff
|
||||||
|
' Enumerationdirectory(partdir)
|
||||||
|
' Next
|
||||||
|
' Else
|
||||||
|
' MessageBox.Show("同步文件夹不存在")
|
||||||
|
' End If
|
||||||
|
|
||||||
|
'End Function
|
||||||
|
|
||||||
|
Public Function Enumerationdirectory(dirpath As String) As List(Of String)
|
||||||
|
Dim filelist As New List(Of String)
|
||||||
|
Dim dirlist As New List(Of String)
|
||||||
|
If IO.Directory.Exists(dirpath) Then
|
||||||
|
|
||||||
|
Dim filebufF() As String = IO.Directory.GetFiles(dirpath)
|
||||||
|
If filebufF.Length > 0 Then
|
||||||
|
filelist.AddRange(filebufF)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim dirbuff() As String = IO.Directory.GetDirectories(dirpath)
|
||||||
|
dirlist.AddRange(dirbuff)
|
||||||
|
For Each partdir In dirbuff
|
||||||
|
filelist.AddRange(Enumerationdirectory(partdir))
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
MessageBox.Show("同步文件夹不存在")
|
||||||
|
End If
|
||||||
|
Return filelist
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Function filetosqlfunction(ByRef _FilePath_li As List(Of String)) As List(Of Dictionary(Of String, String))
|
||||||
|
Dim loadFilerow As New List(Of Dictionary(Of String, String))
|
||||||
|
For Each filestr In _FilePath_li
|
||||||
|
' Dim filedata As New FileToSqlVariable
|
||||||
|
Dim clunm As New Dictionary(Of String, String)
|
||||||
|
Dim md5 As String = GetStringMd5(filestr)
|
||||||
|
Dim filedir As String = filestr.Substring(0, filestr.LastIndexOf("\") + 1)
|
||||||
|
|
||||||
|
Dim filename As String = filestr.Substring(filedir.Length, filestr.Length - filedir.Length)
|
||||||
|
clunm.Add("Directory", filedir)
|
||||||
|
clunm.Add("Available", 1)
|
||||||
|
clunm.Add("FileName", filename)
|
||||||
|
clunm.Add("UploadDateTime", Now.ToString("yyyy-MM-dd HH:mm:ss.fff"))
|
||||||
|
clunm.Add("MD5", md5)
|
||||||
|
loadFilerow.Add(clunm)
|
||||||
|
'filedata_li.Add(filedata)
|
||||||
|
Next
|
||||||
|
_FilePath_li.Clear()
|
||||||
|
Return loadFilerow
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' 获取数据库文件数据
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="DbConnString"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
|
||||||
|
Public Function GetMysqlfiledata(DbConnString As String) As List(Of Dictionary(Of String, String))
|
||||||
|
'Dim sqlfile As New Dictionary(Of Integer, List(Of String))
|
||||||
|
Dim FileMysqlRow As New List(Of Dictionary(Of String, String))
|
||||||
|
Try
|
||||||
|
Dim dt As DataTable
|
||||||
|
|
||||||
|
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||||
|
db.Open()
|
||||||
|
dt = db.ExecuteDataTable(db.CmdHelper.SearchAll("tbl_model_file_data", $"Available = '1'"))
|
||||||
|
db.Close()
|
||||||
|
End Using
|
||||||
|
For Each dtrow As DataRow In dt.Rows
|
||||||
|
Dim clunm As New Dictionary(Of String, String)
|
||||||
|
For i As Integer = 0 To dt.Columns.Count - 1
|
||||||
|
'Console.WriteLine("argRoomTypeNodeIdx = " & dtrow.Item(i))
|
||||||
|
'If dtrow.Item(i).GetType = "DbNull" Then
|
||||||
|
' clunm.Add(dt.Columns(i).ColumnName, "")
|
||||||
|
' Continue For
|
||||||
|
'End If
|
||||||
|
clunm.Add(dt.Columns(i).ColumnName, dtrow.Item(i).ToString)
|
||||||
|
Next
|
||||||
|
FileMysqlRow.Add(clunm)
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
End Try
|
||||||
|
Return FileMysqlRow
|
||||||
|
End Function
|
||||||
|
''' <summary>
|
||||||
|
'''
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="DbConnString"></param>
|
||||||
|
''' <param name="where"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Public Function GetMysqlfiledata(DbConnString As String, where As String) As List(Of Dictionary(Of String, String))
|
||||||
|
'Dim sqlfile As New Dictionary(Of Integer, List(Of String))
|
||||||
|
Dim FileMysqlRow As New List(Of Dictionary(Of String, String))
|
||||||
|
Try
|
||||||
|
Dim dt As DataTable
|
||||||
|
|
||||||
|
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||||
|
db.Open()
|
||||||
|
dt = db.ExecuteDataTable(db.CmdHelper.SearchAll("tbl_room_type_list", where))
|
||||||
|
db.Close()
|
||||||
|
End Using
|
||||||
|
For Each dtrow As DataRow In dt.Rows
|
||||||
|
Dim clunm As New Dictionary(Of String, String)
|
||||||
|
For i As Integer = 0 To dt.Columns.Count - 1
|
||||||
|
'Console.WriteLine("argRoomTypeNodeIdx = " & dtrow.Item(i))
|
||||||
|
'If dtrow.Item(i).GetType = "DbNull" Then
|
||||||
|
' clunm.Add(dt.Columns(i).ColumnName, "")
|
||||||
|
' Continue For
|
||||||
|
'End If
|
||||||
|
clunm.Add(dt.Columns(i).ColumnName, dtrow.Item(i).ToString)
|
||||||
|
Next
|
||||||
|
FileMysqlRow.Add(clunm)
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
End Try
|
||||||
|
Return FileMysqlRow
|
||||||
|
End Function
|
||||||
|
Public SyncNumber As New List(Of Integer)
|
||||||
|
''' <summary>
|
||||||
|
''' 文件比对
|
||||||
|
''' </summary>
|
||||||
|
Public Function Proofreadfile(ByRef loadFilerow As List(Of Dictionary(Of String, String)), ByRef FileMysqlRow As List(Of Dictionary(Of String, String)))
|
||||||
|
'下载标记 False 下载
|
||||||
|
Dim SyncToLoadFile As New Dictionary(Of String, String)
|
||||||
|
For i As Integer = 0 To FileMysqlRow.Count - 1
|
||||||
|
Dim download_flag As Boolean = False
|
||||||
|
Dim serverRow As Dictionary(Of String, String) = FileMysqlRow.Item(i)
|
||||||
|
For j As Integer = 0 To loadFilerow.Count - 1
|
||||||
|
Dim loadRow As Dictionary(Of String, String) = loadFilerow.Item(j)
|
||||||
|
If Filecomparison(serverRow, loadRow) Then
|
||||||
|
loadFilerow.RemoveAt(j)
|
||||||
|
download_flag = True
|
||||||
|
Exit For
|
||||||
|
Else
|
||||||
|
download_flag = False
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
|
||||||
|
If download_flag Then
|
||||||
|
Continue For
|
||||||
|
Else
|
||||||
|
'Dim syncfile As New Dictionary(Of String, String)
|
||||||
|
''云文件完整路径
|
||||||
|
'Dim Syncpath = _FileMysqlRow.Item(i).Item("Directory") & "\" & _FileMysqlRow.Item(i).Item("FileName")
|
||||||
|
'云文件相对路径
|
||||||
|
Dim filepath = FileMysqlRow.Item(i).Item("Directory") & "\" & FileMysqlRow.Item(i).Item("XML_FileName")
|
||||||
|
'syncfile.Add(Syncpath, RelativePath)
|
||||||
|
Dim Loadfilepath As String = filepath.Replace("\Data\Model\", "")
|
||||||
|
SyncNumber.Add(i) '储存节点,便于枚举云MD5值
|
||||||
|
SyncToLoadFile.Add(filepath, _SyncLoadDirPath & Loadfilepath)
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
loadFilerow.Clear()
|
||||||
|
|
||||||
|
Return SyncToLoadFile
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function Filecomparison(sqlfile As Dictionary(Of String, String), loadfile As Dictionary(Of String, String)) As Boolean
|
||||||
|
|
||||||
|
Dim loadpath = loadfile.Item("Directory").Replace(_SyncLoadDirPath, "_\") & loadfile.Item("FileName")
|
||||||
|
Dim serverpath = sqlfile.Item("Directory").Replace("\Data\Model", "_") & "\" & sqlfile.Item("XML_FileName")
|
||||||
|
|
||||||
|
If loadpath.Equals(serverpath) AndAlso loadfile.Item("MD5").Equals(sqlfile.Item("XLM_MD5")) Then
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
Return False
|
||||||
|
End Function
|
||||||
|
Public FtpHost As String = "blv-oa.com"
|
||||||
|
Public FtpPort As Integer = 50
|
||||||
|
Public FtpUser As String = "BLV_Studio"
|
||||||
|
Public FtpPwd As String = "37f5675t6R&5*"
|
||||||
|
''' <summary>
|
||||||
|
''' FTP下载
|
||||||
|
''' </summary>
|
||||||
|
Public Sub FTPDownloadFile(SyncToLoadFile As Dictionary(Of String, String), dic As Dictionary(Of String, String))
|
||||||
|
Try
|
||||||
|
UTSModule.UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||||
|
Dim ftp As UTSModule.UtsFtp = UTSModule.UtsFtp.CreateObject()
|
||||||
|
ftp.FtpHost = FtpHost
|
||||||
|
'For Each filepath In _SyncToLoadFile
|
||||||
|
|
||||||
|
'ftp.FtpDownload("/Data/Model/485Model/3.txt", _SyncLoadDirPath & "3.txt")
|
||||||
|
If ftp.FtpDownload(SyncToLoadFile, True) = 1 Then
|
||||||
|
If VerifyFileMD5(SyncToLoadFile.Values(0), dic.Item("CONFIG_XML_MD5")) Then
|
||||||
|
If VerifyFileMD5(SyncToLoadFile.Values(0), dic.Item("CONFIG_BIN_MD5")) Then
|
||||||
|
Else
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'检验文件是否下载到本地,和确保下载的文件是数据库的文件
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_startFlag = 2
|
||||||
|
num = 3600
|
||||||
|
RaiseEvent updateIcon(2)
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
'AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Public Sub FTPDownloadFile(SyncToLoadFile As Dictionary(Of String, String), FileMysqlRow As List(Of Dictionary(Of String, String)))
|
||||||
|
Try
|
||||||
|
UTSModule.UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||||
|
Dim ftp As UTSModule.UtsFtp = UTSModule.UtsFtp.CreateObject()
|
||||||
|
ftp.FtpHost = FtpHost
|
||||||
|
'For Each filepath In _SyncToLoadFile
|
||||||
|
If SyncToLoadFile.Count = 0 Then
|
||||||
|
_startFlag = 2
|
||||||
|
num = 3600
|
||||||
|
RaiseEvent updateIcon(2)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
'ftp.FtpDownload("/Data/Model/485Model/3.txt", _SyncLoadDirPath & "3.txt")
|
||||||
|
If ftp.FtpDownload(SyncToLoadFile) = 1 Then
|
||||||
|
For i As Integer = 0 To SyncToLoadFile.Count - 1
|
||||||
|
'检验文件是否下载到本地,和确保下载的文件是数据库的文件
|
||||||
|
If VerifyFileMD5(SyncToLoadFile.Values(i), FileMysqlRow.Item(SyncNumber.Item(i)).Item("XLM_MD5")) Then
|
||||||
|
|
||||||
|
Else
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_startFlag = 2
|
||||||
|
num = 3600
|
||||||
|
RaiseEvent updateIcon(2)
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
_startFlag = 1
|
||||||
|
num = 600
|
||||||
|
RaiseEvent updateIcon(1)
|
||||||
|
Return
|
||||||
|
'AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||||||
|
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Public Function FtpfileDownload(dirpath As String, filename As String, md5 As String) As Boolean
|
||||||
|
|
||||||
|
UTSModule.UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||||
|
Dim ftp As UTSModule.UtsFtp = UTSModule.UtsFtp.CreateObject()
|
||||||
|
ftp.FtpHost = FtpHost
|
||||||
|
|
||||||
|
|
||||||
|
If ftp.FtpDownload(dirpath, filename) = 1 Then
|
||||||
|
If VerifyFileMD5(filename, md5) Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Public Function VerifyFileMD5(filePath As String, fileMd5 As String) As Boolean
|
||||||
|
|
||||||
|
If IO.File.Exists(filePath) Then
|
||||||
|
Dim loadMD5 As String = GetStringMd5(filePath)
|
||||||
|
fileMd5=fileMd5.ToUpper
|
||||||
|
loadMD5 = loadMD5.ToUpper
|
||||||
|
If fileMd5.Equals(loadMD5) Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetStringMd5(filePath As String) As String
|
||||||
|
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
|
||||||
|
Dim databuff As Byte() = MD5.Create().ComputeHash(dataFile)
|
||||||
|
Dim MD5str As String = BitConverter.ToString(databuff)
|
||||||
|
Return MD5str.Replace("-", "")
|
||||||
|
'Console.WriteLine($"md5-1:{MD5str.Replace("-", "")}")
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function Utf8ToGB2312(utf8str As String) As String
|
||||||
|
Dim temp() As Byte
|
||||||
|
temp = Text.Encoding.Default.GetBytes(utf8str)
|
||||||
|
Text.Encoding.Convert(Text.Encoding.GetEncoding("utf-8"), Text.Encoding.GetEncoding("gb2312"), temp)
|
||||||
|
Return Text.Encoding.Default.GetString(temp)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Event updateIcon(ftpflag As Integer)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
489
Form1.Designer.vb
generated
Normal file
489
Form1.Designer.vb
generated
Normal file
@@ -0,0 +1,489 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||||
|
Partial Class Form1
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Form 重写 Dispose,以清理组件列表。
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()>
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Windows 窗体设计器所必需的
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'注意: 以下过程是 Windows 窗体设计器所必需的
|
||||||
|
'可以使用 Windows 窗体设计器修改它。
|
||||||
|
'不要使用代码编辑器修改它。
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()>
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
|
||||||
|
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
|
||||||
|
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.Button10 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button11 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button12 = New System.Windows.Forms.Button()
|
||||||
|
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.Button6 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button7 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button8 = New System.Windows.Forms.Button()
|
||||||
|
Me.GroupBox3 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.Button3 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button2 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button1 = New System.Windows.Forms.Button()
|
||||||
|
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
|
||||||
|
Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel()
|
||||||
|
Me.ToolStripLabel2 = New System.Windows.Forms.ToolStripLabel()
|
||||||
|
Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
|
Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton()
|
||||||
|
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
|
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
|
||||||
|
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
|
Me.GroupBox4 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.Grid1 = New FlexCell.Grid()
|
||||||
|
Me.Label1 = New System.Windows.Forms.Label()
|
||||||
|
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||||
|
Me.TextBox2 = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label2 = New System.Windows.Forms.Label()
|
||||||
|
Me.GroupBox5 = New System.Windows.Forms.GroupBox()
|
||||||
|
Me.Button14 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button15 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button16 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button9 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button5 = New System.Windows.Forms.Button()
|
||||||
|
Me.Button4 = New System.Windows.Forms.Button()
|
||||||
|
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SplitContainer1.Panel1.SuspendLayout()
|
||||||
|
Me.SplitContainer1.Panel2.SuspendLayout()
|
||||||
|
Me.SplitContainer1.SuspendLayout()
|
||||||
|
Me.GroupBox2.SuspendLayout()
|
||||||
|
Me.GroupBox1.SuspendLayout()
|
||||||
|
Me.GroupBox3.SuspendLayout()
|
||||||
|
Me.ToolStrip1.SuspendLayout()
|
||||||
|
Me.GroupBox4.SuspendLayout()
|
||||||
|
Me.GroupBox5.SuspendLayout()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'SplitContainer1
|
||||||
|
'
|
||||||
|
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.SplitContainer1.Name = "SplitContainer1"
|
||||||
|
'
|
||||||
|
'SplitContainer1.Panel1
|
||||||
|
'
|
||||||
|
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox5)
|
||||||
|
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox2)
|
||||||
|
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox1)
|
||||||
|
Me.SplitContainer1.Panel1.Controls.Add(Me.GroupBox3)
|
||||||
|
Me.SplitContainer1.Panel1.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
'
|
||||||
|
'SplitContainer1.Panel2
|
||||||
|
'
|
||||||
|
Me.SplitContainer1.Panel2.Controls.Add(Me.Grid1)
|
||||||
|
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox4)
|
||||||
|
Me.SplitContainer1.Panel2.Controls.Add(Me.ToolStrip1)
|
||||||
|
Me.SplitContainer1.Size = New System.Drawing.Size(1339, 795)
|
||||||
|
Me.SplitContainer1.SplitterDistance = 422
|
||||||
|
Me.SplitContainer1.TabIndex = 0
|
||||||
|
'
|
||||||
|
'GroupBox2
|
||||||
|
'
|
||||||
|
Me.GroupBox2.Controls.Add(Me.Button9)
|
||||||
|
Me.GroupBox2.Controls.Add(Me.Button10)
|
||||||
|
Me.GroupBox2.Controls.Add(Me.Button11)
|
||||||
|
Me.GroupBox2.Controls.Add(Me.Button12)
|
||||||
|
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Top
|
||||||
|
Me.GroupBox2.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.GroupBox2.Location = New System.Drawing.Point(0, 137)
|
||||||
|
Me.GroupBox2.Name = "GroupBox2"
|
||||||
|
Me.GroupBox2.Size = New System.Drawing.Size(422, 73)
|
||||||
|
Me.GroupBox2.TabIndex = 5
|
||||||
|
Me.GroupBox2.TabStop = False
|
||||||
|
Me.GroupBox2.Text = "固件"
|
||||||
|
'
|
||||||
|
'Button10
|
||||||
|
'
|
||||||
|
Me.Button10.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button10.Location = New System.Drawing.Point(147, 28)
|
||||||
|
Me.Button10.Name = "Button10"
|
||||||
|
Me.Button10.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button10.TabIndex = 12
|
||||||
|
Me.Button10.Text = "预览主机列表"
|
||||||
|
Me.Button10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button10.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button11
|
||||||
|
'
|
||||||
|
Me.Button11.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button11.Location = New System.Drawing.Point(239, 28)
|
||||||
|
Me.Button11.Name = "Button11"
|
||||||
|
Me.Button11.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button11.TabIndex = 11
|
||||||
|
Me.Button11.Text = "删除主机模型"
|
||||||
|
Me.Button11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button11.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button12
|
||||||
|
'
|
||||||
|
Me.Button12.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button12.Location = New System.Drawing.Point(331, 28)
|
||||||
|
Me.Button12.Name = "Button12"
|
||||||
|
Me.Button12.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button12.TabIndex = 10
|
||||||
|
Me.Button12.Text = "选择设备模型"
|
||||||
|
Me.Button12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button12.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'GroupBox1
|
||||||
|
'
|
||||||
|
Me.GroupBox1.Controls.Add(Me.Button5)
|
||||||
|
Me.GroupBox1.Controls.Add(Me.Button6)
|
||||||
|
Me.GroupBox1.Controls.Add(Me.Button7)
|
||||||
|
Me.GroupBox1.Controls.Add(Me.Button8)
|
||||||
|
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Top
|
||||||
|
Me.GroupBox1.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.GroupBox1.Location = New System.Drawing.Point(0, 69)
|
||||||
|
Me.GroupBox1.Name = "GroupBox1"
|
||||||
|
Me.GroupBox1.Size = New System.Drawing.Size(422, 68)
|
||||||
|
Me.GroupBox1.TabIndex = 4
|
||||||
|
Me.GroupBox1.TabStop = False
|
||||||
|
Me.GroupBox1.Text = "设备"
|
||||||
|
'
|
||||||
|
'Button6
|
||||||
|
'
|
||||||
|
Me.Button6.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button6.Location = New System.Drawing.Point(147, 28)
|
||||||
|
Me.Button6.Name = "Button6"
|
||||||
|
Me.Button6.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button6.TabIndex = 8
|
||||||
|
Me.Button6.Text = "预览主机列表"
|
||||||
|
Me.Button6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button6.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button7
|
||||||
|
'
|
||||||
|
Me.Button7.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button7.Location = New System.Drawing.Point(239, 28)
|
||||||
|
Me.Button7.Name = "Button7"
|
||||||
|
Me.Button7.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button7.TabIndex = 7
|
||||||
|
Me.Button7.Text = "删除主机模型"
|
||||||
|
Me.Button7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button7.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button8
|
||||||
|
'
|
||||||
|
Me.Button8.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button8.Location = New System.Drawing.Point(331, 28)
|
||||||
|
Me.Button8.Name = "Button8"
|
||||||
|
Me.Button8.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button8.TabIndex = 6
|
||||||
|
Me.Button8.Text = "选择设备模型"
|
||||||
|
Me.Button8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button8.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'GroupBox3
|
||||||
|
'
|
||||||
|
Me.GroupBox3.Controls.Add(Me.Button4)
|
||||||
|
Me.GroupBox3.Controls.Add(Me.Button3)
|
||||||
|
Me.GroupBox3.Controls.Add(Me.Button2)
|
||||||
|
Me.GroupBox3.Controls.Add(Me.Button1)
|
||||||
|
Me.GroupBox3.Dock = System.Windows.Forms.DockStyle.Top
|
||||||
|
Me.GroupBox3.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.GroupBox3.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.GroupBox3.Name = "GroupBox3"
|
||||||
|
Me.GroupBox3.Size = New System.Drawing.Size(422, 69)
|
||||||
|
Me.GroupBox3.TabIndex = 2
|
||||||
|
Me.GroupBox3.TabStop = False
|
||||||
|
Me.GroupBox3.Text = "主机"
|
||||||
|
'
|
||||||
|
'Button3
|
||||||
|
'
|
||||||
|
Me.Button3.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button3.Location = New System.Drawing.Point(147, 28)
|
||||||
|
Me.Button3.Name = "Button3"
|
||||||
|
Me.Button3.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button3.TabIndex = 3
|
||||||
|
Me.Button3.Text = "预览主机列表"
|
||||||
|
Me.Button3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button3.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button2
|
||||||
|
'
|
||||||
|
Me.Button2.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button2.Location = New System.Drawing.Point(239, 28)
|
||||||
|
Me.Button2.Name = "Button2"
|
||||||
|
Me.Button2.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button2.TabIndex = 2
|
||||||
|
Me.Button2.Text = "删除主机模型"
|
||||||
|
Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button2.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button1
|
||||||
|
'
|
||||||
|
Me.Button1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button1.Location = New System.Drawing.Point(331, 28)
|
||||||
|
Me.Button1.Name = "Button1"
|
||||||
|
Me.Button1.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button1.TabIndex = 1
|
||||||
|
Me.Button1.Text = "选择主机模型"
|
||||||
|
Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button1.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'ToolStrip1
|
||||||
|
'
|
||||||
|
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLabel1, Me.ToolStripLabel2, Me.ToolStripSeparator2, Me.ToolStripButton2, Me.ToolStripSeparator1, Me.ToolStripButton1, Me.ToolStripSeparator3})
|
||||||
|
Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.ToolStrip1.Name = "ToolStrip1"
|
||||||
|
Me.ToolStrip1.Size = New System.Drawing.Size(913, 25)
|
||||||
|
Me.ToolStrip1.TabIndex = 0
|
||||||
|
Me.ToolStrip1.Text = "ToolStrip1"
|
||||||
|
'
|
||||||
|
'ToolStripLabel1
|
||||||
|
'
|
||||||
|
Me.ToolStripLabel1.Name = "ToolStripLabel1"
|
||||||
|
Me.ToolStripLabel1.Size = New System.Drawing.Size(59, 22)
|
||||||
|
Me.ToolStripLabel1.Text = "文件名称:"
|
||||||
|
'
|
||||||
|
'ToolStripLabel2
|
||||||
|
'
|
||||||
|
Me.ToolStripLabel2.AutoSize = False
|
||||||
|
Me.ToolStripLabel2.Name = "ToolStripLabel2"
|
||||||
|
Me.ToolStripLabel2.Size = New System.Drawing.Size(500, 22)
|
||||||
|
'
|
||||||
|
'ToolStripSeparator2
|
||||||
|
'
|
||||||
|
Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
|
||||||
|
Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25)
|
||||||
|
'
|
||||||
|
'ToolStripButton2
|
||||||
|
'
|
||||||
|
Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
|
||||||
|
Me.ToolStripButton2.Image = CType(resources.GetObject("ToolStripButton2.Image"), System.Drawing.Image)
|
||||||
|
Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
|
Me.ToolStripButton2.Name = "ToolStripButton2"
|
||||||
|
Me.ToolStripButton2.Size = New System.Drawing.Size(60, 22)
|
||||||
|
Me.ToolStripButton2.Text = "删除文件"
|
||||||
|
'
|
||||||
|
'ToolStripSeparator1
|
||||||
|
'
|
||||||
|
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
|
||||||
|
Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25)
|
||||||
|
'
|
||||||
|
'ToolStripButton1
|
||||||
|
'
|
||||||
|
Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
|
||||||
|
Me.ToolStripButton1.Image = CType(resources.GetObject("ToolStripButton1.Image"), System.Drawing.Image)
|
||||||
|
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
|
Me.ToolStripButton1.Name = "ToolStripButton1"
|
||||||
|
Me.ToolStripButton1.Size = New System.Drawing.Size(60, 22)
|
||||||
|
Me.ToolStripButton1.Text = "上传文件"
|
||||||
|
'
|
||||||
|
'ToolStripSeparator3
|
||||||
|
'
|
||||||
|
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
|
||||||
|
Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25)
|
||||||
|
'
|
||||||
|
'GroupBox4
|
||||||
|
'
|
||||||
|
Me.GroupBox4.Controls.Add(Me.TextBox2)
|
||||||
|
Me.GroupBox4.Controls.Add(Me.Label2)
|
||||||
|
Me.GroupBox4.Controls.Add(Me.TextBox1)
|
||||||
|
Me.GroupBox4.Controls.Add(Me.Label1)
|
||||||
|
Me.GroupBox4.Dock = System.Windows.Forms.DockStyle.Top
|
||||||
|
Me.GroupBox4.Location = New System.Drawing.Point(0, 25)
|
||||||
|
Me.GroupBox4.Name = "GroupBox4"
|
||||||
|
Me.GroupBox4.Size = New System.Drawing.Size(913, 73)
|
||||||
|
Me.GroupBox4.TabIndex = 6
|
||||||
|
Me.GroupBox4.TabStop = False
|
||||||
|
Me.GroupBox4.Text = "上传信息"
|
||||||
|
'
|
||||||
|
'Grid1
|
||||||
|
'
|
||||||
|
Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
|
||||||
|
Me.Grid1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.Grid1.Location = New System.Drawing.Point(0, 98)
|
||||||
|
Me.Grid1.MouseWheelSpeed = CType(3, Short)
|
||||||
|
Me.Grid1.Name = "Grid1"
|
||||||
|
Me.Grid1.Size = New System.Drawing.Size(913, 697)
|
||||||
|
Me.Grid1.TabIndex = 7
|
||||||
|
'
|
||||||
|
'Label1
|
||||||
|
'
|
||||||
|
Me.Label1.AutoSize = True
|
||||||
|
Me.Label1.Location = New System.Drawing.Point(6, 22)
|
||||||
|
Me.Label1.Name = "Label1"
|
||||||
|
Me.Label1.Size = New System.Drawing.Size(53, 12)
|
||||||
|
Me.Label1.TabIndex = 0
|
||||||
|
Me.Label1.Text = "上传用户"
|
||||||
|
'
|
||||||
|
'TextBox1
|
||||||
|
'
|
||||||
|
Me.TextBox1.Location = New System.Drawing.Point(8, 44)
|
||||||
|
Me.TextBox1.Name = "TextBox1"
|
||||||
|
Me.TextBox1.Size = New System.Drawing.Size(116, 21)
|
||||||
|
Me.TextBox1.TabIndex = 1
|
||||||
|
'
|
||||||
|
'TextBox2
|
||||||
|
'
|
||||||
|
Me.TextBox2.Location = New System.Drawing.Point(191, 19)
|
||||||
|
Me.TextBox2.Multiline = True
|
||||||
|
Me.TextBox2.Name = "TextBox2"
|
||||||
|
Me.TextBox2.Size = New System.Drawing.Size(714, 48)
|
||||||
|
Me.TextBox2.TabIndex = 3
|
||||||
|
'
|
||||||
|
'Label2
|
||||||
|
'
|
||||||
|
Me.Label2.AutoSize = True
|
||||||
|
Me.Label2.Location = New System.Drawing.Point(132, 22)
|
||||||
|
Me.Label2.Name = "Label2"
|
||||||
|
Me.Label2.Size = New System.Drawing.Size(53, 12)
|
||||||
|
Me.Label2.TabIndex = 2
|
||||||
|
Me.Label2.Text = "上传备注"
|
||||||
|
'
|
||||||
|
'GroupBox5
|
||||||
|
'
|
||||||
|
Me.GroupBox5.Controls.Add(Me.Button14)
|
||||||
|
Me.GroupBox5.Controls.Add(Me.Button15)
|
||||||
|
Me.GroupBox5.Controls.Add(Me.Button16)
|
||||||
|
Me.GroupBox5.Dock = System.Windows.Forms.DockStyle.Top
|
||||||
|
Me.GroupBox5.Font = New System.Drawing.Font("宋体", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.GroupBox5.Location = New System.Drawing.Point(0, 210)
|
||||||
|
Me.GroupBox5.Name = "GroupBox5"
|
||||||
|
Me.GroupBox5.Size = New System.Drawing.Size(422, 68)
|
||||||
|
Me.GroupBox5.TabIndex = 6
|
||||||
|
Me.GroupBox5.TabStop = False
|
||||||
|
Me.GroupBox5.Text = "基类"
|
||||||
|
'
|
||||||
|
'Button14
|
||||||
|
'
|
||||||
|
Me.Button14.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button14.Location = New System.Drawing.Point(147, 28)
|
||||||
|
Me.Button14.Name = "Button14"
|
||||||
|
Me.Button14.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button14.TabIndex = 8
|
||||||
|
Me.Button14.Text = "预览主机列表"
|
||||||
|
Me.Button14.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button14.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button15
|
||||||
|
'
|
||||||
|
Me.Button15.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button15.Location = New System.Drawing.Point(239, 28)
|
||||||
|
Me.Button15.Name = "Button15"
|
||||||
|
Me.Button15.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button15.TabIndex = 7
|
||||||
|
Me.Button15.Text = "删除主机模型"
|
||||||
|
Me.Button15.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button15.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button16
|
||||||
|
'
|
||||||
|
Me.Button16.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button16.Location = New System.Drawing.Point(331, 28)
|
||||||
|
Me.Button16.Name = "Button16"
|
||||||
|
Me.Button16.Size = New System.Drawing.Size(86, 31)
|
||||||
|
Me.Button16.TabIndex = 6
|
||||||
|
Me.Button16.Text = "选择设备模型"
|
||||||
|
Me.Button16.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button16.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button9
|
||||||
|
'
|
||||||
|
Me.Button9.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button9.Location = New System.Drawing.Point(12, 28)
|
||||||
|
Me.Button9.Name = "Button9"
|
||||||
|
Me.Button9.Size = New System.Drawing.Size(129, 31)
|
||||||
|
Me.Button9.TabIndex = 13
|
||||||
|
Me.Button9.Text = "预览设备与固件列表"
|
||||||
|
Me.Button9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button9.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button5
|
||||||
|
'
|
||||||
|
Me.Button5.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button5.Location = New System.Drawing.Point(12, 28)
|
||||||
|
Me.Button5.Name = "Button5"
|
||||||
|
Me.Button5.Size = New System.Drawing.Size(129, 31)
|
||||||
|
Me.Button5.TabIndex = 9
|
||||||
|
Me.Button5.Text = "预览设备与固件列表"
|
||||||
|
Me.Button5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button5.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Button4
|
||||||
|
'
|
||||||
|
Me.Button4.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
|
||||||
|
Me.Button4.Location = New System.Drawing.Point(12, 28)
|
||||||
|
Me.Button4.Name = "Button4"
|
||||||
|
Me.Button4.Size = New System.Drawing.Size(129, 31)
|
||||||
|
Me.Button4.TabIndex = 4
|
||||||
|
Me.Button4.Text = "预览设备与固件列表"
|
||||||
|
Me.Button4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.Button4.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Form1
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(1339, 795)
|
||||||
|
Me.Controls.Add(Me.SplitContainer1)
|
||||||
|
Me.Name = "Form1"
|
||||||
|
Me.Text = "设备与固件"
|
||||||
|
Me.SplitContainer1.Panel1.ResumeLayout(False)
|
||||||
|
Me.SplitContainer1.Panel2.ResumeLayout(False)
|
||||||
|
Me.SplitContainer1.Panel2.PerformLayout()
|
||||||
|
CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.SplitContainer1.ResumeLayout(False)
|
||||||
|
Me.GroupBox2.ResumeLayout(False)
|
||||||
|
Me.GroupBox1.ResumeLayout(False)
|
||||||
|
Me.GroupBox3.ResumeLayout(False)
|
||||||
|
Me.ToolStrip1.ResumeLayout(False)
|
||||||
|
Me.ToolStrip1.PerformLayout()
|
||||||
|
Me.GroupBox4.ResumeLayout(False)
|
||||||
|
Me.GroupBox4.PerformLayout()
|
||||||
|
Me.GroupBox5.ResumeLayout(False)
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents SplitContainer1 As SplitContainer
|
||||||
|
Friend WithEvents GroupBox3 As GroupBox
|
||||||
|
Friend WithEvents GroupBox2 As GroupBox
|
||||||
|
Friend WithEvents GroupBox1 As GroupBox
|
||||||
|
Friend WithEvents Button1 As Button
|
||||||
|
Friend WithEvents Button3 As Button
|
||||||
|
Friend WithEvents Button2 As Button
|
||||||
|
Friend WithEvents Button6 As Button
|
||||||
|
Friend WithEvents Button7 As Button
|
||||||
|
Friend WithEvents Button8 As Button
|
||||||
|
Friend WithEvents Button10 As Button
|
||||||
|
Friend WithEvents Button11 As Button
|
||||||
|
Friend WithEvents Button12 As Button
|
||||||
|
Friend WithEvents ToolStrip1 As ToolStrip
|
||||||
|
Friend WithEvents ToolStripLabel1 As ToolStripLabel
|
||||||
|
Friend WithEvents ToolStripLabel2 As ToolStripLabel
|
||||||
|
Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
|
||||||
|
Friend WithEvents ToolStripButton2 As ToolStripButton
|
||||||
|
Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
|
||||||
|
Friend WithEvents ToolStripButton1 As ToolStripButton
|
||||||
|
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
|
||||||
|
Friend WithEvents Grid1 As FlexCell.Grid
|
||||||
|
Friend WithEvents GroupBox4 As GroupBox
|
||||||
|
Friend WithEvents TextBox2 As TextBox
|
||||||
|
Friend WithEvents Label2 As Label
|
||||||
|
Friend WithEvents TextBox1 As TextBox
|
||||||
|
Friend WithEvents Label1 As Label
|
||||||
|
Friend WithEvents GroupBox5 As GroupBox
|
||||||
|
Friend WithEvents Button14 As Button
|
||||||
|
Friend WithEvents Button15 As Button
|
||||||
|
Friend WithEvents Button16 As Button
|
||||||
|
Friend WithEvents Button9 As Button
|
||||||
|
Friend WithEvents Button5 As Button
|
||||||
|
Friend WithEvents Button4 As Button
|
||||||
|
End Class
|
||||||
157
Form1.resx
Normal file
157
Form1.resx
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
<?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="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="ToolStripButton2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||||
|
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||||
|
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||||
|
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||||
|
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||||
|
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||||
|
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||||
|
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||||
|
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||||
|
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||||
|
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||||
|
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||||
|
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||||
|
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||||
|
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||||
|
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||||
|
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||||
|
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||||
|
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>37</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
687
Form1.vb
Normal file
687
Form1.vb
Normal file
@@ -0,0 +1,687 @@
|
|||||||
|
Imports System.IO
|
||||||
|
Imports System.Text
|
||||||
|
Imports System.Xml
|
||||||
|
Imports DevModeFirmwareInfo.UTSModule
|
||||||
|
Imports FlexCell
|
||||||
|
Imports MySql.Data.MySqlClient
|
||||||
|
|
||||||
|
Public Class Form1
|
||||||
|
Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_rcu_db;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
|
||||||
|
|
||||||
|
'固件量
|
||||||
|
Public GFirmwareli As Dictionary(Of String, String)
|
||||||
|
'主机数量
|
||||||
|
Public GHostli As Dictionary(Of String, String)
|
||||||
|
'设备数量
|
||||||
|
Public GDevli As Dictionary(Of String, String)
|
||||||
|
Public FtpHost As String = "blv-oa.com"
|
||||||
|
Public FtpPort As Integer = 50
|
||||||
|
Public FtpUser As String = "BLV_Studio"
|
||||||
|
Public FtpPwd As String = "37f5675t6R&5*"
|
||||||
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||||
|
Dim xmlFilePath As String = SelectXmlFile()
|
||||||
|
If String.IsNullOrEmpty(xmlFilePath) Then
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Dim strValue As String = XmlFieldExistsf(xmlFilePath, "DEV_NAME")
|
||||||
|
If strValue.Trim.ToLower.Equals("blv_c12") Then
|
||||||
|
ToolStripLabel2.Text = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||||||
|
ToolStripLabel2.Tag = 1
|
||||||
|
ToolStripLabel1.Tag = xmlFilePath
|
||||||
|
Dim Hostli = New Dictionary(Of String, String)()
|
||||||
|
Dim intValue As Integer = XmlFieldExists(xmlFilePath, "DEV_DATA_MODEL_VER")
|
||||||
|
Hostli.Add(ToolStripLabel2.Text, intValue.ToString())
|
||||||
|
LoadData(GFirmwareli, Hostli, GDevli)
|
||||||
|
Else
|
||||||
|
MessageBox.Show("请选择正确的xml文件")
|
||||||
|
End If
|
||||||
|
|
||||||
|
'将文件路径截取文件名称设置到ToolStripLabel2文本中
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Public Function XmlFieldExists(xmlFile As String, fieldName As String) As Integer
|
||||||
|
Try
|
||||||
|
Dim doc As New XmlDocument()
|
||||||
|
doc.Load(xmlFile)
|
||||||
|
|
||||||
|
' 任意深度查找第一个匹配节点
|
||||||
|
Dim node As XmlNode = doc.SelectSingleNode($"//{fieldName}")
|
||||||
|
If node IsNot Nothing Then
|
||||||
|
'取到该节点的值
|
||||||
|
Dim value As String = node.InnerText.Trim()
|
||||||
|
'将其转int
|
||||||
|
Dim intValue As Integer = 0
|
||||||
|
Dim d As Double = 0
|
||||||
|
Double.TryParse(value, d)
|
||||||
|
Integer.TryParse(d, intValue)
|
||||||
|
Return intValue
|
||||||
|
Else
|
||||||
|
Return 0
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
' 文件不存在、XML 格式错误、权限问题等都算“找不到”
|
||||||
|
Return 0
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Public Function XmlFieldExistsf(xmlFile As String, fieldName As String) As String
|
||||||
|
Try
|
||||||
|
Dim doc As New XmlDocument()
|
||||||
|
doc.Load(xmlFile)
|
||||||
|
|
||||||
|
' 任意深度查找第一个匹配节点
|
||||||
|
Dim node As XmlNode = doc.SelectSingleNode($"//{fieldName}")
|
||||||
|
If node IsNot Nothing Then
|
||||||
|
'取到该节点的值
|
||||||
|
Dim value As String = node.InnerText
|
||||||
|
'将其转int
|
||||||
|
|
||||||
|
Return value
|
||||||
|
|
||||||
|
Else
|
||||||
|
Return ""
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
' 文件不存在、XML 格式错误、权限问题等都算“找不到”
|
||||||
|
Return ""
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
'加载Grid1数据
|
||||||
|
Public Sub LoadData(Firmwareli As Dictionary(Of String, String), Hostli As Dictionary(Of String, String), Devli As Dictionary(Of String, String))
|
||||||
|
'嵌套遍历三个列表
|
||||||
|
initdevmodefirmware()
|
||||||
|
For Each Firmware In Firmwareli
|
||||||
|
For Each Host In Hostli
|
||||||
|
For Each Dev In Devli
|
||||||
|
Grid1.AddItem("")
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 0).Text = Grid1.Rows - 1
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 1).Text = Host.Value
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 2).Text = Host.Key
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 3).Text = Firmware.Value
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 4).Text = Firmware.Key
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 5).Text = Dev.Value
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 6).Text = Dev.Key
|
||||||
|
Grid1.Cell(Grid1.Rows - 1, 7).Text = "1"
|
||||||
|
Next
|
||||||
|
Next
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Public Sub initdevmodefirmware()
|
||||||
|
With Grid1
|
||||||
|
.NewFile()
|
||||||
|
.ExtendLastCol = True
|
||||||
|
.DisplayRowNumber = True
|
||||||
|
.Rows = 1
|
||||||
|
.Cols = 8
|
||||||
|
For i As Integer = 0 To .Cols - 1
|
||||||
|
.Column(i).Alignment = AlignmentEnum.CenterCenter
|
||||||
|
.Column(i).Locked = True
|
||||||
|
Next
|
||||||
|
.Cell(0, 0).Text = "序号"
|
||||||
|
.Column(0).Width = 30
|
||||||
|
|
||||||
|
.Cell(0, 1).Text = "主机版本"
|
||||||
|
.Column(1).Width = 30
|
||||||
|
|
||||||
|
.Cell(0, 2).Text = "主机"
|
||||||
|
.Column(2).Width = 200
|
||||||
|
.Cell(0, 3).Text = "固件版本"
|
||||||
|
.Column(3).Width = 30
|
||||||
|
.Cell(0, 4).Text = "固件"
|
||||||
|
.Column(4).Width = 200
|
||||||
|
.Cell(0, 5).Text = "设备版本"
|
||||||
|
.Column(5).Width = 30
|
||||||
|
.Cell(0, 6).Text = "设备"
|
||||||
|
.Column(6).Width = 200
|
||||||
|
.Cell(0, 7).Text = "是否有效"
|
||||||
|
.Column(7).CellType = CellTypeEnum.CheckBox
|
||||||
|
.Column(7).Locked = False
|
||||||
|
|
||||||
|
End With
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
''' <summary>
|
||||||
|
''' 弹出文件选择对话框,只允许选择 .xml 文件。
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>选中的 .xml 文件的完整路径;如果用户取消,则返回 Nothing。</returns>
|
||||||
|
Public Function SelectXmlFile() As String
|
||||||
|
Using ofd As New OpenFileDialog()
|
||||||
|
ofd.Title = "请选择 XML 文件"
|
||||||
|
ofd.Filter = "XML 文件 (*.xml)|*.xml"
|
||||||
|
ofd.Multiselect = False
|
||||||
|
ofd.CheckFileExists = True
|
||||||
|
ofd.CheckPathExists = True
|
||||||
|
|
||||||
|
If ofd.ShowDialog() = DialogResult.OK Then
|
||||||
|
Return ofd.FileName
|
||||||
|
Else
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
End Function
|
||||||
|
Public Function SelecthexFile() As String
|
||||||
|
'C1F_A_L4_42_251110_NM
|
||||||
|
Using ofd As New OpenFileDialog()
|
||||||
|
ofd.Title = "请选择 XML 文件"
|
||||||
|
ofd.Filter = "XML 文件 (*.hex)|*.HEX"
|
||||||
|
ofd.Multiselect = False
|
||||||
|
ofd.CheckFileExists = True
|
||||||
|
ofd.CheckPathExists = True
|
||||||
|
|
||||||
|
If ofd.ShowDialog() = DialogResult.OK Then
|
||||||
|
Return ofd.FileName
|
||||||
|
Else
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
End Function
|
||||||
|
|
||||||
|
'查询主机、固件、设备 数量函数
|
||||||
|
Public Sub QueryCount()
|
||||||
|
GFirmwareli = New Dictionary(Of String, String)()
|
||||||
|
GHostli = New Dictionary(Of String, String)()
|
||||||
|
GDevli = New Dictionary(Of String, String)()
|
||||||
|
Dim ExecText As String = "SELECT HostVersion, HostName
|
||||||
|
FROM (
|
||||||
|
SELECT HostVersion,
|
||||||
|
HostName,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY HostName ORDER BY ID) AS rn
|
||||||
|
FROM tbl_devmode_firmware_info
|
||||||
|
) t
|
||||||
|
WHERE rn = 1;"
|
||||||
|
|
||||||
|
Dim dt As DataTable
|
||||||
|
|
||||||
|
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||||
|
Try
|
||||||
|
db.Open()
|
||||||
|
dt = db.ExecuteDataTable(ExecText)
|
||||||
|
'将查询到的值赋给全局变量
|
||||||
|
For Each row As DataRow In dt.Rows
|
||||||
|
GHostli.Add(row("HostName").ToString(), row("HostVersion").ToString())
|
||||||
|
Next
|
||||||
|
|
||||||
|
ExecText = "SELECT FirmwareVersion, FirmwareName
|
||||||
|
FROM (
|
||||||
|
SELECT FirmwareVersion,
|
||||||
|
FirmwareName,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY FirmwareName ORDER BY ID) AS rn
|
||||||
|
FROM tbl_devmode_firmware_info
|
||||||
|
) t
|
||||||
|
WHERE rn = 1;"
|
||||||
|
dt = db.ExecuteDataTable(ExecText)
|
||||||
|
For Each row As DataRow In dt.Rows
|
||||||
|
GFirmwareli.Add(row("FirmwareName").ToString(), row("FirmwareVersion").ToString())
|
||||||
|
Next
|
||||||
|
ExecText = "SELECT DevVersion, DevName
|
||||||
|
FROM (
|
||||||
|
SELECT DevVersion,
|
||||||
|
DevName,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY DevName ORDER BY ID) AS rn
|
||||||
|
FROM tbl_devmode_firmware_info
|
||||||
|
) t
|
||||||
|
WHERE rn = 1;;"
|
||||||
|
|
||||||
|
dt = db.ExecuteDataTable(ExecText)
|
||||||
|
For Each row As DataRow In dt.Rows
|
||||||
|
GDevli.Add(row("DevName").ToString(), row("DevVersion").ToString())
|
||||||
|
Next
|
||||||
|
|
||||||
|
db.Close()
|
||||||
|
Catch ex As Exception
|
||||||
|
db.Close()
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Using
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
'查询tbl_devmode_firmware_info 表中的数据,并显示在FlexCell控件中
|
||||||
|
Public Sub QueryData(tablename)
|
||||||
|
Dim ExecText As String = $"SELECT * FROM {tablename} ORDER BY ID DESC;"
|
||||||
|
Dim dt As DataTable
|
||||||
|
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||||
|
Try
|
||||||
|
db.Open()
|
||||||
|
dt = db.ExecuteDataTable(ExecText)
|
||||||
|
db.Close()
|
||||||
|
Grid1.DataSource = dt
|
||||||
|
Grid1.Locked = True
|
||||||
|
Catch ex As Exception
|
||||||
|
db.Close()
|
||||||
|
End Try
|
||||||
|
End Using
|
||||||
|
End Sub
|
||||||
|
Public Sub QueryData2(tablename)
|
||||||
|
Dim ExecText As String = $"SELECT * FROM {tablename} ORDER BY MFD_ID DESC;"
|
||||||
|
Dim dt As DataTable
|
||||||
|
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||||
|
Try
|
||||||
|
db.Open()
|
||||||
|
dt = db.ExecuteDataTable(ExecText)
|
||||||
|
db.Close()
|
||||||
|
Grid1.DataSource = dt
|
||||||
|
Grid1.Locked = True
|
||||||
|
Catch ex As Exception
|
||||||
|
db.Close()
|
||||||
|
End Try
|
||||||
|
End Using
|
||||||
|
End Sub
|
||||||
|
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
|
UtsFtp.InitConnectParams(FtpPort, FtpUser, FtpPwd)
|
||||||
|
QueryCount()
|
||||||
|
QueryData("tbl_devmode_firmware_info")
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
|
||||||
|
Dim xmlFilePath As String = SelectXmlFile()
|
||||||
|
If String.IsNullOrEmpty(xmlFilePath) Then
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Dim strValue As String = XmlFieldExistsf(xmlFilePath, "DEV_INTERFACE")
|
||||||
|
If strValue.Trim.ToLower.Equals("RS485Active".ToLower) OrElse strValue.Trim.ToLower.Equals("VirtualObject".ToLower) OrElse strValue.Trim.ToLower.Equals("RS485Polling".ToLower) Then
|
||||||
|
ToolStripLabel2.Text = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||||||
|
ToolStripLabel2.Tag = 2
|
||||||
|
ToolStripLabel1.Tag = xmlFilePath
|
||||||
|
Dim Devli = New Dictionary(Of String, String)()
|
||||||
|
Dim intValue As Integer = XmlFieldExists(xmlFilePath, "DEV_DATA_MODEL_VER")
|
||||||
|
Devli.Add(ToolStripLabel2.Text, intValue.ToString())
|
||||||
|
LoadData(GFirmwareli, GHostli, Devli)
|
||||||
|
Else
|
||||||
|
MessageBox.Show("请选择正确的xml文件")
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
|
||||||
|
Dim xmlFilePath As String = SelecthexFile()
|
||||||
|
If String.IsNullOrEmpty(xmlFilePath) Then
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Dim strValue As String = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||||||
|
If IsFirmwareNameValid(strValue) Then
|
||||||
|
Dim buff1 As String() = strValue.Split("_")
|
||||||
|
ToolStripLabel2.Text = strValue
|
||||||
|
ToolStripLabel2.Tag = 3
|
||||||
|
ToolStripLabel1.Tag = xmlFilePath
|
||||||
|
Dim Firmwareli = New Dictionary(Of String, String)()
|
||||||
|
Dim intValue As Integer = Hex2ToInt(buff1(3).ToString)
|
||||||
|
Firmwareli.Add(ToolStripLabel2.Text, intValue.ToString())
|
||||||
|
LoadData(Firmwareli, GHostli, GDevli)
|
||||||
|
Else
|
||||||
|
MessageBox.Show("请选择正确的固件文件")
|
||||||
|
|
||||||
|
End If
|
||||||
|
'C1F_A_L4_42_251110_NM
|
||||||
|
'判断文件名称是否合法
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
'判断固件文件名称是否合法函数
|
||||||
|
Private Function IsFirmwareNameValid(ByVal FirmwareName As String) As Boolean
|
||||||
|
Dim buff1 As String() = FirmwareName.ToLower.Replace(".hex", "").Split("_")
|
||||||
|
If buff1.Length = 6 AndAlso buff1(1).ToLower.Equals("a") AndAlso buff1(0).ToLower.Equals("c1f") Then
|
||||||
|
If buff1(5).ToLower.Equals("m") Or buff1(5).ToLower.Equals("nm") Then
|
||||||
|
If buff1(2).ToLower.Equals("l2") Or buff1(2).ToLower.Equals("l4") Then
|
||||||
|
|
||||||
|
If IsNumeric(Hex2ToInt(buff1(3).ToString)) AndAlso IsNumeric(buff1(4)) Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Public Function Hex2ToInt(ByVal hex2 As String) As Integer
|
||||||
|
If hex2 Is Nothing OrElse hex2.Length <> 2 Then Return -1
|
||||||
|
|
||||||
|
Dim v As Byte
|
||||||
|
|
||||||
|
If Byte.TryParse(hex2, Globalization.NumberStyles.HexNumber, Nothing, v) Then
|
||||||
|
Return CInt(v)
|
||||||
|
End If
|
||||||
|
Return -1
|
||||||
|
End Function
|
||||||
|
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
|
||||||
|
Dim intag As Integer = ToolStripLabel2.Tag
|
||||||
|
Select Case intag
|
||||||
|
Case 1
|
||||||
|
UploadHostFile()
|
||||||
|
Case 2
|
||||||
|
UploadDEvFile()
|
||||||
|
Case 3
|
||||||
|
UploadFirmwareFile()
|
||||||
|
Case > 3
|
||||||
|
MsgBox("发布失败,未设置设备有效固件")
|
||||||
|
|
||||||
|
End Select
|
||||||
|
QueryCount()
|
||||||
|
QueryData("tbl_devmode_firmware_info")
|
||||||
|
End Sub
|
||||||
|
'上传固件文件函数
|
||||||
|
Private Sub UploadFirmwareFile()
|
||||||
|
''弹出提示询问是否填写完设备有效固件
|
||||||
|
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
|
||||||
|
Dim loadFilePath As String = ToolStripLabel1.Tag
|
||||||
|
Dim hostFilePath As String = $"\Data\Firmware\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
|
||||||
|
'判断上传者是否为空
|
||||||
|
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||||||
|
MsgBox("请填写上传者")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||||||
|
MsgBox("备注不能为空!请填写备注!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
'判断文件是否已在服务器
|
||||||
|
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||||||
|
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
Try
|
||||||
|
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
|
||||||
|
'遍历表格
|
||||||
|
' Dim li As List(Of String) = New List(Of String)()
|
||||||
|
Dim rowstr As String = ""
|
||||||
|
Dim UserName = TextBox1.Text.Trim
|
||||||
|
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||||||
|
Dim FirmwareEnable As Integer = 0
|
||||||
|
Dim HostVersion, FirmwareVersion, DevVersion As String
|
||||||
|
Dim HostName, FirmwareName, DevName As String
|
||||||
|
Dim md5 As String = GetStringMd5(loadFilePath)
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim buf As String() = ToolStripLabel2.Text.Split("_")
|
||||||
|
Dim mac As String = GetMACaddress()
|
||||||
|
Dim filepazth = $"\Data\Firmware\"
|
||||||
|
filepazth = filepazth.Replace("\", "\\")
|
||||||
|
For i As Integer = 1 To Grid1.Rows - 1
|
||||||
|
|
||||||
|
HostVersion = Grid1.Cell(i, 1).Text
|
||||||
|
HostName = Grid1.Cell(i, 2).Text
|
||||||
|
FirmwareVersion = Grid1.Cell(i, 3).Text
|
||||||
|
FirmwareName = Grid1.Cell(i, 4).Text
|
||||||
|
DevVersion = Grid1.Cell(i, 5).Text
|
||||||
|
DevName = Grid1.Cell(i, 6).Text
|
||||||
|
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
|
||||||
|
FirmwareEnable = 1
|
||||||
|
Else
|
||||||
|
FirmwareEnable = 0
|
||||||
|
End If
|
||||||
|
|
||||||
|
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
|
||||||
|
'li.Add(rowstr)
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
Next
|
||||||
|
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_firmware_upload_logs` (`DateTime`,`AppType`,`FilePath`,`FileName`,`Ver`,`MD5Val`,`Handler`,`Remark`,`PC_MAC`,`PC_NAME`,`IsValid`,`Luncher_Ver`,`HOTEL_ID`,`ROOM_TYPE_ID`) VALUES ('{UpTime}','{"App_Cfg"}','{filepazth}','{ToolStripLabel2.Text}','{FirmwareVersion}','{md5}','{UserName}','{TextBox2.Text.Trim}','{mac}','{System.Environment.UserName}',1,'C1_L4',0,0)"
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
|
||||||
|
Add_room_type_circuit_powers(colNames.ToString)
|
||||||
|
MsgBox("上传成功")
|
||||||
|
|
||||||
|
Else
|
||||||
|
MsgBox("文件上传失败!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
''上传主机文件函数
|
||||||
|
Private Sub UploadHostFile()
|
||||||
|
''弹出提示询问是否填写完设备有效固件
|
||||||
|
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
|
||||||
|
Dim loadFilePath As String = ToolStripLabel1.Tag
|
||||||
|
Dim hostFilePath As String = $"\Data\Model\RCUModel\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
|
||||||
|
'判断上传者是否为空
|
||||||
|
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||||||
|
MsgBox("请填写上传者")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||||||
|
MsgBox("备注不能为空!请填写备注!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
'判断文件是否已在服务器
|
||||||
|
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||||||
|
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Try
|
||||||
|
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
|
||||||
|
'遍历表格
|
||||||
|
' Dim li As List(Of String) = New List(Of String)()
|
||||||
|
Dim rowstr As String = ""
|
||||||
|
Dim UserName = TextBox1.Text.Trim
|
||||||
|
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||||||
|
Dim FirmwareEnable As Integer = 0
|
||||||
|
Dim HostVersion, FirmwareVersion, DevVersion As String
|
||||||
|
Dim HostName, FirmwareName, DevName As String
|
||||||
|
Dim md5 As String = GetStringMd5(loadFilePath)
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
For i As Integer = 1 To Grid1.Rows - 1
|
||||||
|
|
||||||
|
HostVersion = Grid1.Cell(i, 1).Text
|
||||||
|
HostName = Grid1.Cell(i, 2).Text
|
||||||
|
FirmwareVersion = Grid1.Cell(i, 3).Text
|
||||||
|
FirmwareName = Grid1.Cell(i, 4).Text
|
||||||
|
DevVersion = Grid1.Cell(i, 5).Text
|
||||||
|
DevName = Grid1.Cell(i, 6).Text
|
||||||
|
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
|
||||||
|
FirmwareEnable = 1
|
||||||
|
Else
|
||||||
|
FirmwareEnable = 0
|
||||||
|
End If
|
||||||
|
|
||||||
|
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
|
||||||
|
'li.Add(rowstr)
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
Next
|
||||||
|
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\RCUModel".Replace("\", "\\")}','{ToolStripLabel2.Text}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
|
||||||
|
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
|
||||||
|
Add_room_type_circuit_powers(colNames.ToString)
|
||||||
|
MsgBox("上传成功")
|
||||||
|
|
||||||
|
Else
|
||||||
|
MsgBox("文件上传失败!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Public Function GetMACaddress() As String
|
||||||
|
Dim netAddress As String = ""
|
||||||
|
Dim netName As String = ""
|
||||||
|
Dim searcher As New Management.ManagementObjectSearcher("select * from win32_NetworkAdapterConfiguration")
|
||||||
|
Dim moc2 As Management.ManagementObjectCollection = searcher.Get()
|
||||||
|
For Each mo As Management.ManagementObject In moc2
|
||||||
|
If CBool(mo("IPEnabled")) Then '判断是否是网卡
|
||||||
|
netName = mo.Properties("caption").Value.ToString '网卡名称
|
||||||
|
netAddress = mo.Properties("MACAddress").Value.ToString 'mac地址
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Return netAddress
|
||||||
|
End Function
|
||||||
|
Private Sub UploadDEvFile()
|
||||||
|
''弹出提示询问是否填写完设备有效固件
|
||||||
|
If MsgBox("是否填写完设备有效固件", MsgBoxStyle.YesNo, "提示") = MsgBoxResult.Yes Then
|
||||||
|
Dim loadFilePath As String = ToolStripLabel1.Tag
|
||||||
|
Dim hostFilePath As String = $"\Data\Model\485Model\{ToolStripLabel2.Text}" '485Model \Data\Firmware\
|
||||||
|
'判断上传者是否为空
|
||||||
|
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||||||
|
MsgBox("请填写上传者")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||||||
|
MsgBox("备注不能为空!请填写备注!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
'判断文件是否已在服务器
|
||||||
|
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||||||
|
MsgBox($"服务器已存在文件<{ToolStripLabel2.Text}>")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Try
|
||||||
|
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, loadFilePath) Then
|
||||||
|
'遍历表格
|
||||||
|
' Dim li As List(Of String) = New List(Of String)()
|
||||||
|
Dim rowstr As String = ""
|
||||||
|
Dim UserName = TextBox1.Text.Trim
|
||||||
|
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||||||
|
Dim FirmwareEnable As Integer = 0
|
||||||
|
Dim HostVersion, FirmwareVersion, DevVersion As String
|
||||||
|
Dim HostName, FirmwareName, DevName As String
|
||||||
|
Dim md5 As String = GetStringMd5(loadFilePath)
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
For i As Integer = 1 To Grid1.Rows - 1
|
||||||
|
|
||||||
|
HostVersion = Grid1.Cell(i, 1).Text
|
||||||
|
HostName = Grid1.Cell(i, 2).Text
|
||||||
|
FirmwareVersion = Grid1.Cell(i, 3).Text
|
||||||
|
FirmwareName = Grid1.Cell(i, 4).Text
|
||||||
|
DevVersion = Grid1.Cell(i, 5).Text
|
||||||
|
DevName = Grid1.Cell(i, 6).Text
|
||||||
|
If Grid1.Cell(i, 7).Text.Equals("true") Or Grid1.Cell(i, 7).Text.Equals("1") Then
|
||||||
|
FirmwareEnable = 1
|
||||||
|
Else
|
||||||
|
FirmwareEnable = 0
|
||||||
|
End If
|
||||||
|
|
||||||
|
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_devmode_firmware_info` (`UserName`,`UpTime`,`FirmwareEnable`,`HostVersion`,`HostName`,`FirmwareVersion`,`FirmwareName`,`DevName`,`DevVersion`) VALUES ('{UserName}','{UpTime}',{FirmwareEnable},{HostVersion},'{HostName}',{FirmwareVersion},'{FirmwareName}','{DevName}',{DevVersion} );{vbCrLf}"
|
||||||
|
'li.Add(rowstr)
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
Next
|
||||||
|
rowstr = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\485Model".Replace("\", "\\")}','{ToolStripLabel2.Text}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
|
||||||
|
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
|
||||||
|
Add_room_type_circuit_powers(colNames.ToString)
|
||||||
|
MsgBox("上传成功")
|
||||||
|
|
||||||
|
Else
|
||||||
|
MsgBox("文件上传失败!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Function GetStringMd5(filePath As String) As String
|
||||||
|
Dim dataFile() As Byte = File.ReadAllBytes(filePath)
|
||||||
|
Dim databuff As Byte() = Security.Cryptography.MD5.Create().ComputeHash(dataFile)
|
||||||
|
Dim MD5str As String = BitConverter.ToString(databuff)
|
||||||
|
' Console.WriteLine($"md5-1:{MD5str}")
|
||||||
|
Return MD5str.Replace("-", "").ToUpper
|
||||||
|
End Function
|
||||||
|
Public Function Add_room_type_circuit_powers(insertClunm As String) As Boolean
|
||||||
|
If String.IsNullOrEmpty(insertClunm) Then Return False
|
||||||
|
Dim dt As DataTable
|
||||||
|
Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
|
||||||
|
db.Open()
|
||||||
|
Try
|
||||||
|
db.BeginTransaction()
|
||||||
|
dt = db.ExecuteDataTable(insertClunm)
|
||||||
|
db.CommitTransaction()
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
db.RollbackTransaction()
|
||||||
|
db.Close()
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
db.Close()
|
||||||
|
End Using
|
||||||
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
|
||||||
|
Dim xmlFilePath As String = SelectXmlFile()
|
||||||
|
If String.IsNullOrEmpty(xmlFilePath) Then
|
||||||
|
MsgBox("请选择正确的xml文件")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
If String.IsNullOrEmpty(TextBox1.Text) Then
|
||||||
|
MsgBox("请填写上传者")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
If String.IsNullOrEmpty(TextBox2.Text) Then
|
||||||
|
MsgBox("备注不能为空!请填写备注!")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
Dim strValue As String = xmlFilePath.Substring(xmlFilePath.LastIndexOf("\") + 1)
|
||||||
|
Dim UpTime = Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||||||
|
Dim md5 As String = GetStringMd5(xmlFilePath)
|
||||||
|
Dim UserName = TextBox1.Text.Trim
|
||||||
|
Dim colNames As New StringBuilder
|
||||||
|
Dim hostFilePath As String = $"\Data\Model\BaseModel\{strValue}"
|
||||||
|
'判断文件是否已在服务器
|
||||||
|
If UtsFtp.CreateObject.FtpFileExists(hostFilePath) Then
|
||||||
|
MsgBox($"服务器已存在文件<{strValue}>")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
Try
|
||||||
|
If UtsFtp.CreateObject.FtpUpload2(hostFilePath, xmlFilePath) Then
|
||||||
|
Dim rowstr As String = $"INSERT INTO `blv_rcu_db`.`tbl_model_file_data` (`Available`,`Directory`,`XML_FileName`,`UploadDateTime`,`Author`,`XLM_MD5`,`Remark`,`Brand`,`ModelNo`,`ModelName`,`Description`,`Image`,`DAT_FileName`,`Version`,`DAT_MD5`,`PartNumber`) VALUES (1,'{"\Data\Model\BaseModel".Replace("\", "\\")}','{strValue}','{UpTime}','{UserName}','{md5}','{TextBox2.Text.Trim}','','','','','','','','','');"
|
||||||
|
|
||||||
|
colNames.Append(rowstr)
|
||||||
|
|
||||||
|
Add_room_type_circuit_powers(colNames.ToString)
|
||||||
|
MsgBox("上传成功")
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox($"文件上传失败!{vbCrLf}{ex.Message}")
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button9.Click, Button5.Click, Button4.Click
|
||||||
|
QueryCount()
|
||||||
|
QueryData("tbl_devmode_firmware_info")
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button6.Click, Button3.Click, Button10.Click
|
||||||
|
QueryData2("tbl_model_file_data")
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
38
My Project/Application.Designer.vb
generated
Normal file
38
My Project/Application.Designer.vb
generated
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <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>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
|
||||||
|
' or if you encounter build errors in this file, go to the Project Designer
|
||||||
|
' (go to Project Properties or double-click the My Project node in
|
||||||
|
' Solution Explorer), and make changes on the Application tab.
|
||||||
|
'
|
||||||
|
Partial Friend Class MyApplication
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||||
|
Me.IsSingleInstance = false
|
||||||
|
Me.EnableVisualStyles = true
|
||||||
|
Me.SaveMySettingsOnExit = true
|
||||||
|
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
|
Protected Overrides Sub OnCreateMainForm()
|
||||||
|
Me.MainForm = Global.DevModeFirmwareInfo.Form1
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
11
My Project/Application.myapp
Normal file
11
My Project/Application.myapp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<MySubMain>true</MySubMain>
|
||||||
|
<MainForm>Form1</MainForm>
|
||||||
|
<SingleInstance>false</SingleInstance>
|
||||||
|
<ShutdownMode>0</ShutdownMode>
|
||||||
|
<EnableVisualStyles>true</EnableVisualStyles>
|
||||||
|
<AuthenticationMode>0</AuthenticationMode>
|
||||||
|
<ApplicationType>0</ApplicationType>
|
||||||
|
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||||
|
</MyApplicationData>
|
||||||
35
My Project/AssemblyInfo.vb
Normal file
35
My Project/AssemblyInfo.vb
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
Imports System
|
||||||
|
Imports System.Reflection
|
||||||
|
Imports System.Runtime.InteropServices
|
||||||
|
|
||||||
|
' 有关程序集的一般信息由以下
|
||||||
|
' 控制。更改这些特性值可修改
|
||||||
|
' 与程序集关联的信息。
|
||||||
|
|
||||||
|
'查看程序集特性的值
|
||||||
|
|
||||||
|
<Assembly: AssemblyTitle("DevModeFirmwareInfo")>
|
||||||
|
<Assembly: AssemblyDescription("")>
|
||||||
|
<Assembly: AssemblyCompany("")>
|
||||||
|
<Assembly: AssemblyProduct("DevModeFirmwareInfo")>
|
||||||
|
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
||||||
|
<Assembly: AssemblyTrademark("")>
|
||||||
|
|
||||||
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
|
'如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID
|
||||||
|
<Assembly: Guid("2b3bdf7e-745b-46b5-8548-2668c21a44c9")>
|
||||||
|
|
||||||
|
' 程序集的版本信息由下列四个值组成:
|
||||||
|
'
|
||||||
|
' 主版本
|
||||||
|
' 次版本
|
||||||
|
' 生成号
|
||||||
|
' 修订号
|
||||||
|
'
|
||||||
|
'可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||||
|
'通过使用 "*",如下所示:
|
||||||
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
|
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||||
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
62
My Project/Resources.Designer.vb
generated
Normal file
62
My Project/Resources.Designer.vb
generated
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <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>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
|
||||||
|
Namespace My.Resources
|
||||||
|
|
||||||
|
'This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
|
'class via a tool like ResGen or Visual Studio.
|
||||||
|
'To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
|
'with the /str option, or rebuild your VS project.
|
||||||
|
'''<summary>
|
||||||
|
''' A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
'''</summary>
|
||||||
|
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
||||||
|
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||||
|
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||||
|
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||||
|
Friend Module Resources
|
||||||
|
|
||||||
|
Private resourceMan As Global.System.Resources.ResourceManager
|
||||||
|
|
||||||
|
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Returns the cached ResourceManager instance used by this class.
|
||||||
|
'''</summary>
|
||||||
|
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||||
|
Get
|
||||||
|
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||||
|
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DevModeFirmwareInfo.Resources", GetType(Resources).Assembly)
|
||||||
|
resourceMan = temp
|
||||||
|
End If
|
||||||
|
Return resourceMan
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Overrides the current thread's CurrentUICulture property for all
|
||||||
|
''' resource lookups using this strongly typed resource class.
|
||||||
|
'''</summary>
|
||||||
|
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||||
|
Get
|
||||||
|
Return resourceCulture
|
||||||
|
End Get
|
||||||
|
Set(ByVal value As Global.System.Globalization.CultureInfo)
|
||||||
|
resourceCulture = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
End Module
|
||||||
|
End Namespace
|
||||||
117
My Project/Resources.resx
Normal file
117
My Project/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
<?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>
|
||||||
73
My Project/Settings.Designer.vb
generated
Normal file
73
My Project/Settings.Designer.vb
generated
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <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>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||||
|
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
|
||||||
|
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Partial Friend NotInheritable Class MySettings
|
||||||
|
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||||
|
|
||||||
|
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
|
||||||
|
|
||||||
|
#Region "My.Settings Auto-Save Functionality"
|
||||||
|
#If _MyType = "WindowsForms" Then
|
||||||
|
Private Shared addedHandler As Boolean
|
||||||
|
|
||||||
|
Private Shared addedHandlerLockObject As New Object
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
||||||
|
If My.Application.SaveMySettingsOnExit Then
|
||||||
|
My.Settings.Save()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End If
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
Public Shared ReadOnly Property [Default]() As MySettings
|
||||||
|
Get
|
||||||
|
|
||||||
|
#If _MyType = "WindowsForms" Then
|
||||||
|
If Not addedHandler Then
|
||||||
|
SyncLock addedHandlerLockObject
|
||||||
|
If Not addedHandler Then
|
||||||
|
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||||
|
addedHandler = True
|
||||||
|
End If
|
||||||
|
End SyncLock
|
||||||
|
End If
|
||||||
|
#End If
|
||||||
|
Return defaultInstance
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||||
|
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||||
|
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||||
|
Friend Module MySettingsProperty
|
||||||
|
|
||||||
|
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||||
|
Friend ReadOnly Property Settings() As Global.DevModeFirmwareInfo.My.MySettings
|
||||||
|
Get
|
||||||
|
Return Global.DevModeFirmwareInfo.My.MySettings.Default
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Module
|
||||||
|
End Namespace
|
||||||
7
My Project/Settings.settings
Normal file
7
My Project/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
||||||
BIN
bin/Debug/BouncyCastle.Cryptography.dll
Normal file
BIN
bin/Debug/BouncyCastle.Cryptography.dll
Normal file
Binary file not shown.
30259
bin/Debug/BouncyCastle.Cryptography.xml
Normal file
30259
bin/Debug/BouncyCastle.Cryptography.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/DevModeFirmwareInfo.exe
Normal file
BIN
bin/Debug/DevModeFirmwareInfo.exe
Normal file
Binary file not shown.
30
bin/Debug/DevModeFirmwareInfo.exe.config
Normal file
30
bin/Debug/DevModeFirmwareInfo.exe.config
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
|
</startup>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.1" newVersion="8.0.0.1" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.5" newVersion="8.0.0.5" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
||||||
BIN
bin/Debug/DevModeFirmwareInfo.pdb
Normal file
BIN
bin/Debug/DevModeFirmwareInfo.pdb
Normal file
Binary file not shown.
1296
bin/Debug/DevModeFirmwareInfo.xml
Normal file
1296
bin/Debug/DevModeFirmwareInfo.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/FlexCell.dll
Normal file
BIN
bin/Debug/FlexCell.dll
Normal file
Binary file not shown.
BIN
bin/Debug/FluentFTP.dll
Normal file
BIN
bin/Debug/FluentFTP.dll
Normal file
Binary file not shown.
6755
bin/Debug/FluentFTP.xml
Normal file
6755
bin/Debug/FluentFTP.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/Google.Protobuf.dll
Normal file
BIN
bin/Debug/Google.Protobuf.dll
Normal file
Binary file not shown.
BIN
bin/Debug/Google.Protobuf.pdb
Normal file
BIN
bin/Debug/Google.Protobuf.pdb
Normal file
Binary file not shown.
11896
bin/Debug/Google.Protobuf.xml
Normal file
11896
bin/Debug/Google.Protobuf.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/K4os.Compression.LZ4.Streams.dll
Normal file
BIN
bin/Debug/K4os.Compression.LZ4.Streams.dll
Normal file
Binary file not shown.
2072
bin/Debug/K4os.Compression.LZ4.Streams.xml
Normal file
2072
bin/Debug/K4os.Compression.LZ4.Streams.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/K4os.Compression.LZ4.dll
Normal file
BIN
bin/Debug/K4os.Compression.LZ4.dll
Normal file
Binary file not shown.
1673
bin/Debug/K4os.Compression.LZ4.xml
Normal file
1673
bin/Debug/K4os.Compression.LZ4.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/K4os.Hash.xxHash.dll
Normal file
BIN
bin/Debug/K4os.Hash.xxHash.dll
Normal file
Binary file not shown.
245
bin/Debug/K4os.Hash.xxHash.xml
Normal file
245
bin/Debug/K4os.Hash.xxHash.xml
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>K4os.Hash.xxHash</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:K4os.Hash.xxHash.HashAlgorithmAdapter">
|
||||||
|
<summary>
|
||||||
|
Adapter implementing <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.#ctor(System.Int32,System.Action,System.Action{System.Byte[],System.Int32,System.Int32},System.Func{System.Byte[]})">
|
||||||
|
<summary>
|
||||||
|
Creates new <see cref="T:K4os.Hash.xxHash.HashAlgorithmAdapter"/>.
|
||||||
|
</summary>
|
||||||
|
<param name="hashSize">Hash size (in bytes)</param>
|
||||||
|
<param name="reset">Reset function.</param>
|
||||||
|
<param name="update">Update function.</param>
|
||||||
|
<param name="digest">Digest function.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.HashSize">
|
||||||
|
<inheritdoc />
|
||||||
|
</member>
|
||||||
|
<member name="P:K4os.Hash.xxHash.HashAlgorithmAdapter.Hash">
|
||||||
|
<inheritdoc />
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashCore(System.Byte[],System.Int32,System.Int32)">
|
||||||
|
<inheritdoc />
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.HashFinal">
|
||||||
|
<inheritdoc />
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.HashAlgorithmAdapter.Initialize">
|
||||||
|
<inheritdoc />
|
||||||
|
</member>
|
||||||
|
<member name="T:K4os.Hash.xxHash.XXH">
|
||||||
|
<summary>
|
||||||
|
Base class for both <see cref="T:K4os.Hash.xxHash.XXH32"/> and <see cref="T:K4os.Hash.xxHash.XXH64"/>. Do not use directly.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH.#ctor">
|
||||||
|
<summary>Protected constructor to prevent instantiation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:K4os.Hash.xxHash.XXH32">
|
||||||
|
<summary>
|
||||||
|
xxHash 32-bit.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:K4os.Hash.xxHash.XXH32.State">
|
||||||
|
<summary>Internal state of the algorithm.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:K4os.Hash.xxHash.XXH32.EmptyHash">
|
||||||
|
<summary>Hash of empty buffer.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32)">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Void*,System.Int32,System.UInt32)">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
<param name="seed">Seed.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.DigestOf(System.Byte[],System.Int32,System.Int32)">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="offset">Starting offset.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.#ctor">
|
||||||
|
<summary>Creates xxHash instance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.#ctor(System.UInt32)">
|
||||||
|
<summary>Creates xxHash instance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Reset">
|
||||||
|
<summary>Resets hash calculation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Reset(System.UInt32)">
|
||||||
|
<summary>Resets hash calculation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Void*,System.Int32)">
|
||||||
|
<summary>Updates the hash using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte*,System.Int32)">
|
||||||
|
<summary>Updates the hash using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Update(System.Byte[],System.Int32,System.Int32)">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="offset">Starting offset.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Digest">
|
||||||
|
<summary>Hash so far.</summary>
|
||||||
|
<returns>Hash so far.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.DigestBytes">
|
||||||
|
<summary>Hash so far, as byte array.</summary>
|
||||||
|
<returns>Hash so far.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.AsHashAlgorithm">
|
||||||
|
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
|
||||||
|
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Reset(K4os.Hash.xxHash.XXH32.State@,System.UInt32)">
|
||||||
|
<summary>Resets hash calculation.</summary>
|
||||||
|
<param name="state">Hash state.</param>
|
||||||
|
<param name="seed">Hash seed.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Update(K4os.Hash.xxHash.XXH32.State@,System.Void*,System.Int32)">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="state">Hash state.</param>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Update(K4os.Hash.xxHash.XXH32.State@,System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="state">Hash state.</param>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH32.Digest(K4os.Hash.xxHash.XXH32.State@)">
|
||||||
|
<summary>Hash so far.</summary>
|
||||||
|
<returns>Hash so far.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:K4os.Hash.xxHash.XXH64">
|
||||||
|
<summary>
|
||||||
|
xxHash 64-bit.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:K4os.Hash.xxHash.XXH64.State">
|
||||||
|
<summary>Internal state of the algorithm.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:K4os.Hash.xxHash.XXH64.EmptyHash">
|
||||||
|
<summary>Hash of empty buffer.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32)">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Void*,System.Int32,System.UInt64)">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
<param name="seed">Seed.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.DigestOf(System.Byte[],System.Int32,System.Int32)">
|
||||||
|
<summary>Hash of provided buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="offset">Starting offset.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
<returns>Digest.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.#ctor">
|
||||||
|
<summary>Creates xxHash instance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.#ctor(System.UInt64)">
|
||||||
|
<summary>Creates xxHash instance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Reset">
|
||||||
|
<summary>Resets hash calculation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Reset(System.UInt64)">
|
||||||
|
<summary>Resets hash calculation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Void*,System.Int32)">
|
||||||
|
<summary>Updates the hash using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte*,System.Int32)">
|
||||||
|
<summary>Updates the hash using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Update(System.Byte[],System.Int32,System.Int32)">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="offset">Starting offset.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Digest">
|
||||||
|
<summary>Hash so far.</summary>
|
||||||
|
<returns>Hash so far.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.DigestBytes">
|
||||||
|
<summary>Hash so far, as byte array.</summary>
|
||||||
|
<returns>Hash so far.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.AsHashAlgorithm">
|
||||||
|
<summary>Converts this class to <see cref="T:System.Security.Cryptography.HashAlgorithm"/></summary>
|
||||||
|
<returns><see cref="T:System.Security.Cryptography.HashAlgorithm"/></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Reset(K4os.Hash.xxHash.XXH64.State@,System.UInt64)">
|
||||||
|
<summary>Resets hash calculation.</summary>
|
||||||
|
<param name="state">Hash state.</param>
|
||||||
|
<param name="seed">Hash seed.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Update(K4os.Hash.xxHash.XXH64.State@,System.Void*,System.Int32)">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="state">Hash state.</param>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
<param name="length">Length of buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Update(K4os.Hash.xxHash.XXH64.State@,System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Updates the has using given buffer.</summary>
|
||||||
|
<param name="state">Hash state.</param>
|
||||||
|
<param name="bytes">Buffer.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:K4os.Hash.xxHash.XXH64.Digest(K4os.Hash.xxHash.XXH64.State@)">
|
||||||
|
<summary>Hash so far.</summary>
|
||||||
|
<returns>Hash so far.</returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
BIN
bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
Binary file not shown.
417
bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml
Normal file
417
bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml
Normal file
@@ -0,0 +1,417 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Microsoft.Bcl.AsyncInterfaces</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1">
|
||||||
|
<summary>Provides the core logic for implementing a manual-reset <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource"/> or <see cref="T:System.Threading.Tasks.Sources.IValueTaskSource`1"/>.</summary>
|
||||||
|
<typeparam name="TResult"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation">
|
||||||
|
<summary>
|
||||||
|
The callback to invoke when the operation completes if <see cref="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)"/> was called before the operation completed,
|
||||||
|
or <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared.s_sentinel"/> if the operation completed before a callback was supplied,
|
||||||
|
or null if a callback hasn't yet been provided and the operation hasn't yet completed.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuationState">
|
||||||
|
<summary>State to pass to <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._continuation"/>.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext">
|
||||||
|
<summary><see cref="T:System.Threading.ExecutionContext"/> to flow to the callback, or null if no flowing is required.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._capturedContext">
|
||||||
|
<summary>
|
||||||
|
A "captured" <see cref="T:System.Threading.SynchronizationContext"/> or <see cref="T:System.Threading.Tasks.TaskScheduler"/> with which to invoke the callback,
|
||||||
|
or null if no special context is required.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._completed">
|
||||||
|
<summary>Whether the current operation has completed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._result">
|
||||||
|
<summary>The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._error">
|
||||||
|
<summary>The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._version">
|
||||||
|
<summary>The current version of this value, used to help prevent misuse.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.RunContinuationsAsynchronously">
|
||||||
|
<summary>Gets or sets whether to force continuations to run asynchronously.</summary>
|
||||||
|
<remarks>Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Reset">
|
||||||
|
<summary>Resets to prepare for the next operation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetResult(`0)">
|
||||||
|
<summary>Completes with a successful result.</summary>
|
||||||
|
<param name="result">The result.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SetException(System.Exception)">
|
||||||
|
<summary>Complets with an error.</summary>
|
||||||
|
<param name="error"></param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.Version">
|
||||||
|
<summary>Gets the operation version.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetStatus(System.Int16)">
|
||||||
|
<summary>Gets the status of the operation.</summary>
|
||||||
|
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.GetResult(System.Int16)">
|
||||||
|
<summary>Gets the result of the operation.</summary>
|
||||||
|
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.OnCompleted(System.Action{System.Object},System.Object,System.Int16,System.Threading.Tasks.Sources.ValueTaskSourceOnCompletedFlags)">
|
||||||
|
<summary>Schedules the continuation action for this operation.</summary>
|
||||||
|
<param name="continuation">The continuation to invoke when the operation has completed.</param>
|
||||||
|
<param name="state">The state object to pass to <paramref name="continuation"/> when it's invoked.</param>
|
||||||
|
<param name="token">Opaque value that was provided to the <see cref="T:System.Threading.Tasks.ValueTask"/>'s constructor.</param>
|
||||||
|
<param name="flags">The flags describing the behavior of the continuation.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.ValidateToken(System.Int16)">
|
||||||
|
<summary>Ensures that the specified token matches the current version.</summary>
|
||||||
|
<param name="token">The token supplied by <see cref="T:System.Threading.Tasks.ValueTask"/>.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.SignalCompletion">
|
||||||
|
<summary>Signals that the operation has completed. Invoked after the result or error has been set.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1.InvokeContinuation">
|
||||||
|
<summary>
|
||||||
|
Invokes the continuation with the appropriate captured context / scheduler.
|
||||||
|
This assumes that if <see cref="F:System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1._executionContext"/> is not null we're already
|
||||||
|
running within that <see cref="T:System.Threading.ExecutionContext"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Tasks.TaskAsyncEnumerableExtensions">
|
||||||
|
<summary>Provides a set of static methods for configuring <see cref="T:System.Threading.Tasks.Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait(System.IAsyncDisposable,System.Boolean)">
|
||||||
|
<summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
|
||||||
|
<param name="source">The source async disposable.</param>
|
||||||
|
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||||
|
<returns>The configured async disposable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.ConfigureAwait``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Boolean)">
|
||||||
|
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||||
|
<typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||||
|
<param name="source">The source enumerable being iterated.</param>
|
||||||
|
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Tasks.TaskAsyncEnumerableExtensions.WithCancellation``1(System.Collections.Generic.IAsyncEnumerable{``0},System.Threading.CancellationToken)">
|
||||||
|
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
|
||||||
|
<typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||||
|
<param name="source">The source enumerable being iterated.</param>
|
||||||
|
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder">
|
||||||
|
<summary>Represents a builder for asynchronous iterators.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Create">
|
||||||
|
<summary>Creates an instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder"/> struct.</summary>
|
||||||
|
<returns>The initialized instance.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.MoveNext``1(``0@)">
|
||||||
|
<summary>Invokes <see cref="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext"/> on the state machine while guarding the <see cref="T:System.Threading.ExecutionContext"/>.</summary>
|
||||||
|
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||||
|
<param name="stateMachine">The state machine instance, passed by reference.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
|
||||||
|
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
|
||||||
|
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
|
||||||
|
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||||
|
<param name="awaiter">The awaiter.</param>
|
||||||
|
<param name="stateMachine">The state machine.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
|
||||||
|
<summary>Schedules the state machine to proceed to the next action when the specified awaiter completes.</summary>
|
||||||
|
<typeparam name="TAwaiter">The type of the awaiter.</typeparam>
|
||||||
|
<typeparam name="TStateMachine">The type of the state machine.</typeparam>
|
||||||
|
<param name="awaiter">The awaiter.</param>
|
||||||
|
<param name="stateMachine">The state machine.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.Complete">
|
||||||
|
<summary>Marks iteration as being completed, whether successfully or otherwise.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.AsyncIteratorMethodBuilder.ObjectIdForDebugger">
|
||||||
|
<summary>Gets an object that may be used to uniquely identify this builder to the debugger.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute">
|
||||||
|
<summary>Indicates whether a method is an asynchronous iterator.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute.#ctor(System.Type)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.AsyncIteratorStateMachineAttribute"/> class.</summary>
|
||||||
|
<param name="stateMachineType">The type object for the underlying state machine type that's used to implement a state machine method.</param>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable">
|
||||||
|
<summary>Provides a type that can be used to configure how awaits on an <see cref="T:System.IAsyncDisposable"/> are performed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredAsyncDisposable.DisposeAsync">
|
||||||
|
<summary>Asynchronously releases the unmanaged resources used by the <see cref="T:System.Runtime.CompilerServices.ConfiguredAsyncDisposable" />.</summary>
|
||||||
|
<returns>A task that represents the asynchronous dispose operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1">
|
||||||
|
<summary>Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)">
|
||||||
|
<summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||||
|
<param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
<remarks>This will replace any previous value set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.ConfigureAwait(System.Boolean)"/> for this iteration.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)">
|
||||||
|
<summary>Sets the <see cref="T:System.Threading.CancellationToken"/> to be passed to <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)"/> when iterating.</summary>
|
||||||
|
<param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to use.</param>
|
||||||
|
<returns>The configured enumerable.</returns>
|
||||||
|
<remarks>This will replace any previous <see cref="T:System.Threading.CancellationToken"/> set by <see cref="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.WithCancellation(System.Threading.CancellationToken)"/> for this iteration.</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator">
|
||||||
|
<summary>Returns an enumerator that iterates asynchronously through collections that enables cancelable iteration and configured awaits.</summary>
|
||||||
|
<returns>An enumerator for the <see cref="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator">
|
||||||
|
<summary>Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync">
|
||||||
|
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
|
||||||
|
<returns>
|
||||||
|
A <see cref="T:System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1"/> that will complete with a result of <c>true</c>
|
||||||
|
if the enumerator was successfully advanced to the next element, or <c>false</c> if the enumerator has
|
||||||
|
passed the end of the collection.
|
||||||
|
</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.Current">
|
||||||
|
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.DisposeAsync">
|
||||||
|
<summary>
|
||||||
|
Performs application-defined tasks associated with freeing, releasing, or
|
||||||
|
resetting unmanaged resources asynchronously.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute">
|
||||||
|
<summary>Allows users of async-enumerable methods to mark the parameter that should receive the cancellation token value from <see cref="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)" />.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.EnumeratorCancellationAttribute.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.EnumeratorCancellationAttribute" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.InteropServices.LibraryImportAttribute">
|
||||||
|
<summary>
|
||||||
|
Attribute used to indicate a source generator should create a function for marshalling
|
||||||
|
arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
This attribute is meaningless if the source generator associated with it is not enabled.
|
||||||
|
The current built-in source generator only supports C# and only supplies an implementation when
|
||||||
|
applied to static, partial, non-generic methods.
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.InteropServices.LibraryImportAttribute.#ctor(System.String)">
|
||||||
|
<summary>
|
||||||
|
Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.LibraryImportAttribute"/>.
|
||||||
|
</summary>
|
||||||
|
<param name="libraryName">Name of the library containing the import.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.LibraryName">
|
||||||
|
<summary>
|
||||||
|
Gets the name of the library containing the import.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.EntryPoint">
|
||||||
|
<summary>
|
||||||
|
Gets or sets the name of the entry point to be called.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling">
|
||||||
|
<summary>
|
||||||
|
Gets or sets how to marshal string arguments to the method.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
If this field is set to a value other than <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />,
|
||||||
|
<see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType" /> must not be specified.
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType">
|
||||||
|
<summary>
|
||||||
|
Gets or sets the <see cref="T:System.Type"/> used to control how string arguments to the method are marshalled.
|
||||||
|
</summary>
|
||||||
|
<remarks>
|
||||||
|
If this field is specified, <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshalling" /> must not be specified
|
||||||
|
or must be set to <see cref="F:System.Runtime.InteropServices.StringMarshalling.Custom" />.
|
||||||
|
</remarks>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Runtime.InteropServices.LibraryImportAttribute.SetLastError">
|
||||||
|
<summary>
|
||||||
|
Gets or sets whether the callee sets an error (SetLastError on Windows or errno
|
||||||
|
on other platforms) before returning from the attributed method.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Runtime.InteropServices.StringMarshalling">
|
||||||
|
<summary>
|
||||||
|
Specifies how strings should be marshalled for generated p/invokes
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Runtime.InteropServices.StringMarshalling.Custom">
|
||||||
|
<summary>
|
||||||
|
Indicates the user is suppling a specific marshaller in <see cref="P:System.Runtime.InteropServices.LibraryImportAttribute.StringMarshallingCustomType"/>.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf8">
|
||||||
|
<summary>
|
||||||
|
Use the platform-provided UTF-8 marshaller.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Runtime.InteropServices.StringMarshalling.Utf16">
|
||||||
|
<summary>
|
||||||
|
Use the platform-provided UTF-16 marshaller.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Collections.Generic.IAsyncEnumerable`1">
|
||||||
|
<summary>Exposes an enumerator that provides asynchronous iteration over values of a specified type.</summary>
|
||||||
|
<typeparam name="T">The type of values to enumerate.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator(System.Threading.CancellationToken)">
|
||||||
|
<summary>Returns an enumerator that iterates asynchronously through the collection.</summary>
|
||||||
|
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that may be used to cancel the asynchronous iteration.</param>
|
||||||
|
<returns>An enumerator that can be used to iterate asynchronously through the collection.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Collections.Generic.IAsyncEnumerator`1">
|
||||||
|
<summary>Supports a simple asynchronous iteration over a generic collection.</summary>
|
||||||
|
<typeparam name="T">The type of objects to enumerate.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Collections.Generic.IAsyncEnumerator`1.MoveNextAsync">
|
||||||
|
<summary>Advances the enumerator asynchronously to the next element of the collection.</summary>
|
||||||
|
<returns>
|
||||||
|
A <see cref="T:System.Threading.Tasks.ValueTask`1"/> that will complete with a result of <c>true</c> if the enumerator
|
||||||
|
was successfully advanced to the next element, or <c>false</c> if the enumerator has passed the end
|
||||||
|
of the collection.
|
||||||
|
</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Collections.Generic.IAsyncEnumerator`1.Current">
|
||||||
|
<summary>Gets the element in the collection at the current position of the enumerator.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IAsyncDisposable">
|
||||||
|
<summary>Provides a mechanism for releasing unmanaged resources asynchronously.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IAsyncDisposable.DisposeAsync">
|
||||||
|
<summary>
|
||||||
|
Performs application-defined tasks associated with freeing, releasing, or
|
||||||
|
resetting unmanaged resources asynchronously.
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
|
||||||
|
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
|
||||||
|
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
|
||||||
|
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
|
||||||
|
<summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
|
||||||
|
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter may be null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
|
||||||
|
<summary>Gets the return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
|
||||||
|
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
|
||||||
|
<summary>Gets the return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
|
||||||
|
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
|
||||||
|
<summary>Initializes the attribute with the associated parameter name.</summary>
|
||||||
|
<param name="parameterName">
|
||||||
|
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
|
||||||
|
<summary>Gets the associated parameter name.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
|
||||||
|
<summary>Applied to a method that will never return under any circumstance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
|
||||||
|
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
|
||||||
|
<summary>Initializes the attribute with the specified parameter value.</summary>
|
||||||
|
<param name="parameterValue">
|
||||||
|
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
|
||||||
|
the associated parameter matches this value.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
|
||||||
|
<summary>Gets the condition parameter value.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
|
||||||
|
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
|
||||||
|
<summary>Initializes the attribute with a field or property member.</summary>
|
||||||
|
<param name="member">
|
||||||
|
The field or property member that is promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
|
||||||
|
<summary>Initializes the attribute with the list of field and property members.</summary>
|
||||||
|
<param name="members">
|
||||||
|
The list of field and property members that are promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
|
||||||
|
<summary>Gets field or property member names.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
|
||||||
|
<summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||||
|
</param>
|
||||||
|
<param name="member">
|
||||||
|
The field or property member that is promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
|
||||||
|
<summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
|
||||||
|
<param name="returnValue">
|
||||||
|
The return value condition. If the method returns this value, the associated parameter will not be null.
|
||||||
|
</param>
|
||||||
|
<param name="members">
|
||||||
|
The list of field and property members that are promised to be not-null.
|
||||||
|
</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
|
||||||
|
<summary>Gets the return value condition.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
|
||||||
|
<summary>Gets field or property member names.</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/Microsoft.Bcl.HashCode.dll
Normal file
BIN
bin/Debug/Microsoft.Bcl.HashCode.dll
Normal file
Binary file not shown.
34
bin/Debug/Microsoft.Bcl.HashCode.xml
Normal file
34
bin/Debug/Microsoft.Bcl.HashCode.xml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>Microsoft.Bcl.HashCode</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="M:System.Numerics.BitOperations.RotateLeft(System.UInt32,System.Int32)">
|
||||||
|
<summary>
|
||||||
|
Rotates the specified value left by the specified number of bits.
|
||||||
|
Similar in behavior to the x86 instruction ROL.
|
||||||
|
</summary>
|
||||||
|
<param name="value">The value to rotate.</param>
|
||||||
|
<param name="offset">The number of bits to rotate by.
|
||||||
|
Any value outside the range [0..31] is treated as congruent mod 32.</param>
|
||||||
|
<returns>The rotated value.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Numerics.BitOperations.RotateLeft(System.UInt64,System.Int32)">
|
||||||
|
<summary>
|
||||||
|
Rotates the specified value left by the specified number of bits.
|
||||||
|
Similar in behavior to the x86 instruction ROL.
|
||||||
|
</summary>
|
||||||
|
<param name="value">The value to rotate.</param>
|
||||||
|
<param name="offset">The number of bits to rotate by.
|
||||||
|
Any value outside the range [0..63] is treated as congruent mod 64.</param>
|
||||||
|
<returns>The rotated value.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.SR.HashCode_EqualityNotSupported">
|
||||||
|
<summary>HashCode is a mutable struct and should not be compared with other HashCodes.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.SR.HashCode_HashCodeNotSupported">
|
||||||
|
<summary>HashCode is a mutable struct and should not be compared with other HashCodes. Use ToHashCode to retrieve the computed hash code.</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
Binary file not shown.
2515
bin/Debug/Microsoft.Extensions.DependencyInjection.Abstractions.xml
Normal file
2515
bin/Debug/Microsoft.Extensions.DependencyInjection.Abstractions.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/Microsoft.Extensions.Logging.Abstractions.dll
Normal file
BIN
bin/Debug/Microsoft.Extensions.Logging.Abstractions.dll
Normal file
Binary file not shown.
1350
bin/Debug/Microsoft.Extensions.Logging.Abstractions.xml
Normal file
1350
bin/Debug/Microsoft.Extensions.Logging.Abstractions.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/MySql.Data.dll
Normal file
BIN
bin/Debug/MySql.Data.dll
Normal file
Binary file not shown.
18618
bin/Debug/MySql.Data.xml
Normal file
18618
bin/Debug/MySql.Data.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/Npgsql.dll
Normal file
BIN
bin/Debug/Npgsql.dll
Normal file
Binary file not shown.
11587
bin/Debug/Npgsql.xml
Normal file
11587
bin/Debug/Npgsql.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/System.Buffers.dll
Normal file
BIN
bin/Debug/System.Buffers.dll
Normal file
Binary file not shown.
38
bin/Debug/System.Buffers.xml
Normal file
38
bin/Debug/System.Buffers.xml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Buffers</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Buffers.ArrayPool`1">
|
||||||
|
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
|
||||||
|
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Buffers.ArrayPool`1.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Buffers.ArrayPool`1.Create">
|
||||||
|
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
|
||||||
|
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
|
||||||
|
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
|
||||||
|
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
|
||||||
|
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
|
||||||
|
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
|
||||||
|
<summary>Retrieves a buffer that is at least the requested length.</summary>
|
||||||
|
<param name="minimumLength">The minimum length of the array.</param>
|
||||||
|
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
|
||||||
|
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
|
||||||
|
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
|
||||||
|
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&#39;s contents are left unchanged.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Buffers.ArrayPool`1.Shared">
|
||||||
|
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
|
||||||
|
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/System.Collections.Immutable.dll
Normal file
BIN
bin/Debug/System.Collections.Immutable.dll
Normal file
Binary file not shown.
6100
bin/Debug/System.Collections.Immutable.xml
Normal file
6100
bin/Debug/System.Collections.Immutable.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/System.Configuration.ConfigurationManager.dll
Normal file
BIN
bin/Debug/System.Configuration.ConfigurationManager.dll
Normal file
Binary file not shown.
5265
bin/Debug/System.Configuration.ConfigurationManager.xml
Normal file
5265
bin/Debug/System.Configuration.ConfigurationManager.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/System.Data.SQLite.dll
Normal file
BIN
bin/Debug/System.Data.SQLite.dll
Normal file
Binary file not shown.
BIN
bin/Debug/System.Diagnostics.DiagnosticSource.dll
Normal file
BIN
bin/Debug/System.Diagnostics.DiagnosticSource.dll
Normal file
Binary file not shown.
1886
bin/Debug/System.Diagnostics.DiagnosticSource.xml
Normal file
1886
bin/Debug/System.Diagnostics.DiagnosticSource.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/System.IO.Pipelines.dll
Normal file
BIN
bin/Debug/System.IO.Pipelines.dll
Normal file
Binary file not shown.
341
bin/Debug/System.IO.Pipelines.xml
Normal file
341
bin/Debug/System.IO.Pipelines.xml
Normal file
@@ -0,0 +1,341 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.IO.Pipelines</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.IO.Pipelines.FlushResult">
|
||||||
|
<summary>Result returned by <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> call.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.FlushResult.#ctor(System.Boolean,System.Boolean)">
|
||||||
|
<summary>Initializes a new instance of <see cref="T:System.IO.Pipelines.FlushResult" /> struct setting the <see cref="P:System.IO.Pipelines.FlushResult.IsCanceled" /> and <see cref="P:System.IO.Pipelines.FlushResult.IsCompleted" /> flags.</summary>
|
||||||
|
<param name="isCanceled">
|
||||||
|
<see langword="true" /> to indicate the current <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation that produced this <see cref="T:System.IO.Pipelines.FlushResult" /> was canceled by <see cref="M:System.IO.Pipelines.PipeWriter.CancelPendingFlush" />; otherwise, <see langword="false" />.</param>
|
||||||
|
<param name="isCompleted">
|
||||||
|
<see langword="true" /> to indicate the reader is no longer reading data written to the <see cref="T:System.IO.Pipelines.PipeWriter" />.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.FlushResult.IsCanceled">
|
||||||
|
<summary>Gets a value that indicates whether the current <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation was canceled.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the current <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation was canceled; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.FlushResult.IsCompleted">
|
||||||
|
<summary>Gets a value that indicates the reader is no longer reading data written to the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the reader is no longer reading data written to the <see cref="T:System.IO.Pipelines.PipeWriter" />; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.IDuplexPipe">
|
||||||
|
<summary>Defines a class that provides a duplex pipe from which data can be read from and written to.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.IDuplexPipe.Input">
|
||||||
|
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeReader" /> half of the duplex pipe.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.IDuplexPipe.Output">
|
||||||
|
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeWriter" /> half of the duplex pipe.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.Pipe">
|
||||||
|
<summary>The default <see cref="T:System.IO.Pipelines.PipeWriter" /> and <see cref="T:System.IO.Pipelines.PipeReader" /> implementation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.Pipe.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.Pipe" /> class using <see cref="P:System.IO.Pipelines.PipeOptions.Default" /> as options.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.Pipe.#ctor(System.IO.Pipelines.PipeOptions)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.Pipe" /> class with the specified options.</summary>
|
||||||
|
<param name="options">The set of options for this pipe.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.Pipe.Reset">
|
||||||
|
<summary>Resets the pipe.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.Pipe.Reader">
|
||||||
|
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeReader" /> for this pipe.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeReader" /> instance for this pipe.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.Pipe.Writer">
|
||||||
|
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeWriter" /> for this pipe.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeWriter" /> instance for this pipe.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.PipeOptions">
|
||||||
|
<summary>Represents a set of <see cref="T:System.IO.Pipelines.Pipe" /> options.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeOptions.#ctor(System.Buffers.MemoryPool{System.Byte},System.IO.Pipelines.PipeScheduler,System.IO.Pipelines.PipeScheduler,System.Int64,System.Int64,System.Int32,System.Boolean)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.PipeOptions" /> class with the specified parameters.</summary>
|
||||||
|
<param name="pool">The pool of memory blocks to be used for buffer management.</param>
|
||||||
|
<param name="readerScheduler">The <see cref="T:System.IO.Pipelines.PipeScheduler" /> to be used to execute <see cref="T:System.IO.Pipelines.PipeReader" /> callbacks and async continuations.</param>
|
||||||
|
<param name="writerScheduler">The <see cref="T:System.IO.Pipelines.PipeScheduler" /> used to execute <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and async continuations.</param>
|
||||||
|
<param name="pauseWriterThreshold">The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> before <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> starts blocking. A value of zero prevents <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> from ever blocking, effectively making the number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> unlimited.</param>
|
||||||
|
<param name="resumeWriterThreshold">The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> stops blocking.</param>
|
||||||
|
<param name="minimumSegmentSize">The minimum size of the segment requested from <paramref name="pool" />.</param>
|
||||||
|
<param name="useSynchronizationContext">
|
||||||
|
<see langword="true" /> if asynchronous continuations should be executed on the <see cref="T:System.Threading.SynchronizationContext" /> they were captured on; <see langword="false" /> otherwise. This takes precedence over the schedulers specified in <see cref="P:System.IO.Pipelines.PipeOptions.ReaderScheduler" /> and <see cref="P:System.IO.Pipelines.PipeOptions.WriterScheduler" />.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.Default">
|
||||||
|
<summary>Gets the default instance of <see cref="T:System.IO.Pipelines.PipeOptions" />.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeOptions" /> object initialized with default parameters.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.MinimumSegmentSize">
|
||||||
|
<summary>Gets the minimum size of the segment requested from the <see cref="P:System.IO.Pipelines.PipeOptions.Pool" />.</summary>
|
||||||
|
<returns>The minimum size of the segment requested from the <see cref="P:System.IO.Pipelines.PipeOptions.Pool" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.PauseWriterThreshold">
|
||||||
|
<summary>Gets the number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> starts blocking.</summary>
|
||||||
|
<returns>The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> starts blocking.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.Pool">
|
||||||
|
<summary>Gets the <see cref="T:System.Buffers.MemoryPool`1" /> object used for buffer management.</summary>
|
||||||
|
<returns>A pool of memory blocks used for buffer management.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.ReaderScheduler">
|
||||||
|
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeScheduler" /> used to execute <see cref="T:System.IO.Pipelines.PipeReader" /> callbacks and async continuations.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> that is used to execute <see cref="T:System.IO.Pipelines.PipeReader" /> callbacks and async continuations.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.ResumeWriterThreshold">
|
||||||
|
<summary>Gets the number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> stops blocking.</summary>
|
||||||
|
<returns>The number of bytes in the <see cref="T:System.IO.Pipelines.Pipe" /> when <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> stops blocking.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.UseSynchronizationContext">
|
||||||
|
<summary>Gets a value that determines if asynchronous callbacks and continuations should be executed on the <see cref="T:System.Threading.SynchronizationContext" /> they were captured on. This takes precedence over the schedulers specified in <see cref="P:System.IO.Pipelines.PipeOptions.ReaderScheduler" /> and <see cref="P:System.IO.Pipelines.PipeOptions.WriterScheduler" />.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if asynchronous callbacks and continuations should be executed on the <see cref="T:System.Threading.SynchronizationContext" /> they were captured on; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeOptions.WriterScheduler">
|
||||||
|
<summary>Gets the <see cref="T:System.IO.Pipelines.PipeScheduler" /> used to execute <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and async continuations.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> object used to execute <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and async continuations.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.PipeReader">
|
||||||
|
<summary>Defines a class that provides access to a read side of pipe.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.IO.Pipelines.PipeReader" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.AdvanceTo(System.SequencePosition)">
|
||||||
|
<summary>Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.</summary>
|
||||||
|
<param name="consumed">Marks the extent of the data that has been successfully processed.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.AdvanceTo(System.SequencePosition,System.SequencePosition)">
|
||||||
|
<summary>Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.</summary>
|
||||||
|
<param name="consumed">Marks the extent of the data that has been successfully processed.</param>
|
||||||
|
<param name="examined">Marks the extent of the data that has been read and examined.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.AsStream(System.Boolean)">
|
||||||
|
<summary>Returns a <see cref="T:System.IO.Stream" /> representation of the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||||
|
<param name="leaveOpen">An optional flag that indicates whether disposing the returned <see cref="T:System.IO.Stream" /> leaves <see cref="T:System.IO.Pipelines.PipeReader" /> open (<see langword="true" />) or completes <see cref="T:System.IO.Pipelines.PipeReader" /> (<see langword="false" />).</param>
|
||||||
|
<returns>A stream that represents the <see cref="T:System.IO.Pipelines.PipeReader" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.CancelPendingRead">
|
||||||
|
<summary>Cancels to currently pending or if none is pending next call to <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" />, without completing the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.Complete(System.Exception)">
|
||||||
|
<summary>Signals to the producer that the consumer is done reading.</summary>
|
||||||
|
<param name="exception">Optional <see cref="T:System.Exception" /> indicating a failure that's causing the pipeline to complete.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.CompleteAsync(System.Exception)">
|
||||||
|
<summary>Marks the current pipe reader instance as being complete, meaning no more data will be read from it.</summary>
|
||||||
|
<param name="exception">An optional exception that indicates the failure that caused the reader to complete.</param>
|
||||||
|
<returns>A value task that represents the asynchronous complete operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.CopyToAsync(System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously reads the bytes from the <see cref="T:System.IO.Pipelines.PipeReader" /> and writes them to the specified <see cref="T:System.IO.Pipelines.PipeWriter" />, using a specified buffer size and cancellation token.</summary>
|
||||||
|
<param name="destination">The pipe writer to which the contents of the current stream will be copied.</param>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||||
|
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.CopyToAsync(System.IO.Stream,System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously reads the bytes from the <see cref="T:System.IO.Pipelines.PipeReader" /> and writes them to the specified stream, using a specified cancellation token.</summary>
|
||||||
|
<param name="destination">The stream to which the contents of the current stream will be copied.</param>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||||
|
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.Create(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions)">
|
||||||
|
<summary>Creates a <see cref="T:System.IO.Pipelines.PipeReader" /> wrapping the specified <see cref="T:System.IO.Stream" />.</summary>
|
||||||
|
<param name="stream">The stream that the pipe reader will wrap.</param>
|
||||||
|
<param name="readerOptions">The options to configure the pipe reader.</param>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeReader" /> that wraps the <see cref="T:System.IO.Stream" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.OnWriterCompleted(System.Action{System.Exception,System.Object},System.Object)">
|
||||||
|
<summary>Registers a callback that executes when the <see cref="T:System.IO.Pipelines.PipeWriter" /> side of the pipe is completed.</summary>
|
||||||
|
<param name="callback">The callback to register.</param>
|
||||||
|
<param name="state">The state object to pass to <paramref name="callback" /> when it's invoked.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously reads a sequence of bytes from the current <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see langword="default" />.</param>
|
||||||
|
<returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> representing the asynchronous read operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeReader.TryRead(System.IO.Pipelines.ReadResult@)">
|
||||||
|
<summary>Attempts to synchronously read data the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||||
|
<param name="result">When this method returns <see langword="true" />, this value is set to a <see cref="T:System.IO.Pipelines.ReadResult" /> instance that represents the result of the read call; otherwise, this value is set to <see langword="default" />.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if data was available, or if the call was canceled or the writer was completed; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.PipeScheduler">
|
||||||
|
<summary>Abstraction for running <see cref="T:System.IO.Pipelines.PipeReader" /> and <see cref="T:System.IO.Pipelines.PipeWriter" /> callbacks and continuations.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeScheduler.#ctor">
|
||||||
|
<summary>Initializes new a <see cref="T:System.IO.Pipelines.PipeScheduler" /> instance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeScheduler.Schedule(System.Action{System.Object},System.Object)">
|
||||||
|
<summary>Requests <paramref name="action" /> to be run on scheduler with <paramref name="state" /> being passed in.</summary>
|
||||||
|
<param name="action">The single-parameter action delegate to schedule.</param>
|
||||||
|
<param name="state">The parameter to pass to the <paramref name="action" /> delegate.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeScheduler.Inline">
|
||||||
|
<summary>The <see cref="T:System.IO.Pipelines.PipeScheduler" /> implementation that runs callbacks inline.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> instance that runs callbacks inline.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.PipeScheduler.ThreadPool">
|
||||||
|
<summary>The <see cref="T:System.IO.Pipelines.PipeScheduler" /> implementation that queues callbacks to the thread pool.</summary>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeScheduler" /> instance that queues callbacks to the thread pool.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.PipeWriter">
|
||||||
|
<summary>Defines a class that provides a pipeline to which data can be written.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.#ctor">
|
||||||
|
<summary>Initializes a new instance of the class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.Advance(System.Int32)">
|
||||||
|
<summary>Notifies the <see cref="T:System.IO.Pipelines.PipeWriter" /> that <paramref name="bytes" /> bytes were written to the output <see cref="T:System.Span`1" /> or <see cref="T:System.Memory`1" />. You must request a new buffer after calling <see cref="M:System.IO.Pipelines.PipeWriter.Advance(System.Int32)" /> to continue writing more data; you cannot write to a previously acquired buffer.</summary>
|
||||||
|
<param name="bytes">The number of bytes written to the <see cref="T:System.Span`1" /> or <see cref="T:System.Memory`1" />.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.AsStream(System.Boolean)">
|
||||||
|
<summary>Returns a <see cref="T:System.IO.Stream" /> representation of the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||||
|
<param name="leaveOpen">An optional flag that indicates whether disposing the returned <see cref="T:System.IO.Stream" /> leaves <see cref="T:System.IO.Pipelines.PipeReader" /> open (<see langword="true" />) or completes <see cref="T:System.IO.Pipelines.PipeReader" /> (<see langword="false" />).</param>
|
||||||
|
<returns>A stream that represents the <see cref="T:System.IO.Pipelines.PipeWriter" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.CancelPendingFlush">
|
||||||
|
<summary>Cancels the pending <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation. If there is none, cancels next <see cref="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)" /> operation, without completing the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.Complete(System.Exception)">
|
||||||
|
<summary>Marks the <see cref="T:System.IO.Pipelines.PipeWriter" /> as being complete, meaning no more items will be written to it.</summary>
|
||||||
|
<param name="exception">Optional <see cref="T:System.Exception" /> indicating a failure that's causing the pipeline to complete.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.CompleteAsync(System.Exception)">
|
||||||
|
<summary>Marks the current pipe writer instance as being complete, meaning no more data will be written to it.</summary>
|
||||||
|
<param name="exception">An optional exception that indicates the failure that caused the pipeline to complete.</param>
|
||||||
|
<returns>A value task that represents the asynchronous complete operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.CopyFromAsync(System.IO.Stream,System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously reads the bytes from the specified stream and writes them to the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||||
|
<param name="source">The stream from which the contents will be copied.</param>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||||
|
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.Create(System.IO.Stream,System.IO.Pipelines.StreamPipeWriterOptions)">
|
||||||
|
<summary>Creates a <see cref="T:System.IO.Pipelines.PipeWriter" /> wrapping the specified <see cref="T:System.IO.Stream" />.</summary>
|
||||||
|
<param name="stream">The stream that the pipe writer will wrap.</param>
|
||||||
|
<param name="writerOptions">The options to configure the pipe writer.</param>
|
||||||
|
<returns>A <see cref="T:System.IO.Pipelines.PipeWriter" /> that wraps the <see cref="T:System.IO.Stream" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.FlushAsync(System.Threading.CancellationToken)">
|
||||||
|
<summary>Makes bytes written available to <see cref="T:System.IO.Pipelines.PipeReader" /> and runs <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> continuation.</summary>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||||
|
<returns>A task that represents and wraps the asynchronous flush operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.GetMemory(System.Int32)">
|
||||||
|
<summary>Returns a <see cref="T:System.Memory`1" /> to write to that is at least the requested size, as specified by the <paramref name="sizeHint" /> parameter.</summary>
|
||||||
|
<param name="sizeHint">The minimum length of the returned <see cref="T:System.Memory`1" />. If 0, a non-empty memory buffer of arbitrary size is returned.</param>
|
||||||
|
<exception cref="T:System.OutOfMemoryException">The requested buffer size is not available.</exception>
|
||||||
|
<returns>A memory buffer of at least <paramref name="sizeHint" /> bytes. If <paramref name="sizeHint" /> is 0, returns a non-empty buffer of arbitrary size.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.GetSpan(System.Int32)">
|
||||||
|
<summary>Returns a <see cref="T:System.Span`1" /> to write to that is at least the requested size, as specified by the <paramref name="sizeHint" /> parameter.</summary>
|
||||||
|
<param name="sizeHint">The minimum length of the returned <see cref="T:System.Span`1" />. If 0, a non-empty buffer of arbitrary size is returned.</param>
|
||||||
|
<exception cref="T:System.OutOfMemoryException">The requested buffer size is not available.</exception>
|
||||||
|
<returns>A buffer of at least <paramref name="sizeHint" /> bytes. If <paramref name="sizeHint" /> is 0, returns a non-empty buffer of arbitrary size.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.OnReaderCompleted(System.Action{System.Exception,System.Object},System.Object)">
|
||||||
|
<summary>Registers a callback that executes when the <see cref="T:System.IO.Pipelines.PipeReader" /> side of the pipe is completed.</summary>
|
||||||
|
<param name="callback">The callback to register.</param>
|
||||||
|
<param name="state">The state object to pass to <paramref name="callback" /> when it's invoked.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.PipeWriter.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
|
||||||
|
<summary>Writes the specified byte memory range to the pipe and makes data accessible to the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||||
|
<param name="source">The read-only byte memory region to write.</param>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||||
|
<returns>A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.ReadResult">
|
||||||
|
<summary>Represents the result of a <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> call.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.ReadResult.#ctor(System.Buffers.ReadOnlySequence{System.Byte},System.Boolean,System.Boolean)">
|
||||||
|
<summary>Creates a new instance of <see cref="T:System.IO.Pipelines.ReadResult" /> setting <see cref="P:System.IO.Pipelines.ReadResult.IsCanceled" /> and <see cref="P:System.IO.Pipelines.ReadResult.IsCompleted" /> flags.</summary>
|
||||||
|
<param name="buffer">The read-only sequence containing the bytes of data that were read in the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> call.</param>
|
||||||
|
<param name="isCanceled">A flag that indicates if the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> operation that produced this <see cref="T:System.IO.Pipelines.ReadResult" /> was canceled by <see cref="M:System.IO.Pipelines.PipeReader.CancelPendingRead" />.</param>
|
||||||
|
<param name="isCompleted">A flag that indicates whether the end of the data stream has been reached.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.ReadResult.Buffer">
|
||||||
|
<summary>Gets the <see cref="T:System.Buffers.ReadOnlySequence`1" /> that was read.</summary>
|
||||||
|
<returns>A read-only sequence containing the bytes of data that were read in the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> call.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.ReadResult.IsCanceled">
|
||||||
|
<summary>Gets a value that indicates whether the current <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> operation was canceled.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the <see cref="M:System.IO.Pipelines.PipeReader.ReadAsync(System.Threading.CancellationToken)" /> operation that produced this <see cref="T:System.IO.Pipelines.ReadResult" /> was canceled by <see cref="M:System.IO.Pipelines.PipeReader.CancelPendingRead" />; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.ReadResult.IsCompleted">
|
||||||
|
<summary>Gets a value that indicates whether the end of the data stream has been reached.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the end of the data stream has been reached; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.StreamPipeExtensions">
|
||||||
|
<summary>Provides extension methods for <see cref="T:System.IO.Stream" /> that support read and write operations directly into pipes.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.StreamPipeExtensions.CopyToAsync(System.IO.Stream,System.IO.Pipelines.PipeWriter,System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously reads the bytes from the <see cref="T:System.IO.Stream" /> and writes them to the specified <see cref="T:System.IO.Pipelines.PipeWriter" />, using a cancellation token.</summary>
|
||||||
|
<param name="source">The stream from which the contents of the current stream will be copied.</param>
|
||||||
|
<param name="destination">The writer to which the contents of the source stream will be copied.</param>
|
||||||
|
<param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
|
||||||
|
<returns>A task that represents the asynchronous copy operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.StreamPipeReaderOptions">
|
||||||
|
<summary>Represents a set of options for controlling the creation of the <see cref="T:System.IO.Pipelines.PipeReader" />.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.StreamPipeReaderOptions.#ctor(System.Buffers.MemoryPool{System.Byte},System.Int32,System.Int32,System.Boolean)">
|
||||||
|
<summary>Initializes a <see cref="T:System.IO.Pipelines.StreamPipeReaderOptions" /> instance, optionally specifying a memory pool, a minimum buffer size, a minimum read size, and whether the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes.</summary>
|
||||||
|
<param name="pool">The memory pool to use when allocating memory. The default value is <see langword="null" />.</param>
|
||||||
|
<param name="bufferSize">The minimum buffer size to use when renting memory from the <paramref name="pool" />. The default value is 4096.</param>
|
||||||
|
<param name="minimumReadSize">The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.</param>
|
||||||
|
<param name="leaveOpen">
|
||||||
|
<see langword="true" /> to leave the underlying stream open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes; <see langword="false" /> to close it. The default is <see langword="false" />.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.BufferSize">
|
||||||
|
<summary>Gets the minimum buffer size to use when renting memory from the <see cref="P:System.IO.Pipelines.StreamPipeReaderOptions.Pool" />.</summary>
|
||||||
|
<returns>The buffer size.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.LeaveOpen">
|
||||||
|
<summary>Gets the value that indicates if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeReader" /> completes; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.MinimumReadSize">
|
||||||
|
<summary>Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.</summary>
|
||||||
|
<returns>The minimum read size.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeReaderOptions.Pool">
|
||||||
|
<summary>Gets the <see cref="T:System.Buffers.MemoryPool`1" /> to use when allocating memory.</summary>
|
||||||
|
<returns>A memory pool instance.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.IO.Pipelines.StreamPipeWriterOptions">
|
||||||
|
<summary>Represents a set of options for controlling the creation of the <see cref="T:System.IO.Pipelines.PipeWriter" />.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.IO.Pipelines.StreamPipeWriterOptions.#ctor(System.Buffers.MemoryPool{System.Byte},System.Int32,System.Boolean)">
|
||||||
|
<summary>Initializes a <see cref="T:System.IO.Pipelines.StreamPipeWriterOptions" /> instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes.</summary>
|
||||||
|
<param name="pool">The memory pool to use when allocating memory. The default value is <see langword="null" />.</param>
|
||||||
|
<param name="minimumBufferSize">The minimum buffer size to use when renting memory from the <paramref name="pool" />. The default value is 4096.</param>
|
||||||
|
<param name="leaveOpen">
|
||||||
|
<see langword="true" /> to leave the underlying stream open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes; <see langword="false" /> to close it. The default is <see langword="false" />.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeWriterOptions.LeaveOpen">
|
||||||
|
<summary>Gets the value that indicates if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the underlying stream should be left open after the <see cref="T:System.IO.Pipelines.PipeWriter" /> completes; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeWriterOptions.MinimumBufferSize">
|
||||||
|
<summary>Gets the minimum buffer size to use when renting memory from the <see cref="P:System.IO.Pipelines.StreamPipeWriterOptions.Pool" />.</summary>
|
||||||
|
<returns>An integer representing the minimum buffer size.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.IO.Pipelines.StreamPipeWriterOptions.Pool">
|
||||||
|
<summary>Gets the <see cref="T:System.Buffers.MemoryPool`1" /> to use when allocating memory.</summary>
|
||||||
|
<returns>A memory pool instance.</returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/System.Memory.dll
Normal file
BIN
bin/Debug/System.Memory.dll
Normal file
Binary file not shown.
355
bin/Debug/System.Memory.xml
Normal file
355
bin/Debug/System.Memory.xml
Normal file
@@ -0,0 +1,355 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Memory</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Span`1">
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.#ctor(`0[])">
|
||||||
|
<param name="array"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
|
||||||
|
<param name="pointer"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
|
||||||
|
<param name="array"></param>
|
||||||
|
<param name="start"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
|
||||||
|
<param name="array"></param>
|
||||||
|
<param name="start"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.Clear">
|
||||||
|
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
|
||||||
|
<param name="destination"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
|
||||||
|
<param name="obj"></param>
|
||||||
|
<param name="objectData"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.DangerousGetPinnableReference">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Span`1.Empty">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.Equals(System.Object)">
|
||||||
|
<param name="obj"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.Fill(`0)">
|
||||||
|
<param name="value"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.GetHashCode">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Span`1.IsEmpty">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Span`1.Item(System.Int32)">
|
||||||
|
<param name="index"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Span`1.Length">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
|
||||||
|
<param name="left"></param>
|
||||||
|
<param name="right"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
|
||||||
|
<param name="arraySegment"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
|
||||||
|
<param name="span"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
|
||||||
|
<param name="array"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
|
||||||
|
<param name="left"></param>
|
||||||
|
<param name="right"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.Slice(System.Int32)">
|
||||||
|
<param name="start"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
|
||||||
|
<param name="start"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.ToArray">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
|
||||||
|
<param name="destination"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.SpanExtensions">
|
||||||
|
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
|
||||||
|
<param name="source"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
|
||||||
|
<param name="source"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.AsSpan(System.String)">
|
||||||
|
<param name="text"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
|
||||||
|
<param name="arraySegment"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
|
||||||
|
<param name="array"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
|
||||||
|
<param name="array"></param>
|
||||||
|
<param name="destination"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value0"></param>
|
||||||
|
<param name="value1"></param>
|
||||||
|
<param name="value2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value0"></param>
|
||||||
|
<param name="value1"></param>
|
||||||
|
<param name="value2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value0"></param>
|
||||||
|
<param name="value1"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="values"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="values"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value0"></param>
|
||||||
|
<param name="value1"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
|
||||||
|
<param name="source"></param>
|
||||||
|
<typeparam name="TFrom"></typeparam>
|
||||||
|
<typeparam name="TTo"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
|
||||||
|
<param name="source"></param>
|
||||||
|
<typeparam name="TFrom"></typeparam>
|
||||||
|
<typeparam name="TTo"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="first"></param>
|
||||||
|
<param name="second"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="first"></param>
|
||||||
|
<param name="second"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
||||||
|
<param name="first"></param>
|
||||||
|
<param name="second"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
||||||
|
<param name="first"></param>
|
||||||
|
<param name="second"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
||||||
|
<param name="span"></param>
|
||||||
|
<param name="value"></param>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.ReadOnlySpan`1">
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
|
||||||
|
<param name="array"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
|
||||||
|
<param name="pointer"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
|
||||||
|
<param name="array"></param>
|
||||||
|
<param name="start"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
|
||||||
|
<param name="array"></param>
|
||||||
|
<param name="start"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
|
||||||
|
<param name="destination"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
|
||||||
|
<param name="obj"></param>
|
||||||
|
<param name="objectData"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.ReadOnlySpan`1.Empty">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
|
||||||
|
<param name="obj"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.GetHashCode">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.ReadOnlySpan`1.IsEmpty">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
|
||||||
|
<param name="index"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.ReadOnlySpan`1.Length">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
|
||||||
|
<param name="left"></param>
|
||||||
|
<param name="right"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
|
||||||
|
<param name="arraySegment"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
|
||||||
|
<param name="array"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
|
||||||
|
<param name="left"></param>
|
||||||
|
<param name="right"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
|
||||||
|
<param name="start"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
|
||||||
|
<param name="start"></param>
|
||||||
|
<param name="length"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.ToArray">
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
|
||||||
|
<param name="destination"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/System.Numerics.Vectors.dll
Normal file
BIN
bin/Debug/System.Numerics.Vectors.dll
Normal file
Binary file not shown.
2621
bin/Debug/System.Numerics.Vectors.xml
Normal file
2621
bin/Debug/System.Numerics.Vectors.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/System.Runtime.CompilerServices.Unsafe.dll
Normal file
BIN
bin/Debug/System.Runtime.CompilerServices.Unsafe.dll
Normal file
Binary file not shown.
291
bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
Normal file
291
bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
Normal file
@@ -0,0 +1,291 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Runtime.CompilerServices.Unsafe</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Runtime.CompilerServices.Unsafe">
|
||||||
|
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
|
||||||
|
<summary>Adds an element offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="elementOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Adds an element offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="elementOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.UIntPtr)">
|
||||||
|
<summary>Adds an element offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="elementOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(System.Void*,System.Int32)">
|
||||||
|
<summary>Adds an element offset to the given void pointer.</summary>
|
||||||
|
<param name="source">The void pointer to add the offset to.</param>
|
||||||
|
<param name="elementOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of void pointer.</typeparam>
|
||||||
|
<returns>A new void pointer that reflects the addition of offset to the specified pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Adds a byte offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="byteOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.UIntPtr)">
|
||||||
|
<summary>Adds a byte offset to the given reference.</summary>
|
||||||
|
<param name="source">The reference to add the offset to.</param>
|
||||||
|
<param name="byteOffset">The offset to add.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
|
||||||
|
<summary>Determines whether the specified references point to the same location.</summary>
|
||||||
|
<param name="left">The first reference to compare.</param>
|
||||||
|
<param name="right">The second reference to compare.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if <paramref name="left" /> and <paramref name="right" /> point to the same location; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
|
||||||
|
<summary>Casts the given object to the specified type.</summary>
|
||||||
|
<param name="o">The object to cast.</param>
|
||||||
|
<typeparam name="T">The type which the object will be cast to.</typeparam>
|
||||||
|
<returns>The original object, casted to the given type.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
|
||||||
|
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo" />.</summary>
|
||||||
|
<param name="source">The reference to reinterpret.</param>
|
||||||
|
<typeparam name="TFrom">The type of reference to reinterpret.</typeparam>
|
||||||
|
<typeparam name="TTo">The desired type of the reference.</typeparam>
|
||||||
|
<returns>A reference to a value of type <typeparamref name="TTo" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
|
||||||
|
<summary>Returns a pointer to the given by-ref parameter.</summary>
|
||||||
|
<param name="value">The object whose pointer is obtained.</param>
|
||||||
|
<typeparam name="T">The type of object.</typeparam>
|
||||||
|
<returns>A pointer to the given value.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(``0@)">
|
||||||
|
<summary>Reinterprets the given read-only reference as a reference.</summary>
|
||||||
|
<param name="source">The read-only reference to reinterpret.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A reference to a value of type <typeparamref name="T" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
|
||||||
|
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T" />.</summary>
|
||||||
|
<param name="source">The location of the value to reference.</param>
|
||||||
|
<typeparam name="T">The type of the interpreted location.</typeparam>
|
||||||
|
<returns>A reference to a value of type <typeparamref name="T" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
|
||||||
|
<summary>Determines the byte offset from origin to target from the given references.</summary>
|
||||||
|
<param name="origin">The reference to origin.</param>
|
||||||
|
<param name="target">The reference to target.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>Byte offset from origin to target i.e. <paramref name="target" /> - <paramref name="origin" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
|
||||||
|
<summary>Copies a value of type <typeparamref name="T" /> to the given location.</summary>
|
||||||
|
<param name="destination">The location to copy to.</param>
|
||||||
|
<param name="source">A pointer to the value to copy.</param>
|
||||||
|
<typeparam name="T">The type of value to copy.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
|
||||||
|
<summary>Copies a value of type <typeparamref name="T" /> to the given location.</summary>
|
||||||
|
<param name="destination">The location to copy to.</param>
|
||||||
|
<param name="source">A reference to the value to copy.</param>
|
||||||
|
<typeparam name="T">The type of value to copy.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
|
||||||
|
<summary>Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The destination address to copy to.</param>
|
||||||
|
<param name="source">The source address to copy from.</param>
|
||||||
|
<param name="byteCount">The number of bytes to copy.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
|
||||||
|
<summary>Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.</summary>
|
||||||
|
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
||||||
|
<param name="value">The value to initialize the block to.</param>
|
||||||
|
<param name="byteCount">The number of bytes to initialize.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.IsAddressGreaterThan``1(``0@,``0@)">
|
||||||
|
<summary>Returns a value that indicates whether a specified reference is greater than another specified reference.</summary>
|
||||||
|
<param name="left">The first value to compare.</param>
|
||||||
|
<param name="right">The second value to compare.</param>
|
||||||
|
<typeparam name="T">The type of the reference.</typeparam>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if <paramref name="left" /> is greater than <paramref name="right" />; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.IsAddressLessThan``1(``0@,``0@)">
|
||||||
|
<summary>Returns a value that indicates whether a specified reference is less than another specified reference.</summary>
|
||||||
|
<param name="left">The first value to compare.</param>
|
||||||
|
<param name="right">The second value to compare.</param>
|
||||||
|
<typeparam name="T">The type of the reference.</typeparam>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if <paramref name="left" /> is less than <paramref name="right" />; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.IsNullRef``1(``0@)">
|
||||||
|
<summary>Determines if a given reference to a value of type <typeparamref name="T" /> is a null reference.</summary>
|
||||||
|
<param name="source">The reference to check.</param>
|
||||||
|
<typeparam name="T">The type of the reference.</typeparam>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if <paramref name="source" /> is a null reference; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.NullRef``1">
|
||||||
|
<summary>Returns a reference to a value of type <typeparamref name="T" /> that is a null reference.</summary>
|
||||||
|
<typeparam name="T">The type of the reference.</typeparam>
|
||||||
|
<returns>A reference to a value of type <typeparamref name="T" /> that is a null reference.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
|
||||||
|
<summary>Reads a value of type <typeparamref name="T" /> from the given location.</summary>
|
||||||
|
<param name="source">The location to read from.</param>
|
||||||
|
<typeparam name="T">The type to read.</typeparam>
|
||||||
|
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
|
||||||
|
<summary>Reads a value of type <typeparamref name="T" /> from the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="source">The location to read from.</param>
|
||||||
|
<typeparam name="T">The type to read.</typeparam>
|
||||||
|
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
|
||||||
|
<summary>Reads a value of type <typeparamref name="T" /> from the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="source">The location to read from.</param>
|
||||||
|
<typeparam name="T">The type to read.</typeparam>
|
||||||
|
<returns>An object of type <typeparamref name="T" /> read from the given location.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
|
||||||
|
<summary>Returns the size of an object of the given type parameter.</summary>
|
||||||
|
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
|
||||||
|
<returns>The size of an object of type <typeparamref name="T" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.SkipInit``1(``0@)">
|
||||||
|
<summary>Bypasses definite assignment rules for a given value.</summary>
|
||||||
|
<param name="value">The uninitialized object.</param>
|
||||||
|
<typeparam name="T">The type of the uninitialized object.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
|
||||||
|
<summary>Subtracts an element offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="elementOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subtraction of offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Subtracts an element offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="elementOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subtraction of offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.UIntPtr)">
|
||||||
|
<summary>Subtracts an element offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="elementOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(System.Void*,System.Int32)">
|
||||||
|
<summary>Subtracts an element offset from the given void pointer.</summary>
|
||||||
|
<param name="source">The void pointer to subtract the offset from.</param>
|
||||||
|
<param name="elementOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of the void pointer.</typeparam>
|
||||||
|
<returns>A new void pointer that reflects the subtraction of offset from the specified pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
|
||||||
|
<summary>Subtracts a byte offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="byteOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subtraction of byte offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.UIntPtr)">
|
||||||
|
<summary>Subtracts a byte offset from the given reference.</summary>
|
||||||
|
<param name="source">The reference to subtract the offset from.</param>
|
||||||
|
<param name="byteOffset">The offset to subtract.</param>
|
||||||
|
<typeparam name="T">The type of reference.</typeparam>
|
||||||
|
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Unbox``1(System.Object)">
|
||||||
|
<summary>Returns a <see langword="mutable ref" /> to a boxed value.</summary>
|
||||||
|
<param name="box">The value to unbox.</param>
|
||||||
|
<typeparam name="T">The type to be unboxed.</typeparam>
|
||||||
|
<exception cref="T:System.NullReferenceException">
|
||||||
|
<paramref name="box" /> is <see langword="null" />, and <typeparamref name="T" /> is a non-nullable value type.</exception>
|
||||||
|
<exception cref="T:System.InvalidCastException">
|
||||||
|
<paramref name="box" /> is not a boxed value type.
|
||||||
|
|
||||||
|
-or-
|
||||||
|
|
||||||
|
<paramref name="box" /> is not a boxed <typeparamref name="T" />.</exception>
|
||||||
|
<exception cref="T:System.TypeLoadException">
|
||||||
|
<typeparamref name="T" /> cannot be found.</exception>
|
||||||
|
<returns>A <see langword="mutable ref" /> to the boxed value <paramref name="box" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
|
||||||
|
<summary>Writes a value of type <typeparamref name="T" /> to the given location.</summary>
|
||||||
|
<param name="destination">The location to write to.</param>
|
||||||
|
<param name="value">The value to write.</param>
|
||||||
|
<typeparam name="T">The type of value to write.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
|
||||||
|
<summary>Writes a value of type <typeparamref name="T" /> to the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The location to write to.</param>
|
||||||
|
<param name="value">The value to write.</param>
|
||||||
|
<typeparam name="T">The type of value to write.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
|
||||||
|
<summary>Writes a value of type <typeparamref name="T" /> to the given location without assuming architecture dependent alignment of the addresses.</summary>
|
||||||
|
<param name="destination">The location to write to.</param>
|
||||||
|
<param name="value">The value to write.</param>
|
||||||
|
<typeparam name="T">The type of value to write.</typeparam>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/System.Text.Encodings.Web.dll
Normal file
BIN
bin/Debug/System.Text.Encodings.Web.dll
Normal file
Binary file not shown.
939
bin/Debug/System.Text.Encodings.Web.xml
Normal file
939
bin/Debug/System.Text.Encodings.Web.xml
Normal file
@@ -0,0 +1,939 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Text.Encodings.Web</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Text.Encodings.Web.HtmlEncoder">
|
||||||
|
<summary>Represents an HTML character encoding.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.HtmlEncoder.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Text.Encodings.Web.HtmlEncoder" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.HtmlEncoder.Create(System.Text.Encodings.Web.TextEncoderSettings)">
|
||||||
|
<summary>Creates a new instance of the HtmlEncoder class with the specified settings.</summary>
|
||||||
|
<param name="settings">Settings that control how the <see cref="T:System.Text.Encodings.Web.HtmlEncoder" /> instance encodes, primarily which characters to encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="settings" /> is <see langword="null" />.</exception>
|
||||||
|
<returns>A new instance of the <see cref="T:System.Text.Encodings.Web.HtmlEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.HtmlEncoder.Create(System.Text.Unicode.UnicodeRange[])">
|
||||||
|
<summary>Creates a new instance of the HtmlEncoder class that specifies characters the encoder is allowed to not encode.</summary>
|
||||||
|
<param name="allowedRanges">The set of characters that the encoder is allowed to not encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="allowedRanges" /> is <see langword="null" />.</exception>
|
||||||
|
<returns>A new instance of the <see cref="T:System.Text.Encodings.Web.HtmlEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Encodings.Web.HtmlEncoder.Default">
|
||||||
|
<summary>Gets a built-in instance of the <see cref="T:System.Text.Encodings.Web.HtmlEncoder" /> class.</summary>
|
||||||
|
<returns>A built-in instance of the <see cref="T:System.Text.Encodings.Web.HtmlEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Text.Encodings.Web.JavaScriptEncoder">
|
||||||
|
<summary>Represents a JavaScript character encoding.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.JavaScriptEncoder.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Text.Encodings.Web.JavaScriptEncoder" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Encodings.Web.TextEncoderSettings)">
|
||||||
|
<summary>Creates a new instance of JavaScriptEncoder class with the specified settings.</summary>
|
||||||
|
<param name="settings">Settings that control how the <see cref="T:System.Text.Encodings.Web.JavaScriptEncoder" /> instance encodes, primarily which characters to encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="settings" /> is <see langword="null" />.</exception>
|
||||||
|
<returns>A new instance of the <see cref="T:System.Text.Encodings.Web.JavaScriptEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRange[])">
|
||||||
|
<summary>Creates a new instance of the JavaScriptEncoder class that specifies characters the encoder is allowed to not encode.</summary>
|
||||||
|
<param name="allowedRanges">The set of characters that the encoder is allowed to not encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="allowedRanges" /> is <see langword="null" />.</exception>
|
||||||
|
<returns>A new instance of the <see cref="T:System.Text.Encodings.Web.JavaScriptEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Encodings.Web.JavaScriptEncoder.Default">
|
||||||
|
<summary>Gets a built-in instance of the <see cref="T:System.Text.Encodings.Web.JavaScriptEncoder" /> class.</summary>
|
||||||
|
<returns>A built-in instance of the <see cref="T:System.Text.Encodings.Web.JavaScriptEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping">
|
||||||
|
<summary>Gets a built-in JavaScript encoder instance that is less strict about what is encoded.</summary>
|
||||||
|
<returns>A JavaScript encoder instance.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Text.Encodings.Web.TextEncoder">
|
||||||
|
<summary>The base class of web encoders.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Text.Encodings.Web.TextEncoder" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.Encode(System.IO.TextWriter,System.Char[],System.Int32,System.Int32)">
|
||||||
|
<summary>Encodes characters from an array and writes them to a <see cref="T:System.IO.TextWriter" /> object.</summary>
|
||||||
|
<param name="output">The stream to which to write the encoded text.</param>
|
||||||
|
<param name="value">The array of characters to encode.</param>
|
||||||
|
<param name="startIndex">The array index of the first character to encode.</param>
|
||||||
|
<param name="characterCount">The number of characters in the array to encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="output" /> is <see langword="null" />.</exception>
|
||||||
|
<exception cref="T:System.ArgumentException">The <see cref="M:System.Text.Encodings.Web.TextEncoder.TryEncodeUnicodeScalar(System.Int32,System.Char*,System.Int32,System.Int32@)" /> method failed. The encoder does not implement <see cref="P:System.Text.Encodings.Web.TextEncoder.MaxOutputCharactersPerInputCharacter" /> correctly.</exception>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="value" /> is <see langword="null" />.</exception>
|
||||||
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||||
|
<paramref name="startIndex" /> is out of range.</exception>
|
||||||
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||||
|
<paramref name="characterCount" /> is out of range.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.Encode(System.IO.TextWriter,System.String)">
|
||||||
|
<summary>Encodes the specified string to a <see cref="T:System.IO.TextWriter" /> object.</summary>
|
||||||
|
<param name="output">The stream to which to write the encoded text.</param>
|
||||||
|
<param name="value">The string to encode.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.Encode(System.IO.TextWriter,System.String,System.Int32,System.Int32)">
|
||||||
|
<summary>Encodes a substring and writes it to a <see cref="T:System.IO.TextWriter" /> object.</summary>
|
||||||
|
<param name="output">The stream to which to write the encoded text.</param>
|
||||||
|
<param name="value">The string whose substring is to be encoded.</param>
|
||||||
|
<param name="startIndex">The index where the substring starts.</param>
|
||||||
|
<param name="characterCount">The number of characters in the substring.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="output" /> is <see langword="null" />.</exception>
|
||||||
|
<exception cref="T:System.ArgumentException">The <see cref="M:System.Text.Encodings.Web.TextEncoder.TryEncodeUnicodeScalar(System.Int32,System.Char*,System.Int32,System.Int32@)" /> method failed. The encoder does not implement <see cref="P:System.Text.Encodings.Web.TextEncoder.MaxOutputCharactersPerInputCharacter" /> correctly.</exception>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="value" /> is <see langword="null" />.</exception>
|
||||||
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||||
|
<paramref name="startIndex" /> is out of range.</exception>
|
||||||
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||||
|
<paramref name="characterCount" /> is out of range.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.Encode(System.ReadOnlySpan{System.Char},System.Span{System.Char},System.Int32@,System.Int32@,System.Boolean)">
|
||||||
|
<summary>Encodes the supplied characters.</summary>
|
||||||
|
<param name="source">A source buffer containing the characters to encode.</param>
|
||||||
|
<param name="destination">The destination buffer to which the encoded form of <paramref name="source" /> will be written.</param>
|
||||||
|
<param name="charsConsumed">The number of characters consumed from the <paramref name="source" /> buffer.</param>
|
||||||
|
<param name="charsWritten">The number of characters written to the <paramref name="destination" /> buffer.</param>
|
||||||
|
<param name="isFinalBlock">
|
||||||
|
<see langword="true" /> to indicate there is no further source data that needs to be encoded; otherwise, <see langword="false" />.</param>
|
||||||
|
<returns>An enumeration value that describes the result of the encoding operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.Encode(System.String)">
|
||||||
|
<summary>Encodes the supplied string and returns the encoded text as a new string.</summary>
|
||||||
|
<param name="value">The string to encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="value" /> is <see langword="null" />.</exception>
|
||||||
|
<exception cref="T:System.ArgumentException">The <see cref="M:System.Text.Encodings.Web.TextEncoder.TryEncodeUnicodeScalar(System.Int32,System.Char*,System.Int32,System.Int32@)" /> method failed. The encoder does not implement <see cref="P:System.Text.Encodings.Web.TextEncoder.MaxOutputCharactersPerInputCharacter" /> correctly.</exception>
|
||||||
|
<returns>The encoded string.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.EncodeUtf8(System.ReadOnlySpan{System.Byte},System.Span{System.Byte},System.Int32@,System.Int32@,System.Boolean)">
|
||||||
|
<summary>Encodes the supplied UTF-8 text.</summary>
|
||||||
|
<param name="utf8Source">A source buffer containing the UTF-8 text to encode.</param>
|
||||||
|
<param name="utf8Destination">The destination buffer to which the encoded form of <paramref name="utf8Source" /> will be written.</param>
|
||||||
|
<param name="bytesConsumed">The number of bytes consumed from the <paramref name="utf8Source" /> buffer.</param>
|
||||||
|
<param name="bytesWritten">The number of bytes written to the <paramref name="utf8Destination" /> buffer.</param>
|
||||||
|
<param name="isFinalBlock">
|
||||||
|
<see langword="true" /> to indicate there is no further source data that needs to be encoded; otherwise, <see langword="false" />.</param>
|
||||||
|
<returns>A status code that describes the result of the encoding operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.FindFirstCharacterToEncode(System.Char*,System.Int32)">
|
||||||
|
<summary>Finds the index of the first character to encode.</summary>
|
||||||
|
<param name="text">The text buffer to search.</param>
|
||||||
|
<param name="textLength">The number of characters in <paramref name="text" />.</param>
|
||||||
|
<returns>The index of the first character to encode.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.FindFirstCharacterToEncodeUtf8(System.ReadOnlySpan{System.Byte})">
|
||||||
|
<summary>Finds the first element in a UTF-8 text input buffer that would be escaped by the current encoder instance.</summary>
|
||||||
|
<param name="utf8Text">The UTF-8 text input buffer to search.</param>
|
||||||
|
<returns>The index of the first element in <paramref name="utf8Text" /> that would be escaped by the current encoder instance, or -1 if no data in <paramref name="utf8Text" /> requires escaping.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.TryEncodeUnicodeScalar(System.Int32,System.Char*,System.Int32,System.Int32@)">
|
||||||
|
<summary>Encodes a Unicode scalar value and writes it to a buffer.</summary>
|
||||||
|
<param name="unicodeScalar">A Unicode scalar value.</param>
|
||||||
|
<param name="buffer">A pointer to the buffer to which to write the encoded text.</param>
|
||||||
|
<param name="bufferLength">The length of the destination <paramref name="buffer" /> in characters.</param>
|
||||||
|
<param name="numberOfCharactersWritten">When the method returns, indicates the number of characters written to the <paramref name="buffer" />.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="false" /> if <paramref name="bufferLength" /> is too small to fit the encoded text; otherwise, returns <see langword="true" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoder.WillEncode(System.Int32)">
|
||||||
|
<summary>Determines if a given Unicode scalar value will be encoded.</summary>
|
||||||
|
<param name="unicodeScalar">A Unicode scalar value.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the <paramref name="unicodeScalar" /> value will be encoded by this encoder; otherwise, returns <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Encodings.Web.TextEncoder.MaxOutputCharactersPerInputCharacter">
|
||||||
|
<summary>Gets the maximum number of characters that this encoder can generate for each input code point.</summary>
|
||||||
|
<returns>The maximum number of characters.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Text.Encodings.Web.TextEncoderSettings">
|
||||||
|
<summary>Represents a filter that allows only certain Unicode code points.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.#ctor">
|
||||||
|
<summary>Instantiates an empty filter (allows no code points through by default).</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.#ctor(System.Text.Encodings.Web.TextEncoderSettings)">
|
||||||
|
<summary>Instantiates a filter by cloning the allowed list of another <see cref="T:System.Text.Encodings.Web.TextEncoderSettings" /> object.</summary>
|
||||||
|
<param name="other">The other <see cref="T:System.Text.Encodings.Web.TextEncoderSettings" /> object to be cloned.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.#ctor(System.Text.Unicode.UnicodeRange[])">
|
||||||
|
<summary>Instantiates a filter where only the character ranges specified by <paramref name="allowedRanges" /> are allowed by the filter.</summary>
|
||||||
|
<param name="allowedRanges">The allowed character ranges.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="allowedRanges" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.AllowCharacter(System.Char)">
|
||||||
|
<summary>Allows the character specified by <paramref name="character" /> through the filter.</summary>
|
||||||
|
<param name="character">The allowed character.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.AllowCharacters(System.Char[])">
|
||||||
|
<summary>Allows all characters specified by <paramref name="characters" /> through the filter.</summary>
|
||||||
|
<param name="characters">The allowed characters.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="characters" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.AllowCodePoints(System.Collections.Generic.IEnumerable{System.Int32})">
|
||||||
|
<summary>Allows all code points specified by <paramref name="codePoints" />.</summary>
|
||||||
|
<param name="codePoints">The allowed code points.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="codePoints" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.AllowRange(System.Text.Unicode.UnicodeRange)">
|
||||||
|
<summary>Allows all characters specified by <paramref name="range" /> through the filter.</summary>
|
||||||
|
<param name="range">The range of characters to be allowed.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="range" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.AllowRanges(System.Text.Unicode.UnicodeRange[])">
|
||||||
|
<summary>Allows all characters specified by <paramref name="ranges" /> through the filter.</summary>
|
||||||
|
<param name="ranges">The ranges of characters to be allowed.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="ranges" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.Clear">
|
||||||
|
<summary>Resets this object by disallowing all characters.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.ForbidCharacter(System.Char)">
|
||||||
|
<summary>Disallows the character <paramref name="character" /> through the filter.</summary>
|
||||||
|
<param name="character">The disallowed character.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.ForbidCharacters(System.Char[])">
|
||||||
|
<summary>Disallows all characters specified by <paramref name="characters" /> through the filter.</summary>
|
||||||
|
<param name="characters">The disallowed characters.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="characters" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.ForbidRange(System.Text.Unicode.UnicodeRange)">
|
||||||
|
<summary>Disallows all characters specified by <paramref name="range" /> through the filter.</summary>
|
||||||
|
<param name="range">The range of characters to be disallowed.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="range" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.ForbidRanges(System.Text.Unicode.UnicodeRange[])">
|
||||||
|
<summary>Disallows all characters specified by <paramref name="ranges" /> through the filter.</summary>
|
||||||
|
<param name="ranges">The ranges of characters to be disallowed.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="ranges" /> is <see langword="null" />.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.TextEncoderSettings.GetAllowedCodePoints">
|
||||||
|
<summary>Gets an enumerator of all allowed code points.</summary>
|
||||||
|
<returns>The enumerator of allowed code points.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Text.Encodings.Web.UrlEncoder">
|
||||||
|
<summary>Represents a URL character encoding.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.UrlEncoder.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Text.Encodings.Web.UrlEncoder" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.UrlEncoder.Create(System.Text.Encodings.Web.TextEncoderSettings)">
|
||||||
|
<summary>Creates a new instance of UrlEncoder class with the specified settings.</summary>
|
||||||
|
<param name="settings">Settings that control how the <see cref="T:System.Text.Encodings.Web.UrlEncoder" /> instance encodes, primarily which characters to encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="settings" /> is <see langword="null" />.</exception>
|
||||||
|
<returns>A new instance of the <see cref="T:System.Text.Encodings.Web.UrlEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Encodings.Web.UrlEncoder.Create(System.Text.Unicode.UnicodeRange[])">
|
||||||
|
<summary>Creates a new instance of the UrlEncoder class that specifies characters the encoder is allowed to not encode.</summary>
|
||||||
|
<param name="allowedRanges">The set of characters that the encoder is allowed to not encode.</param>
|
||||||
|
<exception cref="T:System.ArgumentNullException">
|
||||||
|
<paramref name="allowedRanges" /> is <see langword="null" />.</exception>
|
||||||
|
<returns>A new instance of the <see cref="T:System.Text.Encodings.Web.UrlEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Encodings.Web.UrlEncoder.Default">
|
||||||
|
<summary>Gets a built-in instance of the <see cref="T:System.Text.Encodings.Web.UrlEncoder" /> class.</summary>
|
||||||
|
<returns>A built-in instance of the <see cref="T:System.Text.Encodings.Web.UrlEncoder" /> class.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Text.Unicode.UnicodeRange">
|
||||||
|
<summary>Represents a contiguous range of Unicode code points.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Unicode.UnicodeRange.#ctor(System.Int32,System.Int32)">
|
||||||
|
<summary>Creates a new <see cref="T:System.Text.Unicode.UnicodeRange" /> that includes a specified number of characters starting at a specified Unicode code point.</summary>
|
||||||
|
<param name="firstCodePoint">The first code point in the range.</param>
|
||||||
|
<param name="length">The number of code points in the range.</param>
|
||||||
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||||
|
<paramref name="firstCodePoint" /> is less than zero or greater than 0xFFFF.
|
||||||
|
|
||||||
|
-or-
|
||||||
|
|
||||||
|
<paramref name="length" /> is less than zero.
|
||||||
|
|
||||||
|
-or-
|
||||||
|
|
||||||
|
<paramref name="firstCodePoint" /> plus <paramref name="length" /> is greater than 0xFFFF.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Text.Unicode.UnicodeRange.Create(System.Char,System.Char)">
|
||||||
|
<summary>Creates a new <see cref="T:System.Text.Unicode.UnicodeRange" /> instance from a span of characters.</summary>
|
||||||
|
<param name="firstCharacter">The first character in the range.</param>
|
||||||
|
<param name="lastCharacter">The last character in the range.</param>
|
||||||
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
||||||
|
<paramref name="lastCharacter" /> precedes <paramref name="firstCharacter" />.</exception>
|
||||||
|
<returns>A range that includes all characters between <paramref name="firstCharacter" /> and <paramref name="lastCharacter" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRange.FirstCodePoint">
|
||||||
|
<summary>Gets the first code point in the range represented by this <see cref="T:System.Text.Unicode.UnicodeRange" /> instance.</summary>
|
||||||
|
<returns>The first code point in the range.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRange.Length">
|
||||||
|
<summary>Gets the number of code points in the range represented by this <see cref="T:System.Text.Unicode.UnicodeRange" /> instance.</summary>
|
||||||
|
<returns>The number of code points in the range.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Text.Unicode.UnicodeRanges">
|
||||||
|
<summary>Provides static properties that return predefined <see cref="T:System.Text.Unicode.UnicodeRange" /> instances that correspond to blocks from the Unicode specification.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.All">
|
||||||
|
<summary>Gets a range that consists of the entire Basic Multilingual Plane (BMP), from U+0000 to U+FFFF).</summary>
|
||||||
|
<returns>A range that consists of the entire BMP.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.AlphabeticPresentationForms">
|
||||||
|
<summary>Gets the Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F).</summary>
|
||||||
|
<returns>The Alphabetic Presentation Forms Unicode block (U+FB00-U+FB4F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Arabic">
|
||||||
|
<summary>Gets the Arabic Unicode block (U+0600-U+06FF).</summary>
|
||||||
|
<returns>The Arabic Unicode block (U+0600-U+06FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ArabicExtendedA">
|
||||||
|
<summary>Gets the Arabic Extended-A Unicode block (U+08A0-U+08FF).</summary>
|
||||||
|
<returns>The Arabic Extended-A Unicode block (U+08A0-U+08FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ArabicExtendedB">
|
||||||
|
<summary>A <see cref="T:System.Text.Unicode.UnicodeRange" /> corresponding to the 'Arabic Extended-B' Unicode block (U+0870..U+089F).</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ArabicPresentationFormsA">
|
||||||
|
<summary>Gets the Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF).</summary>
|
||||||
|
<returns>The Arabic Presentation Forms-A Unicode block (U+FB50-U+FDFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ArabicPresentationFormsB">
|
||||||
|
<summary>Gets the Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF).</summary>
|
||||||
|
<returns>The Arabic Presentation Forms-B Unicode block (U+FE70-U+FEFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ArabicSupplement">
|
||||||
|
<summary>Gets the Arabic Supplement Unicode block (U+0750-U+077F).</summary>
|
||||||
|
<returns>The Arabic Supplement Unicode block (U+0750-U+077F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Armenian">
|
||||||
|
<summary>Gets the Armenian Unicode block (U+0530-U+058F).</summary>
|
||||||
|
<returns>The Armenian Unicode block (U+0530-U+058F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Arrows">
|
||||||
|
<summary>Gets the Arrows Unicode block (U+2190-U+21FF).</summary>
|
||||||
|
<returns>The Arrows Unicode block (U+2190-U+21FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Balinese">
|
||||||
|
<summary>Gets the Balinese Unicode block (U+1B00-U+1B7F).</summary>
|
||||||
|
<returns>The Balinese Unicode block (U+1B00-U+1B7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Bamum">
|
||||||
|
<summary>Gets the Bamum Unicode block (U+A6A0-U+A6FF).</summary>
|
||||||
|
<returns>The Bamum Unicode block (U+A6A0-U+A6FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.BasicLatin">
|
||||||
|
<summary>Gets the Basic Latin Unicode block (U+0021-U+007F).</summary>
|
||||||
|
<returns>The Basic Latin Unicode block (U+0021-U+007F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Batak">
|
||||||
|
<summary>Gets the Batak Unicode block (U+1BC0-U+1BFF).</summary>
|
||||||
|
<returns>The Batak Unicode block (U+1BC0-U+1BFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Bengali">
|
||||||
|
<summary>Gets the Bengali Unicode block (U+0980-U+09FF).</summary>
|
||||||
|
<returns>The Bengali Unicode block (U+0980-U+09FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.BlockElements">
|
||||||
|
<summary>Gets the Block Elements Unicode block (U+2580-U+259F).</summary>
|
||||||
|
<returns>The Block Elements Unicode block (U+2580-U+259F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Bopomofo">
|
||||||
|
<summary>Gets the Bopomofo Unicode block (U+3100-U+312F).</summary>
|
||||||
|
<returns>The Bopomofo Unicode block (U+3105-U+312F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.BopomofoExtended">
|
||||||
|
<summary>Gets the Bopomofo Extended Unicode block (U+31A0-U+31BF).</summary>
|
||||||
|
<returns>The Bopomofo Extended Unicode block (U+31A0-U+31BF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.BoxDrawing">
|
||||||
|
<summary>Gets the Box Drawing Unicode block (U+2500-U+257F).</summary>
|
||||||
|
<returns>The Box Drawing Unicode block (U+2500-U+257F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.BraillePatterns">
|
||||||
|
<summary>Gets the Braille Patterns Unicode block (U+2800-U+28FF).</summary>
|
||||||
|
<returns>The Braille Patterns Unicode block (U+2800-U+28FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Buginese">
|
||||||
|
<summary>Gets the Buginese Unicode block (U+1A00-U+1A1F).</summary>
|
||||||
|
<returns>The Buginese Unicode block (U+1A00-U+1A1F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Buhid">
|
||||||
|
<summary>Gets the Buhid Unicode block (U+1740-U+175F).</summary>
|
||||||
|
<returns>The Buhid Unicode block (U+1740-U+175F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Cham">
|
||||||
|
<summary>Gets the Cham Unicode block (U+AA00-U+AA5F).</summary>
|
||||||
|
<returns>The Cham Unicode block (U+AA00-U+AA5F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Cherokee">
|
||||||
|
<summary>Gets the Cherokee Unicode block (U+13A0-U+13FF).</summary>
|
||||||
|
<returns>The Cherokee Unicode block (U+13A0-U+13FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CherokeeSupplement">
|
||||||
|
<summary>Gets the Cherokee Supplement Unicode block (U+AB70-U+ABBF).</summary>
|
||||||
|
<returns>The Cherokee Supplement Unicode block (U+AB70-U+ABBF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkCompatibility">
|
||||||
|
<summary>Gets the CJK Compatibility Unicode block (U+3300-U+33FF).</summary>
|
||||||
|
<returns>The CJK Compatibility Unicode block (U+3300-U+33FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkCompatibilityForms">
|
||||||
|
<summary>Gets the CJK Compatibility Forms Unicode block (U+FE30-U+FE4F).</summary>
|
||||||
|
<returns>The CJK Compatibility Forms Unicode block (U+FE30-U+FE4F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkCompatibilityIdeographs">
|
||||||
|
<summary>Gets the CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9).</summary>
|
||||||
|
<returns>The CJK Compatibility Ideographs Unicode block (U+F900-U+FAD9).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkRadicalsSupplement">
|
||||||
|
<summary>Gets the CJK Radicals Supplement Unicode block (U+2E80-U+2EFF).</summary>
|
||||||
|
<returns>The CJK Radicals Supplement Unicode block (U+2E80-U+2EFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkStrokes">
|
||||||
|
<summary>Gets the CJK Strokes Unicode block (U+31C0-U+31EF).</summary>
|
||||||
|
<returns>The CJK Strokes Unicode block (U+31C0-U+31EF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkSymbolsandPunctuation">
|
||||||
|
<summary>Gets the CJK Symbols and Punctuation Unicode block (U+3000-U+303F).</summary>
|
||||||
|
<returns>The CJK Symbols and Punctuation Unicode block (U+3000-U+303F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkUnifiedIdeographs">
|
||||||
|
<summary>Gets the CJK Unified Ideographs Unicode block (U+4E00-U+9FCC).</summary>
|
||||||
|
<returns>The CJK Unified Ideographs Unicode block (U+4E00-U+9FCC).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CjkUnifiedIdeographsExtensionA">
|
||||||
|
<summary>Gets the CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5).</summary>
|
||||||
|
<returns>The CJK Unitied Ideographs Extension A Unicode block (U+3400-U+4DB5).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CombiningDiacriticalMarks">
|
||||||
|
<summary>Gets the Combining Diacritical Marks Unicode block (U+0300-U+036F).</summary>
|
||||||
|
<returns>The Combining Diacritical Marks Unicode block (U+0300-U+036F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CombiningDiacriticalMarksExtended">
|
||||||
|
<summary>Gets the Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF).</summary>
|
||||||
|
<returns>The Combining Diacritical Marks Extended Unicode block (U+1AB0-U+1AFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CombiningDiacriticalMarksforSymbols">
|
||||||
|
<summary>Gets the Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF).</summary>
|
||||||
|
<returns>The Combining Diacritical Marks for Symbols Unicode block (U+20D0-U+20FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CombiningDiacriticalMarksSupplement">
|
||||||
|
<summary>Gets the Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF).</summary>
|
||||||
|
<returns>The Combining Diacritical Marks Supplement Unicode block (U+1DC0-U+1DFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CombiningHalfMarks">
|
||||||
|
<summary>Gets the Combining Half Marks Unicode block (U+FE20-U+FE2F).</summary>
|
||||||
|
<returns>The Combining Half Marks Unicode block (U+FE20-U+FE2F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CommonIndicNumberForms">
|
||||||
|
<summary>Gets the Common Indic Number Forms Unicode block (U+A830-U+A83F).</summary>
|
||||||
|
<returns>The Common Indic Number Forms Unicode block (U+A830-U+A83F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ControlPictures">
|
||||||
|
<summary>Gets the Control Pictures Unicode block (U+2400-U+243F).</summary>
|
||||||
|
<returns>The Control Pictures Unicode block (U+2400-U+243F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Coptic">
|
||||||
|
<summary>Gets the Coptic Unicode block (U+2C80-U+2CFF).</summary>
|
||||||
|
<returns>The Coptic Unicode block (U+2C80-U+2CFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CurrencySymbols">
|
||||||
|
<summary>Gets the Currency Symbols Unicode block (U+20A0-U+20CF).</summary>
|
||||||
|
<returns>The Currency Symbols Unicode block (U+20A0-U+20CF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Cyrillic">
|
||||||
|
<summary>Gets the Cyrillic Unicode block (U+0400-U+04FF).</summary>
|
||||||
|
<returns>The Cyrillic Unicode block (U+0400-U+04FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CyrillicExtendedA">
|
||||||
|
<summary>Gets the Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF).</summary>
|
||||||
|
<returns>The Cyrillic Extended-A Unicode block (U+2DE0-U+2DFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CyrillicExtendedB">
|
||||||
|
<summary>Gets the Cyrillic Extended-B Unicode block (U+A640-U+A69F).</summary>
|
||||||
|
<returns>The Cyrillic Extended-B Unicode block (U+A640-U+A69F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CyrillicExtendedC">
|
||||||
|
<summary>A <see cref="T:System.Text.Unicode.UnicodeRange" /> corresponding to the 'Cyrillic Extended-C' Unicode block (U+1C80..U+1C8F).</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.CyrillicSupplement">
|
||||||
|
<summary>Gets the Cyrillic Supplement Unicode block (U+0500-U+052F).</summary>
|
||||||
|
<returns>The Cyrillic Supplement Unicode block (U+0500-U+052F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Devanagari">
|
||||||
|
<summary>Gets the Devangari Unicode block (U+0900-U+097F).</summary>
|
||||||
|
<returns>The Devangari Unicode block (U+0900-U+097F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.DevanagariExtended">
|
||||||
|
<summary>Gets the Devanagari Extended Unicode block (U+A8E0-U+A8FF).</summary>
|
||||||
|
<returns>The Devanagari Extended Unicode block (U+A8E0-U+A8FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Dingbats">
|
||||||
|
<summary>Gets the Dingbats Unicode block (U+2700-U+27BF).</summary>
|
||||||
|
<returns>The Dingbats Unicode block (U+2700-U+27BF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.EnclosedAlphanumerics">
|
||||||
|
<summary>Gets the Enclosed Alphanumerics Unicode block (U+2460-U+24FF).</summary>
|
||||||
|
<returns>The Enclosed Alphanumerics Unicode block (U+2460-U+24FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.EnclosedCjkLettersandMonths">
|
||||||
|
<summary>Gets the Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF).</summary>
|
||||||
|
<returns>The Enclosed CJK Letters and Months Unicode block (U+3200-U+32FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Ethiopic">
|
||||||
|
<summary>Gets the Ethiopic Unicode block (U+1200-U+137C).</summary>
|
||||||
|
<returns>The Ethiopic Unicode block (U+1200-U+137C).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.EthiopicExtended">
|
||||||
|
<summary>Gets the Ethipic Extended Unicode block (U+2D80-U+2DDF).</summary>
|
||||||
|
<returns>The Ethipic Extended Unicode block (U+2D80-U+2DDF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.EthiopicExtendedA">
|
||||||
|
<summary>Gets the Ethiopic Extended-A Unicode block (U+AB00-U+AB2F).</summary>
|
||||||
|
<returns>The Ethiopic Extended-A Unicode block (U+AB00-U+AB2F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.EthiopicSupplement">
|
||||||
|
<summary>Gets the Ethiopic Supplement Unicode block (U+1380-U+1399).</summary>
|
||||||
|
<returns>The Ethiopic Supplement Unicode block (U+1380-U+1399).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.GeneralPunctuation">
|
||||||
|
<summary>Gets the General Punctuation Unicode block (U+2000-U+206F).</summary>
|
||||||
|
<returns>The General Punctuation Unicode block (U+2000-U+206F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.GeometricShapes">
|
||||||
|
<summary>Gets the Geometric Shapes Unicode block (U+25A0-U+25FF).</summary>
|
||||||
|
<returns>The Geometric Shapes Unicode block (U+25A0-U+25FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Georgian">
|
||||||
|
<summary>Gets the Georgian Unicode block (U+10A0-U+10FF).</summary>
|
||||||
|
<returns>The Georgian Unicode block (U+10A0-U+10FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.GeorgianExtended">
|
||||||
|
<summary>A <see cref="T:System.Text.Unicode.UnicodeRange" /> corresponding to the 'Georgian Extended' Unicode block (U+1C90..U+1CBF).</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.GeorgianSupplement">
|
||||||
|
<summary>Gets the Georgian Supplement Unicode block (U+2D00-U+2D2F).</summary>
|
||||||
|
<returns>The Georgian Supplement Unicode block (U+2D00-U+2D2F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Glagolitic">
|
||||||
|
<summary>Gets the Glagolitic Unicode block (U+2C00-U+2C5F).</summary>
|
||||||
|
<returns>The Glagolitic Unicode block (U+2C00-U+2C5F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.GreekandCoptic">
|
||||||
|
<summary>Gets the Greek and Coptic Unicode block (U+0370-U+03FF).</summary>
|
||||||
|
<returns>The Greek and Coptic Unicode block (U+0370-U+03FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.GreekExtended">
|
||||||
|
<summary>Gets the Greek Extended Unicode block (U+1F00-U+1FFF).</summary>
|
||||||
|
<returns>The Greek Extended Unicode block (U+1F00-U+1FFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Gujarati">
|
||||||
|
<summary>Gets the Gujarti Unicode block (U+0A81-U+0AFF).</summary>
|
||||||
|
<returns>The Gujarti Unicode block (U+0A81-U+0AFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Gurmukhi">
|
||||||
|
<summary>Gets the Gurmukhi Unicode block (U+0A01-U+0A7F).</summary>
|
||||||
|
<returns>The Gurmukhi Unicode block (U+0A01-U+0A7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.HalfwidthandFullwidthForms">
|
||||||
|
<summary>Gets the Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE).</summary>
|
||||||
|
<returns>The Halfwidth and Fullwidth Forms Unicode block (U+FF00-U+FFEE).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.HangulCompatibilityJamo">
|
||||||
|
<summary>Gets the Hangul Compatibility Jamo Unicode block (U+3131-U+318F).</summary>
|
||||||
|
<returns>The Hangul Compatibility Jamo Unicode block (U+3131-U+318F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.HangulJamo">
|
||||||
|
<summary>Gets the Hangul Jamo Unicode block (U+1100-U+11FF).</summary>
|
||||||
|
<returns>The Hangul Jamo Unicode block (U+1100-U+11FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.HangulJamoExtendedA">
|
||||||
|
<summary>Gets the Hangul Jamo Extended-A Unicode block (U+A960-U+A9F).</summary>
|
||||||
|
<returns>The Hangul Jamo Extended-A Unicode block (U+A960-U+A97F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.HangulJamoExtendedB">
|
||||||
|
<summary>Gets the Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF).</summary>
|
||||||
|
<returns>The Hangul Jamo Extended-B Unicode block (U+D7B0-U+D7FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.HangulSyllables">
|
||||||
|
<summary>Gets the Hangul Syllables Unicode block (U+AC00-U+D7AF).</summary>
|
||||||
|
<returns>The Hangul Syllables Unicode block (U+AC00-U+D7AF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Hanunoo">
|
||||||
|
<summary>Gets the Hanunoo Unicode block (U+1720-U+173F).</summary>
|
||||||
|
<returns>The Hanunoo Unicode block (U+1720-U+173F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Hebrew">
|
||||||
|
<summary>Gets the Hebrew Unicode block (U+0590-U+05FF).</summary>
|
||||||
|
<returns>The Hebrew Unicode block (U+0590-U+05FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Hiragana">
|
||||||
|
<summary>Gets the Hiragana Unicode block (U+3040-U+309F).</summary>
|
||||||
|
<returns>The Hiragana Unicode block (U+3040-U+309F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.IdeographicDescriptionCharacters">
|
||||||
|
<summary>Gets the Ideographic Description Characters Unicode block (U+2FF0-U+2FFF).</summary>
|
||||||
|
<returns>The Ideographic Description Characters Unicode block (U+2FF0-U+2FFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.IpaExtensions">
|
||||||
|
<summary>Gets the IPA Extensions Unicode block (U+0250-U+02AF).</summary>
|
||||||
|
<returns>The IPA Extensions Unicode block (U+0250-U+02AF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Javanese">
|
||||||
|
<summary>Gets the Javanese Unicode block (U+A980-U+A9DF).</summary>
|
||||||
|
<returns>The Javanese Unicode block (U+A980-U+A9DF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Kanbun">
|
||||||
|
<summary>Gets the Kanbun Unicode block (U+3190-U+319F).</summary>
|
||||||
|
<returns>The Kanbun Unicode block (U+3190-U+319F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.KangxiRadicals">
|
||||||
|
<summary>Gets the Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF).</summary>
|
||||||
|
<returns>The Kangxi Radicals Supplement Unicode block (U+2F00-U+2FDF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Kannada">
|
||||||
|
<summary>Gets the Kannada Unicode block (U+0C81-U+0CFF).</summary>
|
||||||
|
<returns>The Kannada Unicode block (U+0C81-U+0CFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Katakana">
|
||||||
|
<summary>Gets the Katakana Unicode block (U+30A0-U+30FF).</summary>
|
||||||
|
<returns>The Katakana Unicode block (U+30A0-U+30FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.KatakanaPhoneticExtensions">
|
||||||
|
<summary>Gets the Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF).</summary>
|
||||||
|
<returns>The Katakana Phonetic Extensions Unicode block (U+31F0-U+31FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.KayahLi">
|
||||||
|
<summary>Gets the Kayah Li Unicode block (U+A900-U+A92F).</summary>
|
||||||
|
<returns>The Kayah Li Unicode block (U+A900-U+A92F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Khmer">
|
||||||
|
<summary>Gets the Khmer Unicode block (U+1780-U+17FF).</summary>
|
||||||
|
<returns>The Khmer Unicode block (U+1780-U+17FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.KhmerSymbols">
|
||||||
|
<summary>Gets the Khmer Symbols Unicode block (U+19E0-U+19FF).</summary>
|
||||||
|
<returns>The Khmer Symbols Unicode block (U+19E0-U+19FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Lao">
|
||||||
|
<summary>Gets the Lao Unicode block (U+0E80-U+0EDF).</summary>
|
||||||
|
<returns>The Lao Unicode block (U+0E80-U+0EDF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Latin1Supplement">
|
||||||
|
<summary>Gets the Latin-1 Supplement Unicode block (U+00A1-U+00FF).</summary>
|
||||||
|
<returns>The Latin-1 Supplement Unicode block (U+00A1-U+00FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LatinExtendedA">
|
||||||
|
<summary>Gets the Latin Extended-A Unicode block (U+0100-U+017F).</summary>
|
||||||
|
<returns>The Latin Extended-A Unicode block (U+0100-U+017F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LatinExtendedAdditional">
|
||||||
|
<summary>Gets the Latin Extended Additional Unicode block (U+1E00-U+1EFF).</summary>
|
||||||
|
<returns>The Latin Extended Additional Unicode block (U+1E00-U+1EFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LatinExtendedB">
|
||||||
|
<summary>Gets the Latin Extended-B Unicode block (U+0180-U+024F).</summary>
|
||||||
|
<returns>The Latin Extended-B Unicode block (U+0180-U+024F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LatinExtendedC">
|
||||||
|
<summary>Gets the Latin Extended-C Unicode block (U+2C60-U+2C7F).</summary>
|
||||||
|
<returns>The Latin Extended-C Unicode block (U+2C60-U+2C7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LatinExtendedD">
|
||||||
|
<summary>Gets the Latin Extended-D Unicode block (U+A720-U+A7FF).</summary>
|
||||||
|
<returns>The Latin Extended-D Unicode block (U+A720-U+A7FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LatinExtendedE">
|
||||||
|
<summary>Gets the Latin Extended-E Unicode block (U+AB30-U+AB6F).</summary>
|
||||||
|
<returns>The Latin Extended-E Unicode block (U+AB30-U+AB6F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Lepcha">
|
||||||
|
<summary>Gets the Lepcha Unicode block (U+1C00-U+1C4F).</summary>
|
||||||
|
<returns>The Lepcha Unicode block (U+1C00-U+1C4F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.LetterlikeSymbols">
|
||||||
|
<summary>Gets the Letterlike Symbols Unicode block (U+2100-U+214F).</summary>
|
||||||
|
<returns>The Letterlike Symbols Unicode block (U+2100-U+214F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Limbu">
|
||||||
|
<summary>Gets the Limbu Unicode block (U+1900-U+194F).</summary>
|
||||||
|
<returns>The Limbu Unicode block (U+1900-U+194F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Lisu">
|
||||||
|
<summary>Gets the Lisu Unicode block (U+A4D0-U+A4FF).</summary>
|
||||||
|
<returns>The Lisu Unicode block (U+A4D0-U+A4FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Malayalam">
|
||||||
|
<summary>Gets the Malayalam Unicode block (U+0D00-U+0D7F).</summary>
|
||||||
|
<returns>The Malayalam Unicode block (U+0D00-U+0D7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Mandaic">
|
||||||
|
<summary>Gets the Mandaic Unicode block (U+0840-U+085F).</summary>
|
||||||
|
<returns>The Mandaic Unicode block (U+0840-U+085F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MathematicalOperators">
|
||||||
|
<summary>Gets the Mathematical Operators Unicode block (U+2200-U+22FF).</summary>
|
||||||
|
<returns>The Mathematical Operators Unicode block (U+2200-U+22FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MeeteiMayek">
|
||||||
|
<summary>Gets the Meetei Mayek Unicode block (U+ABC0-U+ABFF).</summary>
|
||||||
|
<returns>The Meetei Mayek Unicode block (U+ABC0-U+ABFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MeeteiMayekExtensions">
|
||||||
|
<summary>Gets the Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF).</summary>
|
||||||
|
<returns>The Meetei Mayek Extensions Unicode block (U+AAE0-U+AAFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MiscellaneousMathematicalSymbolsA">
|
||||||
|
<summary>Gets the Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF).</summary>
|
||||||
|
<returns>The Miscellaneous Mathematical Symbols-A Unicode block (U+27C0-U+27EF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MiscellaneousMathematicalSymbolsB">
|
||||||
|
<summary>Gets the Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF).</summary>
|
||||||
|
<returns>The Miscellaneous Mathematical Symbols-B Unicode block (U+2980-U+29FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MiscellaneousSymbols">
|
||||||
|
<summary>Gets the Miscellaneous Symbols Unicode block (U+2600-U+26FF).</summary>
|
||||||
|
<returns>The Miscellaneous Symbols Unicode block (U+2600-U+26FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MiscellaneousSymbolsandArrows">
|
||||||
|
<summary>Gets the Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF).</summary>
|
||||||
|
<returns>The Miscellaneous Symbols and Arrows Unicode block (U+2B00-U+2BFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MiscellaneousTechnical">
|
||||||
|
<summary>Gets the Miscellaneous Technical Unicode block (U+2300-U+23FF).</summary>
|
||||||
|
<returns>The Miscellaneous Technical Unicode block (U+2300-U+23FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.ModifierToneLetters">
|
||||||
|
<summary>Gets the Modifier Tone Letters Unicode block (U+A700-U+A71F).</summary>
|
||||||
|
<returns>The Modifier Tone Letters Unicode block (U+A700-U+A71F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Mongolian">
|
||||||
|
<summary>Gets the Mongolian Unicode block (U+1800-U+18AF).</summary>
|
||||||
|
<returns>The Mongolian Unicode block (U+1800-U+18AF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Myanmar">
|
||||||
|
<summary>Gets the Myanmar Unicode block (U+1000-U+109F).</summary>
|
||||||
|
<returns>The Myanmar Unicode block (U+1000-U+109F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MyanmarExtendedA">
|
||||||
|
<summary>Gets the Myanmar Extended-A Unicode block (U+AA60-U+AA7F).</summary>
|
||||||
|
<returns>The Myanmar Extended-A Unicode block (U+AA60-U+AA7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.MyanmarExtendedB">
|
||||||
|
<summary>Gets the Myanmar Extended-B Unicode block (U+A9E0-U+A9FF).</summary>
|
||||||
|
<returns>The Myanmar Extended-B Unicode block (U+A9E0-U+A9FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.NewTaiLue">
|
||||||
|
<summary>Gets the New Tai Lue Unicode block (U+1980-U+19DF).</summary>
|
||||||
|
<returns>The New Tai Lue Unicode block (U+1980-U+19DF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.NKo">
|
||||||
|
<summary>Gets the NKo Unicode block (U+07C0-U+07FF).</summary>
|
||||||
|
<returns>The NKo Unicode block (U+07C0-U+07FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.None">
|
||||||
|
<summary>Gets an empty Unicode range.</summary>
|
||||||
|
<returns>A Unicode range with no elements.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.NumberForms">
|
||||||
|
<summary>Gets the Number Forms Unicode block (U+2150-U+218F).</summary>
|
||||||
|
<returns>The Number Forms Unicode block (U+2150-U+218F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Ogham">
|
||||||
|
<summary>Gets the Ogham Unicode block (U+1680-U+169F).</summary>
|
||||||
|
<returns>The Ogham Unicode block (U+1680-U+169F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.OlChiki">
|
||||||
|
<summary>Gets the Ol Chiki Unicode block (U+1C50-U+1C7F).</summary>
|
||||||
|
<returns>The Ol Chiki Unicode block (U+1C50-U+1C7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.OpticalCharacterRecognition">
|
||||||
|
<summary>Gets the Optical Character Recognition Unicode block (U+2440-U+245F).</summary>
|
||||||
|
<returns>The Optical Character Recognition Unicode block (U+2440-U+245F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Oriya">
|
||||||
|
<summary>Gets the Oriya Unicode block (U+0B00-U+0B7F).</summary>
|
||||||
|
<returns>The Oriya Unicode block (U+0B00-U+0B7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Phagspa">
|
||||||
|
<summary>Gets the Phags-pa Unicode block (U+A840-U+A87F).</summary>
|
||||||
|
<returns>The Phags-pa Unicode block (U+A840-U+A87F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.PhoneticExtensions">
|
||||||
|
<summary>Gets the Phonetic Extensions Unicode block (U+1D00-U+1D7F).</summary>
|
||||||
|
<returns>The Phonetic Extensions Unicode block (U+1D00-U+1D7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.PhoneticExtensionsSupplement">
|
||||||
|
<summary>Gets the Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF).</summary>
|
||||||
|
<returns>The Phonetic Extensions Supplement Unicode block (U+1D80-U+1DBF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Rejang">
|
||||||
|
<summary>Gets the Rejang Unicode block (U+A930-U+A95F).</summary>
|
||||||
|
<returns>The Rejang Unicode block (U+A930-U+A95F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Runic">
|
||||||
|
<summary>Gets the Runic Unicode block (U+16A0-U+16FF).</summary>
|
||||||
|
<returns>The Runic Unicode block (U+16A0-U+16FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Samaritan">
|
||||||
|
<summary>Gets the Samaritan Unicode block (U+0800-U+083F).</summary>
|
||||||
|
<returns>The Samaritan Unicode block (U+0800-U+083F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Saurashtra">
|
||||||
|
<summary>Gets the Saurashtra Unicode block (U+A880-U+A8DF).</summary>
|
||||||
|
<returns>The Saurashtra Unicode block (U+A880-U+A8DF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Sinhala">
|
||||||
|
<summary>Gets the Sinhala Unicode block (U+0D80-U+0DFF).</summary>
|
||||||
|
<returns>The Sinhala Unicode block (U+0D80-U+0DFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SmallFormVariants">
|
||||||
|
<summary>Gets the Small Form Variants Unicode block (U+FE50-U+FE6F).</summary>
|
||||||
|
<returns>The Small Form Variants Unicode block (U+FE50-U+FE6F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SpacingModifierLetters">
|
||||||
|
<summary>Gets the Spacing Modifier Letters Unicode block (U+02B0-U+02FF).</summary>
|
||||||
|
<returns>The Spacing Modifier Letters Unicode block (U+02B0-U+02FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Specials">
|
||||||
|
<summary>Gets the Specials Unicode block (U+FFF0-U+FFFF).</summary>
|
||||||
|
<returns>The Specials Unicode block (U+FFF0-U+FFFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Sundanese">
|
||||||
|
<summary>Gets the Sundanese Unicode block (U+1B80-U+1BBF).</summary>
|
||||||
|
<returns>The Sundanese Unicode block (U+1B80-U+1BBF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SundaneseSupplement">
|
||||||
|
<summary>Gets the Sundanese Supplement Unicode block (U+1CC0-U+1CCF).</summary>
|
||||||
|
<returns>The Sundanese Supplement Unicode block (U+1CC0-U+1CCF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SuperscriptsandSubscripts">
|
||||||
|
<summary>Gets the Superscripts and Subscripts Unicode block (U+2070-U+209F).</summary>
|
||||||
|
<returns>The Superscripts and Subscripts Unicode block (U+2070-U+209F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SupplementalArrowsA">
|
||||||
|
<summary>Gets the Supplemental Arrows-A Unicode block (U+27F0-U+27FF).</summary>
|
||||||
|
<returns>The Supplemental Arrows-A Unicode block (U+27F0-U+27FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SupplementalArrowsB">
|
||||||
|
<summary>Gets the Supplemental Arrows-B Unicode block (U+2900-U+297F).</summary>
|
||||||
|
<returns>The Supplemental Arrows-B Unicode block (U+2900-U+297F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SupplementalMathematicalOperators">
|
||||||
|
<summary>Gets the Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF).</summary>
|
||||||
|
<returns>The Supplemental Mathematical Operators Unicode block (U+2A00-U+2AFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SupplementalPunctuation">
|
||||||
|
<summary>Gets the Supplemental Punctuation Unicode block (U+2E00-U+2E7F).</summary>
|
||||||
|
<returns>The Supplemental Punctuation Unicode block (U+2E00-U+2E7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SylotiNagri">
|
||||||
|
<summary>Gets the Syloti Nagri Unicode block (U+A800-U+A82F).</summary>
|
||||||
|
<returns>The Syloti Nagri Unicode block (U+A800-U+A82F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Syriac">
|
||||||
|
<summary>Gets the Syriac Unicode block (U+0700-U+074F).</summary>
|
||||||
|
<returns>The Syriac Unicode block (U+0700-U+074F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.SyriacSupplement">
|
||||||
|
<summary>A <see cref="T:System.Text.Unicode.UnicodeRange" /> corresponding to the 'Syriac Supplement' Unicode block (U+0860..U+086F).</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Tagalog">
|
||||||
|
<summary>Gets the Tagalog Unicode block (U+1700-U+171F).</summary>
|
||||||
|
<returns>The Tagalog Unicode block (U+1700-U+171F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Tagbanwa">
|
||||||
|
<summary>Gets the Tagbanwa Unicode block (U+1760-U+177F).</summary>
|
||||||
|
<returns>The Tagbanwa Unicode block (U+1760-U+177F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.TaiLe">
|
||||||
|
<summary>Gets the Tai Le Unicode block (U+1950-U+197F).</summary>
|
||||||
|
<returns>The Tai Le Unicode block (U+1950-U+197F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.TaiTham">
|
||||||
|
<summary>Gets the Tai Tham Unicode block (U+1A20-U+1AAF).</summary>
|
||||||
|
<returns>The Tai Tham Unicode block (U+1A20-U+1AAF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.TaiViet">
|
||||||
|
<summary>Gets the Tai Viet Unicode block (U+AA80-U+AADF).</summary>
|
||||||
|
<returns>The Tai Viet Unicode block (U+AA80-U+AADF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Tamil">
|
||||||
|
<summary>Gets the Tamil Unicode block (U+0B80-U+0BFF).</summary>
|
||||||
|
<returns>The Tamil Unicode block (U+0B82-U+0BFA).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Telugu">
|
||||||
|
<summary>Gets the Telugu Unicode block (U+0C00-U+0C7F).</summary>
|
||||||
|
<returns>The Telugu Unicode block (U+0C00-U+0C7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Thaana">
|
||||||
|
<summary>Gets the Thaana Unicode block (U+0780-U+07BF).</summary>
|
||||||
|
<returns>The Thaana Unicode block (U+0780-U+07BF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Thai">
|
||||||
|
<summary>Gets the Thai Unicode block (U+0E00-U+0E7F).</summary>
|
||||||
|
<returns>The Thai Unicode block (U+0E00-U+0E7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Tibetan">
|
||||||
|
<summary>Gets the Tibetan Unicode block (U+0F00-U+0FFF).</summary>
|
||||||
|
<returns>The Tibetan Unicode block (U+0F00-U+0FFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Tifinagh">
|
||||||
|
<summary>Gets the Tifinagh Unicode block (U+2D30-U+2D7F).</summary>
|
||||||
|
<returns>The Tifinagh Unicode block (U+2D30-U+2D7F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.UnifiedCanadianAboriginalSyllabics">
|
||||||
|
<summary>Gets the Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F).</summary>
|
||||||
|
<returns>The Unified Canadian Aboriginal Syllabics Unicode block (U+1400-U+167F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.UnifiedCanadianAboriginalSyllabicsExtended">
|
||||||
|
<summary>Gets the Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF).</summary>
|
||||||
|
<returns>The Unified Canadian Aboriginal Syllabics Extended Unicode block (U+18B0-U+18FF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.Vai">
|
||||||
|
<summary>Gets the Vai Unicode block (U+A500-U+A63F).</summary>
|
||||||
|
<returns>The Vai Unicode block (U+A500-U+A63F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.VariationSelectors">
|
||||||
|
<summary>Gets the Variation Selectors Unicode block (U+FE00-U+FE0F).</summary>
|
||||||
|
<returns>The Variation Selectors Unicode block (U+FE00-U+FE0F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.VedicExtensions">
|
||||||
|
<summary>Gets the Vedic Extensions Unicode block (U+1CD0-U+1CFF).</summary>
|
||||||
|
<returns>The Vedic Extensions Unicode block (U+1CD0-U+1CFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.VerticalForms">
|
||||||
|
<summary>Gets the Vertical Forms Unicode block (U+FE10-U+FE1F).</summary>
|
||||||
|
<returns>The Vertical Forms Unicode block (U+FE10-U+FE1F).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.YijingHexagramSymbols">
|
||||||
|
<summary>Gets the Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF).</summary>
|
||||||
|
<returns>The Yijing Hexagram Symbols Unicode block (U+4DC0-U+4DFF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.YiRadicals">
|
||||||
|
<summary>Gets the Yi Radicals Unicode block (U+A490-U+A4CF).</summary>
|
||||||
|
<returns>The Yi Radicals Unicode block (U+A490-U+A4CF).</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Text.Unicode.UnicodeRanges.YiSyllables">
|
||||||
|
<summary>Gets the Yi Syllables Unicode block (U+A000-U+A48F).</summary>
|
||||||
|
<returns>The Yi Syllables Unicode block (U+A000-U+A48F).</returns>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/System.Text.Json.dll
Normal file
BIN
bin/Debug/System.Text.Json.dll
Normal file
Binary file not shown.
5785
bin/Debug/System.Text.Json.xml
Normal file
5785
bin/Debug/System.Text.Json.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/System.Threading.Channels.dll
Normal file
BIN
bin/Debug/System.Threading.Channels.dll
Normal file
Binary file not shown.
243
bin/Debug/System.Threading.Channels.xml
Normal file
243
bin/Debug/System.Threading.Channels.xml
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<doc>
|
||||||
|
<assembly>
|
||||||
|
<name>System.Threading.Channels</name>
|
||||||
|
</assembly>
|
||||||
|
<members>
|
||||||
|
<member name="T:System.Threading.Channels.BoundedChannelFullMode">
|
||||||
|
<summary>Specifies the behavior to use when writing to a bounded channel that is already full.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Channels.BoundedChannelFullMode.DropNewest">
|
||||||
|
<summary>Removes and ignores the newest item in the channel in order to make room for the item being written.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Channels.BoundedChannelFullMode.DropOldest">
|
||||||
|
<summary>Removes and ignores the oldest item in the channel in order to make room for the item being written.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Channels.BoundedChannelFullMode.DropWrite">
|
||||||
|
<summary>Drops the item being written.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:System.Threading.Channels.BoundedChannelFullMode.Wait">
|
||||||
|
<summary>Waits for space to be available in order to complete the write operation.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.BoundedChannelOptions">
|
||||||
|
<summary>Provides options that control the behavior of bounded <see cref="T:System.Threading.Channels.Channel`1" /> instances.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.BoundedChannelOptions.#ctor(System.Int32)">
|
||||||
|
<summary>Initializes the options.</summary>
|
||||||
|
<param name="capacity">The maximum number of items the bounded channel may store.</param>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.BoundedChannelOptions.Capacity">
|
||||||
|
<summary>Gets or sets the maximum number of items the bounded channel may store.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.BoundedChannelOptions.FullMode">
|
||||||
|
<summary>Gets or sets the behavior incurred by write operations when the channel is full.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.Channel">
|
||||||
|
<summary>Provides static methods for creating channels.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel.CreateBounded``1(System.Int32)">
|
||||||
|
<summary>Creates a channel with the specified maximum capacity.</summary>
|
||||||
|
<param name="capacity">The maximum number of items the channel may store.</param>
|
||||||
|
<typeparam name="T">Specifies the type of data in the channel.</typeparam>
|
||||||
|
<returns>The created channel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel.CreateBounded``1(System.Threading.Channels.BoundedChannelOptions)">
|
||||||
|
<summary>Creates a channel with the specified maximum capacity.</summary>
|
||||||
|
<param name="options">Options that guide the behavior of the channel.</param>
|
||||||
|
<typeparam name="T">Specifies the type of data in the channel.</typeparam>
|
||||||
|
<returns>The created channel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel.CreateBounded``1(System.Threading.Channels.BoundedChannelOptions,System.Action{``0})">
|
||||||
|
<summary>Creates a channel subject to the provided options.</summary>
|
||||||
|
<param name="options">Options that guide the behavior of the channel.</param>
|
||||||
|
<param name="itemDropped">Delegate that will be called when item is being dropped from channel. See <see cref="T:System.Threading.Channels.BoundedChannelFullMode" />.</param>
|
||||||
|
<typeparam name="T">Specifies the type of data in the channel.</typeparam>
|
||||||
|
<returns>The created channel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel.CreateUnbounded``1">
|
||||||
|
<summary>Creates an unbounded channel usable by any number of readers and writers concurrently.</summary>
|
||||||
|
<typeparam name="T">The type of data in the channel.</typeparam>
|
||||||
|
<returns>The created channel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel.CreateUnbounded``1(System.Threading.Channels.UnboundedChannelOptions)">
|
||||||
|
<summary>Creates an unbounded channel subject to the provided options.</summary>
|
||||||
|
<param name="options">Options that guide the behavior of the channel.</param>
|
||||||
|
<typeparam name="T">Specifies the type of data in the channel.</typeparam>
|
||||||
|
<returns>The created channel.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.Channel`1">
|
||||||
|
<summary>Provides a base class for channels that support reading and writing elements of type <typeparamref name="T" />.</summary>
|
||||||
|
<typeparam name="T">Specifies the type of data readable and writable in the channel.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel`1.#ctor">
|
||||||
|
<summary>Initializes an instance of the <see cref="T:System.Threading.Channels.Channel`1" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.Channel`2">
|
||||||
|
<summary>Provides a base class for channels that support reading elements of type <typeparamref name="TRead" /> and writing elements of type <typeparamref name="TWrite" />.</summary>
|
||||||
|
<typeparam name="TWrite">Specifies the type of data that may be written to the channel.</typeparam>
|
||||||
|
<typeparam name="TRead">Specifies the type of data that may be read from the channel.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel`2.#ctor">
|
||||||
|
<summary>Initializes an instance of the <see cref="T:System.Threading.Channels.Channel`2" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel`2.op_Implicit(System.Threading.Channels.Channel{`0,`1})~System.Threading.Channels.ChannelReader{`1}">
|
||||||
|
<summary>Implicit cast from a <see cref="T:System.Threading.Channels.Channel`2" /> to its readable half.</summary>
|
||||||
|
<param name="channel">The <see cref="T:System.Threading.Channels.Channel`2" /> being cast.</param>
|
||||||
|
<returns>The readable half.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.Channel`2.op_Implicit(System.Threading.Channels.Channel{`0,`1})~System.Threading.Channels.ChannelWriter{`0}">
|
||||||
|
<summary>Implicit cast from a <see cref="T:System.Threading.Channels.Channel`2" /> to its writable half.</summary>
|
||||||
|
<param name="channel">The <see cref="T:System.Threading.Channels.Channel`2" /> being cast.</param>
|
||||||
|
<returns>The writable half.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.Channel`2.Reader">
|
||||||
|
<summary>Gets the readable half of this channel.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.Channel`2.Writer">
|
||||||
|
<summary>Gets the writable half of this channel.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.ChannelClosedException">
|
||||||
|
<summary>Exception thrown when a channel is used after it's been closed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelClosedException.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Threading.Channels.ChannelClosedException" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelClosedException.#ctor(System.Exception)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Threading.Channels.ChannelClosedException" /> class.</summary>
|
||||||
|
<param name="innerException">The exception that is the cause of this exception.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelClosedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Threading.Channels.ChannelClosedException" /> class with serialized data.</summary>
|
||||||
|
<param name="info">The object that holds the serialized object data.</param>
|
||||||
|
<param name="context">The contextual information about the source or destination.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelClosedException.#ctor(System.String)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Threading.Channels.ChannelClosedException" /> class.</summary>
|
||||||
|
<param name="message">The message that describes the error.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelClosedException.#ctor(System.String,System.Exception)">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Threading.Channels.ChannelClosedException" /> class.</summary>
|
||||||
|
<param name="message">The message that describes the error.</param>
|
||||||
|
<param name="innerException">The exception that is the cause of this exception.</param>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.ChannelOptions">
|
||||||
|
<summary>Provides options that control the behavior of channel instances.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelOptions.#ctor">
|
||||||
|
<summary>Initializes an instance of the <see cref="T:System.Threading.Channels.ChannelOptions" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelOptions.AllowSynchronousContinuations">
|
||||||
|
<summary>
|
||||||
|
<see langword="true" /> if operations performed on a channel may synchronously invoke continuations subscribed to
|
||||||
|
notifications of pending async operations; <see langword="false" /> if all continuations should be invoked asynchronously.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelOptions.SingleReader">
|
||||||
|
<summary>
|
||||||
|
<see langword="true" /> readers from the channel guarantee that there will only ever be at most one read operation at a time;
|
||||||
|
<see langword="false" /> if no such constraint is guaranteed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelOptions.SingleWriter">
|
||||||
|
<summary>
|
||||||
|
<see langword="true" /> if writers to the channel guarantee that there will only ever be at most one write operation
|
||||||
|
at a time; <see langword="false" /> if no such constraint is guaranteed.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.ChannelReader`1">
|
||||||
|
<summary>Provides a base class for reading from a channel.</summary>
|
||||||
|
<typeparam name="T">Specifies the type of data that may be read from the channel.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelReader`1.#ctor">
|
||||||
|
<summary>Initializes an instance of the <see cref="T:System.Threading.Channels.ChannelReader`1" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelReader`1.ReadAllAsync(System.Threading.CancellationToken)">
|
||||||
|
<summary>Creates an <see cref="T:System.Collections.Generic.IAsyncEnumerable`1" /> that enables reading all of the data from the channel.</summary>
|
||||||
|
<param name="cancellationToken">The cancellation token to use to cancel the enumeration. If data is immediately ready for reading, then that data may be yielded even after cancellation has been requested.</param>
|
||||||
|
<returns>The created async enumerable.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelReader`1.ReadAsync(System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously reads an item from the channel.</summary>
|
||||||
|
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken" /> used to cancel the read operation.</param>
|
||||||
|
<returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that represents the asynchronous read operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelReader`1.TryPeek(`0@)">
|
||||||
|
<summary>Attempts to peek at an item from the channel.</summary>
|
||||||
|
<param name="item">The peeked item, or a default value if no item could be peeked.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if an item was read; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelReader`1.TryRead(`0@)">
|
||||||
|
<summary>Attempts to read an item from the channel.</summary>
|
||||||
|
<param name="item">The read item, or a default value if no item could be read.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if an item was read; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelReader`1.WaitToReadAsync(System.Threading.CancellationToken)">
|
||||||
|
<summary>Returns a <see cref="T:System.Threading.Tasks.ValueTask`1" /> that will complete when data is available to read.</summary>
|
||||||
|
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken" /> used to cancel the wait operation.</param>
|
||||||
|
<returns>
|
||||||
|
<para>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that will complete with a <see langword="true" /> result when data is available to read
|
||||||
|
or with a <see langword="false" /> result when no further data will ever be available to be read due to the channel completing successfully.</para>
|
||||||
|
<para>If the channel completes with an exception, the task will also complete with an exception.</para>
|
||||||
|
</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelReader`1.CanCount">
|
||||||
|
<summary>Gets a value that indicates whether <see cref="P:System.Threading.Channels.ChannelReader`1.Count" /> is available for use on this <see cref="T:System.Threading.Channels.ChannelReader`1" /> instance.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelReader`1.CanPeek">
|
||||||
|
<summary>Gets a value that indicates whether <see cref="M:System.Threading.Channels.ChannelReader`1.TryPeek(`0@)" /> is available for use on this <see cref="T:System.Threading.Channels.ChannelReader`1" /> instance.</summary>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if peeking is supported by this channel instance; <see langword="false" /> otherwise.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelReader`1.Completion">
|
||||||
|
<summary>Gets a <see cref="T:System.Threading.Tasks.Task" /> that completes when no more data will ever
|
||||||
|
be available to be read from this channel.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:System.Threading.Channels.ChannelReader`1.Count">
|
||||||
|
<summary>Gets the current number of items available from this channel reader.</summary>
|
||||||
|
<exception cref="T:System.NotSupportedException">Counting is not supported on this instance.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.ChannelWriter`1">
|
||||||
|
<summary>Provides a base class for writing to a channel.</summary>
|
||||||
|
<typeparam name="T">Specifies the type of data that may be written to the channel.</typeparam>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelWriter`1.#ctor">
|
||||||
|
<summary>Initializes an instance of the <see cref="T:System.Threading.Channels.ChannelWriter`1" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelWriter`1.Complete(System.Exception)">
|
||||||
|
<summary>Mark the channel as being complete, meaning no more items will be written to it.</summary>
|
||||||
|
<param name="error">Optional Exception indicating a failure that's causing the channel to complete.</param>
|
||||||
|
<exception cref="T:System.InvalidOperationException">The channel has already been marked as complete.</exception>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelWriter`1.TryComplete(System.Exception)">
|
||||||
|
<summary>Attempts to mark the channel as being completed, meaning no more data will be written to it.</summary>
|
||||||
|
<param name="error">An <see cref="T:System.Exception" /> indicating the failure causing no more data to be written, or null for success.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if this operation successfully completes the channel; otherwise, <see langword="false" /> if the channel could not be marked for completion,
|
||||||
|
for example due to having already been marked as such, or due to not supporting completion.
|
||||||
|
.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelWriter`1.TryWrite(`0)">
|
||||||
|
<summary>Attempts to write the specified item to the channel.</summary>
|
||||||
|
<param name="item">The item to write.</param>
|
||||||
|
<returns>
|
||||||
|
<see langword="true" /> if the item was written; otherwise, <see langword="false" />.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelWriter`1.WaitToWriteAsync(System.Threading.CancellationToken)">
|
||||||
|
<summary>Returns a <see cref="T:System.Threading.Tasks.ValueTask`1" /> that will complete when space is available to write an item.</summary>
|
||||||
|
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken" /> used to cancel the wait operation.</param>
|
||||||
|
<returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that will complete with a <see langword="true" /> result when space is available to write an item
|
||||||
|
or with a <see langword="false" /> result when no further writing will be permitted.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.ChannelWriter`1.WriteAsync(`0,System.Threading.CancellationToken)">
|
||||||
|
<summary>Asynchronously writes an item to the channel.</summary>
|
||||||
|
<param name="item">The value to write to the channel.</param>
|
||||||
|
<param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken" /> used to cancel the write operation.</param>
|
||||||
|
<returns>A <see cref="T:System.Threading.Tasks.ValueTask" /> that represents the asynchronous write operation.</returns>
|
||||||
|
</member>
|
||||||
|
<member name="T:System.Threading.Channels.UnboundedChannelOptions">
|
||||||
|
<summary>Provides options that control the behavior of unbounded <see cref="T:System.Threading.Channels.Channel`1" /> instances.</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:System.Threading.Channels.UnboundedChannelOptions.#ctor">
|
||||||
|
<summary>Initializes a new instance of the <see cref="T:System.Threading.Channels.UnboundedChannelOptions" /> class.</summary>
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</doc>
|
||||||
BIN
bin/Debug/System.Threading.Tasks.Extensions.dll
Normal file
BIN
bin/Debug/System.Threading.Tasks.Extensions.dll
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user