commit bf27922d9b864e038beebe0443f4174267f8a3b5
Author: XuJiacheng
Date: Thu Dec 11 13:49:44 2025 +0800
初始化
diff --git a/.vs/NT2406_Tool.vbproj.dtbcache.json b/.vs/NT2406_Tool.vbproj.dtbcache.json
new file mode 100644
index 0000000..c645624
--- /dev/null
+++ b/.vs/NT2406_Tool.vbproj.dtbcache.json
@@ -0,0 +1 @@
+{"RootPath":"E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02","ProjectFileName":"NT2406_Tool.vbproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Form1.vb"},{"SourceFile":"Form1.Designer.vb"},{"SourceFile":"My Project\\AssemblyInfo.vb"},{"SourceFile":"My Project\\Application.Designer.vb"},{"SourceFile":"My Project\\Resources.Designer.vb"},{"SourceFile":"My Project\\Settings.Designer.vb"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.vb"}],"References":[{"Reference":"D:\\Program Files (x86)\\FlexCell Technologies\\FlexCell.NET4\\Bin\\FlexCell.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02\\bin\\Debug\\NT2406_Tool.exe","OutputItemRelativePath":"NT2406_Tool.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}
\ No newline at end of file
diff --git a/.vs/NT2406_Tool/FileContentIndex/4dbc71fa-e07f-4f77-8df2-6e3aeae65a35.vsidx b/.vs/NT2406_Tool/FileContentIndex/4dbc71fa-e07f-4f77-8df2-6e3aeae65a35.vsidx
new file mode 100644
index 0000000..ddabd03
Binary files /dev/null and b/.vs/NT2406_Tool/FileContentIndex/4dbc71fa-e07f-4f77-8df2-6e3aeae65a35.vsidx differ
diff --git a/.vs/NT2406_Tool/v16/.suo b/.vs/NT2406_Tool/v16/.suo
new file mode 100644
index 0000000..714acd4
Binary files /dev/null and b/.vs/NT2406_Tool/v16/.suo differ
diff --git a/.vs/NT2406_Tool/v17/.suo b/.vs/NT2406_Tool/v17/.suo
new file mode 100644
index 0000000..63d2df0
Binary files /dev/null and b/.vs/NT2406_Tool/v17/.suo differ
diff --git a/.vs/NT2406_Tool/v17/DocumentLayout.backup.json b/.vs/NT2406_Tool/v17/DocumentLayout.backup.json
new file mode 100644
index 0000000..e38c91b
--- /dev/null
+++ b/.vs/NT2406_Tool/v17/DocumentLayout.backup.json
@@ -0,0 +1,59 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}",
+ "RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form",
+ "RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 223,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "Form1.vb",
+ "DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
+ "RelativeDocumentMoniker": "Form1.vb",
+ "ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
+ "RelativeToolTip": "Form1.vb",
+ "ViewState": "AgIAAF4DAAAAAAAAAADwv4IDAABEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
+ "WhenOpened": "2024-06-19T06:39:08.601Z",
+ "EditorCaption": ""
+ }
+ ]
+ },
+ {
+ "DockedWidth": 177,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "Form1.vb [\u8BBE\u8BA1]",
+ "DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
+ "RelativeDocumentMoniker": "Form1.vb",
+ "ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb [\u8BBE\u8BA1]",
+ "RelativeToolTip": "Form1.vb [\u8BBE\u8BA1]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
+ "WhenOpened": "2024-08-31T08:53:26.538Z",
+ "EditorCaption": " [\u8BBE\u8BA1]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/NT2406_Tool/v17/DocumentLayout.json b/.vs/NT2406_Tool/v17/DocumentLayout.json
new file mode 100644
index 0000000..e38c91b
--- /dev/null
+++ b/.vs/NT2406_Tool/v17/DocumentLayout.json
@@ -0,0 +1,59 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\",
+ "Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}",
+ "RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|e:\\my_code\\visual_basic\\nt2406_tool\\nt2406_tool_v02_20241001\\form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form",
+ "RelativeMoniker": "D:0:0:{B4DB404F-4536-481D-99E2-D1F44A79B55B}|NT2406_Tool.vbproj|solutionrelative:form1.vb||{2C015C70-C72C-11D0-88C3-00A0C9110049}|Form"
+ }
+ ],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 223,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 0,
+ "Title": "Form1.vb",
+ "DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
+ "RelativeDocumentMoniker": "Form1.vb",
+ "ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
+ "RelativeToolTip": "Form1.vb",
+ "ViewState": "AgIAAF4DAAAAAAAAAADwv4IDAABEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
+ "WhenOpened": "2024-06-19T06:39:08.601Z",
+ "EditorCaption": ""
+ }
+ ]
+ },
+ {
+ "DockedWidth": 177,
+ "SelectedChildIndex": 0,
+ "Children": [
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "Form1.vb [\u8BBE\u8BA1]",
+ "DocumentMoniker": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb",
+ "RelativeDocumentMoniker": "Form1.vb",
+ "ToolTip": "E:\\My_Code\\Visual_Basic\\NT2406_Tool\\NT2406_Tool_V02_20241001\\Form1.vb [\u8BBE\u8BA1]",
+ "RelativeToolTip": "Form1.vb [\u8BBE\u8BA1]",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003361|",
+ "WhenOpened": "2024-08-31T08:53:26.538Z",
+ "EditorCaption": " [\u8BBE\u8BA1]"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vs/SetKernelParameter.vbproj.dtbcache.json b/.vs/SetKernelParameter.vbproj.dtbcache.json
new file mode 100644
index 0000000..5c87b69
--- /dev/null
+++ b/.vs/SetKernelParameter.vbproj.dtbcache.json
@@ -0,0 +1 @@
+{"RootPath":"H:\\MyCode\\Visual_Basic\\BLV-SetKernelParameter\\SetKernelParameter","ProjectFileName":"SetKernelParameter.vbproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Form1.vb"},{"SourceFile":"Form1.Designer.vb"},{"SourceFile":"My Project\\AssemblyInfo.vb"},{"SourceFile":"My Project\\Application.Designer.vb"},{"SourceFile":"My Project\\Resources.Designer.vb"},{"SourceFile":"My Project\\Settings.Designer.vb"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.vb"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"H:\\MyCode\\Visual_Basic\\BLV-SetKernelParameter\\SetKernelParameter\\bin\\Debug\\SetKernelParameter.exe","OutputItemRelativePath":"SetKernelParameter.exe"},{"OutputItemFullPath":"H:\\MyCode\\Visual_Basic\\BLV-SetKernelParameter\\SetKernelParameter\\bin\\Debug\\SetKernelParameter.pdb","OutputItemRelativePath":"SetKernelParameter.pdb"}],"CopyToOutputEntries":[]}
\ No newline at end of file
diff --git a/.vs/SetKernelParameter/FileContentIndex/5647198e-c08b-45c9-b74d-36306abe0afd.vsidx b/.vs/SetKernelParameter/FileContentIndex/5647198e-c08b-45c9-b74d-36306abe0afd.vsidx
new file mode 100644
index 0000000..ca95726
Binary files /dev/null and b/.vs/SetKernelParameter/FileContentIndex/5647198e-c08b-45c9-b74d-36306abe0afd.vsidx differ
diff --git a/.vs/SetKernelParameter/FileContentIndex/7d094cc8-e32f-4fb4-a374-f9c6639dd68c.vsidx b/.vs/SetKernelParameter/FileContentIndex/7d094cc8-e32f-4fb4-a374-f9c6639dd68c.vsidx
new file mode 100644
index 0000000..ef98b68
Binary files /dev/null and b/.vs/SetKernelParameter/FileContentIndex/7d094cc8-e32f-4fb4-a374-f9c6639dd68c.vsidx differ
diff --git a/App.config b/App.config
new file mode 100644
index 0000000..72e22e5
--- /dev/null
+++ b/App.config
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
\ No newline at end of file
diff --git a/Database/Base/ColumnSchema.vb b/Database/Base/ColumnSchema.vb
new file mode 100644
index 0000000..d018547
--- /dev/null
+++ b/Database/Base/ColumnSchema.vb
@@ -0,0 +1,15 @@
+
+Namespace Database.Base
+ '''
+ ''' Contains the schema of a single DB column.
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Base/CommandHelpers.vb b/Database/Base/CommandHelpers.vb
new file mode 100644
index 0000000..4e586b4
--- /dev/null
+++ b/Database/Base/CommandHelpers.vb
@@ -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
+
+ '''
+ ''' 清空数据表
+ '''
+ ''' 数据表名
+ '''
+ 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
+
+ '''
+ ''' 删除数据表
+ '''
+ ''' 数据表名
+ '''
+ 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
+
+ '''
+ ''' 创建表,同时复制基础表数据(不包含原表索引与主键)
+ ''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+ '''
+ ''' 表名
+ ''' 基础表名
+ '''
+ Public Overridable Function CreateCopyTable(tableName As String, baseTableName As String) As String
+ Return $"create table `{tableName}` as select * from `{baseTableName}`;"
+ End Function
+
+ '''
+ ''' 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
+ ''' 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+ '''
+ ''' 表名
+ ''' 基础表名
+ '''
+ 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
+
+
+ '''
+ ''' 复制基础表数据到新表中
+ '''
+ ''' 表名
+ ''' 基础表名
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Base/DatabaseData.vb b/Database/Base/DatabaseData.vb
new file mode 100644
index 0000000..96871cc
--- /dev/null
+++ b/Database/Base/DatabaseData.vb
@@ -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
+
+ '''
+ ''' 列名
+ '''
+ '''
+ Public Property ColumnName() As String
+
+ '''
+ ''' 当前值
+ '''
+ '''
+ Public Property Value() As String
+
+
+ '''
+ ''' 默认值
+ '''
+ '''
+ Public Property DefaultValue() As String
+
+ '''
+ ''' 数据类型
+ '''
+ '''
+ Public Property DataType() As TypeEnum
+
+ '''
+ ''' 数据类型长度
+ '''
+ '''
+ Public Property DataTypeLength() As Integer
+
+ '''
+ ''' 是否允许为空
+ '''
+ '''
+ Public Property IsNull() As Boolean = True
+
+ '''
+ ''' 是否自动增长
+ '''
+ '''
+ Public Property IsAutoIncrement() As Boolean
+
+ '''
+ ''' 是否为主键
+ '''
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Base/DatabaseSchema.vb b/Database/Base/DatabaseSchema.vb
new file mode 100644
index 0000000..0e2970f
--- /dev/null
+++ b/Database/Base/DatabaseSchema.vb
@@ -0,0 +1,12 @@
+Imports System.Collections.Generic
+
+Namespace Database.Base
+
+ '''
+ ''' Contains the entire database schema
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Base/ForeignKeySchema.vb b/Database/Base/ForeignKeySchema.vb
new file mode 100644
index 0000000..f0a47c6
--- /dev/null
+++ b/Database/Base/ForeignKeySchema.vb
@@ -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
\ No newline at end of file
diff --git a/Database/Base/IndexSchema.vb b/Database/Base/IndexSchema.vb
new file mode 100644
index 0000000..c64c2c1
--- /dev/null
+++ b/Database/Base/IndexSchema.vb
@@ -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
\ No newline at end of file
diff --git a/Database/Base/InsertParams.vb b/Database/Base/InsertParams.vb
new file mode 100644
index 0000000..c7b138a
--- /dev/null
+++ b/Database/Base/InsertParams.vb
@@ -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
\ No newline at end of file
diff --git a/Database/Base/SearchCondition.vb b/Database/Base/SearchCondition.vb
new file mode 100644
index 0000000..f860c87
--- /dev/null
+++ b/Database/Base/SearchCondition.vb
@@ -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
+
+
+ '''
+ ''' 判断列名
+ '''
+ '''
+ Public Property ColName() As String
+
+ '''
+ ''' 判断条件
+ '''
+ '''
+ Public Property Condition() As ConditionType = ConditionType.EqualTo
+
+ '''
+ ''' 判断值
+ '''
+ '''
+ Public Property ColValue() As String
+
+ '''
+ ''' 当前条件与上一个条件的逻辑关系
+ '''
+ '''
+ Public Property LogicPrevious() As LogicType = LogicType.And
+
+ '''
+ ''' 将当前条件转换为字符串,不支持将条件逻辑关系同时转换
+ '''
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Base/SearchParams.vb b/Database/Base/SearchParams.vb
new file mode 100644
index 0000000..96652b4
--- /dev/null
+++ b/Database/Base/SearchParams.vb
@@ -0,0 +1,46 @@
+Namespace Database.Base
+ Public Class SearchParams
+ Enum OrderTypeEnum
+ None
+ Desc
+ Asc
+ End Enum
+
+ '''
+ ''' 查询条件的表名
+ '''
+ '''
+ Public Property TableName() As String
+
+ '''
+ ''' 当IsSearchAllCols = False时,查询返回列名集合
+ '''
+ '''
+ Public Property SearchColNames() As String()
+
+ '''
+ ''' 查询的条件
+ '''
+ '''
+ Public Property SearchCondition() As List(Of SearchCondition)
+
+ '''
+ ''' 排序方式
+ '''
+ '''
+ Public Property OrderType As OrderTypeEnum = OrderTypeEnum.None
+
+ '''
+ ''' 但需要排序时排序列名
+ '''
+ '''
+ Public Property OrderColName() As String
+
+
+ '''
+ ''' 从返回结果提取指定行的内容
+ '''
+ '''
+ Public Property Limit() As Integer = 0
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/Database/Base/TableSchema.vb b/Database/Base/TableSchema.vb
new file mode 100644
index 0000000..b5048b0
--- /dev/null
+++ b/Database/Base/TableSchema.vb
@@ -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
\ No newline at end of file
diff --git a/Database/Base/TriggerBuilder.vb b/Database/Base/TriggerBuilder.vb
new file mode 100644
index 0000000..77eee4d
--- /dev/null
+++ b/Database/Base/TriggerBuilder.vb
@@ -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
\ No newline at end of file
diff --git a/Database/Base/TriggerSchema.vb b/Database/Base/TriggerSchema.vb
new file mode 100644
index 0000000..c53bf19
--- /dev/null
+++ b/Database/Base/TriggerSchema.vb
@@ -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
diff --git a/Database/Base/ViewSchema.vb b/Database/Base/ViewSchema.vb
new file mode 100644
index 0000000..e6b8147
--- /dev/null
+++ b/Database/Base/ViewSchema.vb
@@ -0,0 +1,17 @@
+
+Namespace Database.Base
+ '''
+ ''' Describes a single view schema
+ '''
+ Public Class ViewSchema
+ '''
+ ''' Contains the view name
+ '''
+ Public ViewName As String
+
+ '''
+ ''' Contains the view SQL statement
+ '''
+ Public ViewSql As String
+ End Class
+End NameSpace
\ No newline at end of file
diff --git a/Database/DbCmdHelper.vb b/Database/DbCmdHelper.vb
new file mode 100644
index 0000000..dab21b2
--- /dev/null
+++ b/Database/DbCmdHelper.vb
@@ -0,0 +1,747 @@
+Imports System.Text
+
+
+'''
+''' 数据库语句助手
+''' 时间:2020-12-21
+''' 作者:ML
+''' 版本:1.0
+'''
+''' 注意:添加一条数据库帮助语句时,需要考虑Mysql/Sqlite/Mssql等数据库是否支持命令,不支持则需要在对应帮助类中重写该帮助语句
+''' 注意:Sqlite数据库与大多数据库不相同,DB开头数据库语句大多不适用
+'''
+'''
+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 "访问单数据库连接"
+ '''
+ ''' 查询指定数据表符合条件的所有数据
+ '''
+ ''' 指定表名
+ ''' 查询条件,
+ '''
+ 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
+
+
+ '''
+ ''' 查询表符合条件的所有指定列的数据
+ '''
+ ''' 列名集合,需要返回多列时用','符号分隔列名
+ ''' 表名
+ ''' 条件
+ '''
+ 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
+
+ '''
+ ''' 查询表符合条件的所有指定列的数据
+ '''
+ ''' 表名
+ ''' 条件
+ '''
+ 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
+
+
+ '''
+ ''' 查询指定表包含的内容行数
+ '''
+ ''' 数据表名
+ ''' 查询条件
+ '''
+ Public Overridable Function SearchCount(tableName As String, Optional condition As String = "") As String
+ Return Search("count(*)", tableName, condition)
+ End Function
+
+ '''
+ ''' 查询指定数据表的信息
+ '''
+ ''' 表名
+ '''
+ Public Overridable Function SearchTableInfo(tableName As String) As String
+ Return $"Select * from information_schema.tables where table_name = '{tableName}';"
+ End Function
+
+
+ '''
+ ''' 查询指定数据表是否存在的信息,返回查询当前表在数据库中存在的数量
+ '''
+ ''' 表名
+ '''
+ Public Overridable Function SearchTableExists(tableName As String) As String
+ Return $"Select count(*) from information_schema.tables where table_name = '{tableName}';"
+ End Function
+
+
+ '''
+ ''' 数据表插入一行数据
+ '''
+ ''' 表名
+ ''' 列名字符串
+ ''' 列值字符串
+ '''
+ Public Overridable Function Insert(tableName As String, colNames As String, values As String) As String
+ Return $"Insert into {FiledSuffix}{tableName}{FiledPrefix} ({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($"{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
+
+ '''
+ ''' 数据表插入一行,通过命令参数方式执行时使用
+ '''
+ '''
+ '''
+ '''
+ 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
+
+ '''
+ ''' 数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+ '''
+ ''' 表名
+ ''' 字段列表
+ '''
+ 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
+
+
+ '''
+ ''' 更新指定表数据
+ '''
+ ''' 指定表名
+ ''' 更新字符串
+ '''
+ '''
+ 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
+
+ '''
+ ''' 更新指定表数据
+ '''
+ ''' 指定表名
+ ''' 更新列名与列值键值对
+ ''' 更新列索引条件
+ '''
+ 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
+
+ '''
+ ''' 更新指定数据库中指定表数据,参数名由@{ColName}
+ '''
+ ''' 指定表名
+ ''' 更新列名的集合
+ ''' 更新列索引条件
+ '''
+ 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
+
+ '''
+ ''' 指定数据表增加一列数据
+ '''
+ ''' 表名
+ ''' 列名
+ ''' 列类型
+ ''' 是否允许为空
+ '''
+ 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
+
+ '''
+ ''' 数据表删除一列数据
+ '''
+ ''' 表名
+ ''' 需要删除的列名,仅一列
+ '''
+ 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
+
+ '''
+ ''' 删除指定表多行数据
+ '''
+ ''' 表名
+ ''' 条件
+ '''
+ Public Overridable Function DeleteRows(tableName As String, condition As String) As String
+ Return $"Delete From {FiledSuffix}{tableName}{FiledPrefix} Where {condition};"
+ End Function
+
+ '''
+ ''' 创建数据表
+ '''
+ ''' 表名
+ ''' 创建表的列信息字符串
+ '''
+ Public Overridable Function CreateTable(tableName As String, createStr As String) As String
+ Return $"Create Table {FiledSuffix}{tableName}{FiledPrefix} ( {createStr} );"
+ End Function
+
+ '''
+ ''' 创建数据表,如果存在则不创建
+ '''
+ ''' 表名
+ ''' 创建表的列信息字符串
+ '''
+ Public Overridable Function CreateTableWhenNotExists(tableName As String, createStr As String) As String
+ Return $"Create Table if not exists {FiledSuffix}{tableName}{FiledPrefix} ( {createStr} );"
+ End Function
+
+ '''
+ ''' 清空数据表,表依旧存在
+ '''
+ ''' 数据表名
+ '''
+ Public Overridable Function DeleteTable(tableName As String) As String
+ Return $"Delete From {FiledSuffix}{tableName}{FiledPrefix};"
+ End Function
+
+
+ '''
+ ''' 删除数据表
+ '''
+ ''' 数据表名
+ '''
+ Public Overridable Function DropTable(tableName As String) As String
+ Return $"Drop Table {FiledSuffix}{tableName}{FiledPrefix};"
+ End Function
+
+ '''
+ ''' 删除数据表
+ '''
+ ''' 数据表名
+ '''
+ Public Overridable Function DropTableWhenExists(tableName As String) As String
+ Return $"Drop Table If Exists {FiledSuffix}{tableName}{FiledPrefix};"
+ End Function
+#End Region
+
+
+#Region "访问多数据库连接"
+
+
+
+ '''
+ ''' 查询指定数据库中指定数据表符合条件的所有指定列的数据
+ '''
+ ''' 数据库名
+ ''' 列名集合,需要返回多列时用','符号分隔列名
+ ''' 表名
+ ''' 条件
+ '''
+ 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
+
+ '''
+ ''' 查询指定数据库中指定数据表符合条件的所有指定列的去重数据
+ '''
+ ''' 数据库名
+ ''' 列名集合,需要返回多列时用','符号分隔列名
+ ''' 表名
+ ''' 条件
+ '''
+ 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
+
+
+ '''
+ ''' 查询指定数据库中指定数据表符合条件的所有指定列的数据
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 条件
+ '''
+ 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
+
+ '''
+ ''' 查询指定表包含的内容行数
+ '''
+ ''' 数据库名
+ ''' 数据表名
+ ''' 查询条件
+ '''
+ Public Overridable Function DbSearchCount(dbName As String, tableName As String, Optional condition As String = "") As String
+ Return DbSearch(dbName, "count(*)", tableName, condition)
+ End Function
+
+ '''
+ ''' 查询指定数据库中指定数据表符合条件的所有数据
+ '''
+ '''
+ ''' 数据库名
+ ''' 数据表名
+ ''' 查询条件(可选)
+ '''
+ Public Overridable Function DbSearchAll(dbName As String, tableName As String, Optional condition As String = "") As String
+ Return DbSearch(dbName, "*", tableName, condition)
+ End Function
+
+ '''
+ ''' 查询指定数据库中指定数据表的信息
+ '''
+ ''' 数据库名
+ ''' 表名
+ '''
+ 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
+
+ '''
+ ''' 查询指定数据表是否存在的信息,返回查询当前表在指定数据库中存在的数量
+ '''
+ ''' 数据库名
+ ''' 表名
+ '''
+ 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
+
+
+
+ '''
+ ''' 指定数据库中数据表插入一行数据
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 列名字符串
+ ''' 列值字符串
+ '''
+ 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
+
+
+ '''
+ ''' 指定数据库中数据表插入一行数据
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 列名与列值键值对
+ '''
+ 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
+
+ '''
+ ''' 指定数据库中数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+ '''
+ ''' 数据库名
+ '''
+ ''' 需要插入列名的集合
+ '''
+ 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
+
+
+ '''
+ ''' 更新指定数据库中指定表数据
+ '''
+ ''' 数据库名
+ ''' 指定表名
+ ''' 更新字符串
+ '''
+ '''
+ 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)
+
+ Return tmpStrCmdText
+ End Function
+
+ '''
+ ''' 更新指定数据库中指定表数据,参数名由@{ColName}
+ '''
+ ''' 数据库名
+ ''' 指定表名
+ ''' 更新列名的集合
+ ''' 更新列索引条件
+ '''
+ 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
+
+
+ '''
+ ''' 更新指定数据库中指定表数据
+ '''
+ ''' 数据库名
+ ''' 指定表名
+ ''' 更新列名与列值键值对
+ ''' 更新列索引条件
+ '''
+ 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
+
+
+ '''
+ ''' 指定数据库中指定数据表增加一列数据
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 列名
+ ''' 列类型
+ ''' 是否允许为空
+ '''
+ 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
+
+ '''
+ ''' 指定数据库中数据表删除一列数据
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 需要删除的列名,仅一列
+ '''
+ 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
+
+ '''
+ ''' 指定数据库中指定表删除多行数据
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 条件
+ '''
+ 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
+
+ '''
+ ''' 指定数据库中创建数据表
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 创建表的列信息字符串
+ '''
+ 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
+
+ '''
+ ''' 指定数据库中创建数据表,如果存在则不创建
+ '''
+ ''' 数据库名
+ ''' 表名
+ ''' 创建表的列信息字符串
+ '''
+ 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
+
+ '''
+ ''' 清空指定数据库中数据表,表依旧存在
+ '''
+ ''' 数据库名
+ ''' 数据表名
+ '''
+ 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
+
+
+ '''
+ ''' 删除指定数据库中数据表
+ '''
+ ''' 数据库名
+ ''' 数据表名
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/DbExecutor.vb b/Database/DbExecutor.vb
new file mode 100644
index 0000000..e7d4dd1
--- /dev/null
+++ b/Database/DbExecutor.vb
@@ -0,0 +1,377 @@
+Imports System.Data.Common
+Imports System.Data.SqlClient
+Imports System.Data.SQLite
+Imports MySql.Data.MySqlClient
+
+'''
+''' 数据库通用命令执行器
+''' 时间:2020-12-21
+''' 作者:ML
+''' 版本:1.0
+'''
+Public Class DbExecutor
+ Implements IDisposable
+ '''
+ ''' 数据库类型,目前支持Mysql与Sqlite
+ '''
+ Enum DbTypeEnum
+ Mysql
+ Sqlite
+ Mssql
+ 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()
+ 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
+
+
+ '''
+ ''' 打开数据库连接
+ '''
+ '''
+ 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
+
+ '''
+ ''' 关闭数据库连接
+ '''
+ Public Sub Close()
+ If _connection Is Nothing Then Return
+ If _connection.State = ConnectionState.Closed Then Return
+ _connection.Close()
+ End Sub
+
+ '''
+ ''' 创建当前连接的命令执行句柄
+ '''
+ '''
+ Public Function CreateCommand() As DbCommand
+ Return _connection.CreateCommand()
+ End Function
+
+
+
+ '''
+ ''' 运行非查询语句,返回执行该语句受到影响的行数
+ '''
+ ''' 执行的数据库命令文本
+ '''
+ 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
+
+ '''
+ ''' 使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
+ '''
+ ''' 执行的数据库命令文本
+ ''' 执行的数据库命令参数
+ '''
+ 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
+
+ '''
+ ''' 执行数据库语句,返回数据库读取流的句柄
+ '''
+ ''' 执行的数据库命令文本
+ '''
+ 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
+
+ '''
+ ''' 使用命令参数模式执行数据库语句,返回数据库读取流的句柄
+ '''
+ ''' 执行的数据库命令文本
+ ''' 执行的数据库命令参数
+ '''
+ 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
+
+ '''
+ ''' 执行数据库语句,返回查询结果的第一行第一列的内容
+ '''
+ ''' 执行的数据库命令文本
+ '''
+ 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
+
+
+ '''
+ ''' 使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
+ '''
+ ''' 执行的数据库命令文本
+ ''' 执行的数据库命令参数
+ '''
+ 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
+
+
+ '''
+ ''' 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+ '''
+ ''' 执行的数据库命令文本
+ '''
+ 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
+
+ '''
+ ''' 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+ '''
+ ''' 执行的数据库命令文本
+ ''' 执行的数据库命令参数
+ '''
+ 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
+
+ '''
+ ''' 开启事务
+ '''
+ '''
+ Public Function BeginTransaction() As DbTransaction
+ _transaction = _connection.BeginTransaction()
+ Return _transaction
+ End Function
+
+ '''
+ ''' 提交事务
+ '''
+ Public Sub CommitTransaction()
+ Try
+ _transaction.Commit()
+ Catch ex As Exception
+ Throw
+ End Try
+ End Sub
+
+ '''
+ ''' 回滚事务
+ '''
+ Public Sub RollbackTransaction()
+ Try
+ _transaction.Rollback()
+ Catch ex As Exception
+ Throw
+ End Try
+ End Sub
+
+ '''
+ ''' 创建数据参数
+ '''
+ ''' 参数数据类型
+ ''' 参数名称
+ ''' 参数值
+ '''
+ 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
+
+ '''
+ ''' 添加数据参数
+ '''
+ '''
+ '''
+ '''
+ '''
+ 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
+
+ '''
+ ''' 清空数据
+ '''
+ Public Sub ClearDbParameter()
+ _command.Parameters.Clear()
+ End Sub
+
+
+ '''
+ ''' 回收资源
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Mssql/MssqlCmdHelper.vb b/Database/Mssql/MssqlCmdHelper.vb
new file mode 100644
index 0000000..aba0d2d
--- /dev/null
+++ b/Database/Mssql/MssqlCmdHelper.vb
@@ -0,0 +1,10 @@
+Namespace Database.Mssql
+ Public Class MssqlCmdHelper
+ Inherits DbCmdHelper
+
+ Sub New()
+ FiledSuffix = "["c
+ FiledPrefix = "]"c
+ End Sub
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/Database/MssqlCmdHelper.vb b/Database/MssqlCmdHelper.vb
new file mode 100644
index 0000000..d1137f8
--- /dev/null
+++ b/Database/MssqlCmdHelper.vb
@@ -0,0 +1,8 @@
+Public Class MssqlCmdHelper
+ Inherits DbCmdHelper
+
+ Sub New()
+ FiledSuffix = "["c
+ FiledPrefix = "]"c
+ End Sub
+End Class
\ No newline at end of file
diff --git a/Database/Mysql/DataParam.vb b/Database/Mysql/DataParam.vb
new file mode 100644
index 0000000..475708d
--- /dev/null
+++ b/Database/Mysql/DataParam.vb
@@ -0,0 +1,222 @@
+Imports System.Text
+
+Namespace Database.Mysql
+ Public Class DataParam
+ Enum DataTypeEnum
+ '###############################数值类型#############################
+ '''
+ ''' 1 byte,小整数值
+ '''
+ Tinyint
+
+ '''
+ ''' 2 bytes,大整数值
+ '''
+ Smallint
+
+ '''
+ ''' 3 bytes,大整数值
+ '''
+ Mediumint
+
+ '''
+ ''' 4 bytes,大整数值
+ '''
+ Int
+
+ '''
+ ''' 4 bytes,大整数值
+ '''
+ [Integer]
+
+ '''
+ ''' 8 bytes,极大整数值
+ '''
+ Bigint
+
+ '''
+ ''' 4 bytes,单精度浮点数值
+ '''
+ Float
+
+
+ '''
+ ''' 8 bytes,双精度浮点数值
+ '''
+ [Double]
+
+
+
+ '####################日期类型###############################
+
+ '''
+ ''' 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+ '''
+ [Decimal]
+
+ '''
+ ''' 3 bytes,日期值,YYYY-MM-DD
+ '''
+ [Date]
+
+
+ '''
+ ''' 3 bytes,时间值或持续时间,HH:MM:SS
+ '''
+ Time
+
+
+ '''
+ ''' 1 bytes,年份值,YYYY
+ '''
+ Year
+
+
+ '''
+ ''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+ '''
+ Datetime
+
+ '''
+ ''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+ '''
+ Timestamp
+
+
+ '####################字符类型###############################
+
+ '''
+ ''' 0-255 bytes,定长字符串
+ '''
+ [Char]
+
+ '''
+ ''' 0-65535 bytes,变长字符串
+ '''
+ Varchar
+
+ '''
+ ''' 0-255 bytes,不超过 255 个字符的二进制字符串
+ '''
+ Tinyblob
+
+
+ '''
+ ''' 0-255 bytes,短文本字符串
+ '''
+ Tinytext
+
+ '''
+ ''' 0-65 535 bytes,二进制形式的长文本数据
+ '''
+ Blob
+
+ '''
+ ''' 0-65 535 bytes,长文本数据
+ '''
+ Text
+
+
+ '''
+ ''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
+ '''
+ Mediumblob
+
+ '''
+ ''' 0-16 777 215 bytes,中等长度文本数据
+ '''
+ Mediumtext
+
+ '''
+ ''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
+ '''
+ Longblob
+
+ '''
+ ''' 0-4 294 967 295 bytes,极大文本数据
+ '''
+ Longtext
+ End Enum
+
+ '''
+ ''' 列名
+ '''
+ '''
+ Public Property ColumnName() As String
+
+ '''
+ ''' 当前值
+ '''
+ '''
+ Public Property Value() As String
+
+
+ '''
+ ''' 默认值
+ '''
+ '''
+ Public Property DefaultValue() As String
+
+ '''
+ ''' 数据类型
+ '''
+ '''
+ Public Property DataType() As DataTypeEnum
+
+ '''
+ ''' 数据类型长度
+ '''
+ '''
+ Public Property DataTypeLength() As Integer
+
+ '''
+ ''' 数据类型是否带符号
+ '''
+ '''
+ Public Property IsUnsigned() As Boolean
+
+
+
+ '''
+ ''' 是否允许为空
+ '''
+ '''
+ Public Property IsNull() As Boolean = True
+
+ '''
+ ''' 是否自动增长
+ '''
+ '''
+ Public Property IsAutoIncrement() As Boolean
+
+ '''
+ ''' 是否为主键
+ '''
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Mysql/MysqlCmdHelper.vb b/Database/Mysql/MysqlCmdHelper.vb
new file mode 100644
index 0000000..33e3bcc
--- /dev/null
+++ b/Database/Mysql/MysqlCmdHelper.vb
@@ -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
\ No newline at end of file
diff --git a/Database/MysqlCmdHelper.vb b/Database/MysqlCmdHelper.vb
new file mode 100644
index 0000000..b4efed5
--- /dev/null
+++ b/Database/MysqlCmdHelper.vb
@@ -0,0 +1,9 @@
+Public Class MysqlCmdHelper
+ Inherits DbCmdHelper
+
+ Sub New()
+ FiledSuffix = "`"c
+ FiledPrefix = "`"c
+ End Sub
+
+End Class
diff --git a/Database/MysqlDataParam.vb b/Database/MysqlDataParam.vb
new file mode 100644
index 0000000..fa75e80
--- /dev/null
+++ b/Database/MysqlDataParam.vb
@@ -0,0 +1,220 @@
+Imports System.Text
+
+Public Class MysqlDataParam
+ Enum DataTypeEnum
+ '###############################数值类型#############################
+ '''
+ ''' 1 byte,小整数值
+ '''
+ Tinyint
+
+ '''
+ ''' 2 bytes,大整数值
+ '''
+ Smallint
+
+ '''
+ ''' 3 bytes,大整数值
+ '''
+ Mediumint
+
+ '''
+ ''' 4 bytes,大整数值
+ '''
+ Int
+
+ '''
+ ''' 4 bytes,大整数值
+ '''
+ [Integer]
+
+ '''
+ ''' 8 bytes,极大整数值
+ '''
+ Bigint
+
+ '''
+ ''' 4 bytes,单精度浮点数值
+ '''
+ Float
+
+
+ '''
+ ''' 8 bytes,双精度浮点数值
+ '''
+ [Double]
+
+
+
+ '####################日期类型###############################
+
+ '''
+ ''' 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+ '''
+ [Decimal]
+
+ '''
+ ''' 3 bytes,日期值,YYYY-MM-DD
+ '''
+ [Date]
+
+
+ '''
+ ''' 3 bytes,时间值或持续时间,HH:MM:SS
+ '''
+ Time
+
+
+ '''
+ ''' 1 bytes,年份值,YYYY
+ '''
+ Year
+
+
+ '''
+ ''' 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+ '''
+ Datetime
+
+ '''
+ ''' 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+ '''
+ Timestamp
+
+
+ '####################字符类型###############################
+
+ '''
+ ''' 0-255 bytes,定长字符串
+ '''
+ [Char]
+
+ '''
+ ''' 0-65535 bytes,变长字符串
+ '''
+ Varchar
+
+ '''
+ ''' 0-255 bytes,不超过 255 个字符的二进制字符串
+ '''
+ Tinyblob
+
+
+ '''
+ ''' 0-255 bytes,短文本字符串
+ '''
+ Tinytext
+
+ '''
+ ''' 0-65 535 bytes,二进制形式的长文本数据
+ '''
+ Blob
+
+ '''
+ ''' 0-65 535 bytes,长文本数据
+ '''
+ Text
+
+
+ '''
+ ''' 0-16 777 215 bytes,二进制形式的中等长度文本数据
+ '''
+ Mediumblob
+
+ '''
+ ''' 0-16 777 215 bytes,中等长度文本数据
+ '''
+ Mediumtext
+
+ '''
+ ''' 0-4 294 967 295 bytes,二进制形式的极大文本数据
+ '''
+ Longblob
+
+ '''
+ ''' 0-4 294 967 295 bytes,极大文本数据
+ '''
+ Longtext
+ End Enum
+
+ '''
+ ''' 列名
+ '''
+ '''
+ Public Property ColumnName() As String
+
+ '''
+ ''' 当前值
+ '''
+ '''
+ Public Property Value() As String
+
+
+ '''
+ ''' 默认值
+ '''
+ '''
+ Public Property DefaultValue() As String
+
+ '''
+ ''' 数据类型
+ '''
+ '''
+ Public Property DataType() As DataTypeEnum
+
+ '''
+ ''' 数据类型长度
+ '''
+ '''
+ Public Property DataTypeLength() As Integer
+
+ '''
+ ''' 数据类型是否带符号
+ '''
+ '''
+ Public Property IsUnsigned() As Boolean
+
+
+
+ '''
+ ''' 是否允许为空
+ '''
+ '''
+ Public Property IsNull() As Boolean = True
+
+ '''
+ ''' 是否自动增长
+ '''
+ '''
+ Public Property IsAutoIncrement() As Boolean
+
+ '''
+ ''' 是否为主键
+ '''
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Sqlite/DataParam.vb b/Database/Sqlite/DataParam.vb
new file mode 100644
index 0000000..2fa45b9
--- /dev/null
+++ b/Database/Sqlite/DataParam.vb
@@ -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
+
+ '''
+ ''' 列名
+ '''
+ '''
+ Public Property ColumnName() As String
+
+ '''
+ ''' 当前值
+ '''
+ '''
+ Public Property Value() As String
+
+
+ '''
+ ''' 默认值
+ '''
+ '''
+ Public Property DefaultValue() As String
+
+ '''
+ ''' 数据类型
+ '''
+ '''
+ Public Property DataType() As DataTypeEnum
+
+ '''
+ ''' 数据类型长度
+ '''
+ '''
+ Public Property DataTypeLength() As Integer
+
+
+ '''
+ ''' 是否允许为空
+ '''
+ '''
+ Public Property IsNull() As Boolean = True
+
+ '''
+ ''' 是否自动增长
+ '''
+ '''
+ Public Property IsAutoIncrement() As Boolean
+
+ '''
+ ''' 是否为主键
+ '''
+ '''
+ Public Property IsPrimaryKey() As Boolean
+
+ '''
+ ''' 是否为唯一值
+ '''
+ '''
+ 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
\ No newline at end of file
diff --git a/Database/Sqlite/SqliteCmdHelper.vb b/Database/Sqlite/SqliteCmdHelper.vb
new file mode 100644
index 0000000..01a0efb
--- /dev/null
+++ b/Database/Sqlite/SqliteCmdHelper.vb
@@ -0,0 +1,20 @@
+Namespace Database.Sqlite
+ Public Class SqliteCmdHelper
+ Inherits DbCmdHelper
+
+ Sub New()
+ FiledSuffix = "["c
+ FiledPrefix = "]"c
+ End Sub
+
+ '''
+ ''' 查询指定数据表的信息
+ '''
+ '''
+ '''
+ Public Overrides Function SearchTableInfo(tableName As String) As String
+ Return $"select * from sqlite_master where tbl_name = '{tableName}';"
+ End Function
+
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/Database/SqliteCmdHelper.vb b/Database/SqliteCmdHelper.vb
new file mode 100644
index 0000000..b89febc
--- /dev/null
+++ b/Database/SqliteCmdHelper.vb
@@ -0,0 +1,19 @@
+
+Public Class SqliteCmdHelper
+ Inherits DbCmdHelper
+
+ Sub New()
+ FiledSuffix = "["c
+ FiledPrefix = "]"c
+ End Sub
+
+ '''
+ ''' 查询指定数据表的信息
+ '''
+ '''
+ '''
+ Public Overrides Function SearchTableInfo(tableName As String) As String
+ Return $"select * from sqlite_master where tbl_name = '{tableName}';"
+ End Function
+
+End Class
diff --git a/Database/SqliteDataParam.vb b/Database/SqliteDataParam.vb
new file mode 100644
index 0000000..81fba52
--- /dev/null
+++ b/Database/SqliteDataParam.vb
@@ -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
+
+ '''
+ ''' 列名
+ '''
+ '''
+ Public Property ColumnName() As String
+
+ '''
+ ''' 当前值
+ '''
+ '''
+ Public Property Value() As String
+
+
+ '''
+ ''' 默认值
+ '''
+ '''
+ Public Property DefaultValue() As String
+
+ '''
+ ''' 数据类型
+ '''
+ '''
+ Public Property DataType() As DataTypeEnum
+
+ '''
+ ''' 数据类型长度
+ '''
+ '''
+ Public Property DataTypeLength() As Integer
+
+
+ '''
+ ''' 是否允许为空
+ '''
+ '''
+ Public Property IsNull() As Boolean = True
+
+ '''
+ ''' 是否自动增长
+ '''
+ '''
+ Public Property IsAutoIncrement() As Boolean
+
+ '''
+ ''' 是否为主键
+ '''
+ '''
+ Public Property IsPrimaryKey() As Boolean
+
+ '''
+ ''' 是否为唯一值
+ '''
+ '''
+ 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
\ No newline at end of file
diff --git a/Fakes/System.Data.SQLite.fakes b/Fakes/System.Data.SQLite.fakes
new file mode 100644
index 0000000..409a0ee
Binary files /dev/null and b/Fakes/System.Data.SQLite.fakes differ
diff --git a/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.dll b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.dll
new file mode 100644
index 0000000..47fe3aa
Binary files /dev/null and b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.dll differ
diff --git a/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.fakesconfig b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.fakesconfig
new file mode 100644
index 0000000..778166b
Binary files /dev/null and b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.fakesconfig differ
diff --git a/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.messages b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.messages
new file mode 100644
index 0000000..e33ca37
--- /dev/null
+++ b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.messages
@@ -0,0 +1,143 @@
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.AssemblySourceIdAttribute 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.AssemblySourceTimeStampAttribute 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.HelperMethods 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3_UTF16 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackup 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBase 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBlob 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteCommand 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteCommandBuilder 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataReaderValue 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteReadBlobEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteReadArrayEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteReadValueEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTypeCallbacks 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTypeCallbacksMap 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.ConnectionEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnection 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.BusyEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.ProgressEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.AuthorizerEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UpdateEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.CommitEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.TraceEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.WeakConnectionPool 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StrongConnectionPool 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.PoolQueue`1 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionPool 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticWeakConnectionPool`1 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticStrongConnectionPool`1 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionStringBuilder 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConvert 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteType 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMap 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMapping 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.TypeNameStringComparer 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataAdapter 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataReader 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDefineConstants 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteException 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteFactory 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteFunctionAttribute 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteKeyReader 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.LogEventArgs 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteLog 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMetaDataCollectionNames 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteParameter 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteParameterCollection 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatement 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTransaction 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTransaction2 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTransactionBase 生成存根: 类型没有对程序集可见的构造函数。构造函数本身或参数可能不可见。。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.DebugData 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.NativeLibraryHelper 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsPosix 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsWin32 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethods 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionHandle 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatementHandle 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackupHandle 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBlobHandle 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteExtra 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteEnlistment 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteContext 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteValue 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexConstraint 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexOrderBy 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexConstraintUsage 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexInputs 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndexOutputs 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteIndex 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemory 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteString 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBytes 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMarshal 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionHelpers 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionLock 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetIterator 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetIterator 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetIterator 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamAdapter 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionStreamManager 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeGroup 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSession 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetBase 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSet 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSet 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetEnumerator 生成存根: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetEnumerator 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetEnumerator 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetMetadataItem 生成存根: 类型已密封。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.HelperMethods 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLite3_UTF16 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackup 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBase 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteTypeCallbacksMap 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.WeakConnectionPool 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StrongConnectionPool 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.PoolQueue`1 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionPool 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticWeakConnectionPool`1 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.StaticStrongConnectionPool`1 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteType 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMap 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDbTypeMapping 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.TypeNameStringComparer 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDataReader+ColumnParent 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteDefineConstants 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteFunction+AggregateData 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteKeyReader 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatement 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.DebugData 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.NativeLibraryHelper 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsPosix 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethodsWin32 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.UnsafeNativeMethods 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStatementHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBackupHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBlobHandle 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteEnlistment 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemory 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteString 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteBytes 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMarshal 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteModule+SQLiteNativeModule 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionHelpers 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteConnectionLock 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetIterator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetIterator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetIterator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamAdapter 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSessionStreamManager 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeGroup 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteSession 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetBase 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSet 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSet 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetEnumerator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteMemoryChangeSetEnumerator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteStreamChangeSetEnumerator 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\Fakes\System.Data.SQLite.fakes : warning : 无法为 System.Data.SQLite.SQLiteChangeSetMetadataItem 生成填充码: 类型对 exported or assembly(System.Data.SQLite.1.0.119.0.Fakes) 不可见。
diff --git a/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.xml b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.xml
new file mode 100644
index 0000000..a9ca552
--- /dev/null
+++ b/FakesAssemblies/System.Data.SQLite.1.0.119.0.Fakes.xml
@@ -0,0 +1,10484 @@
+
+
+
+ System.Data.SQLite.1.0.119.0.Fakes
+
+
+
+ 包含用于 System.Data.SQLite 的存根和填充码的自定义委托
+
+
+ System.Data.SQLite.AssemblySourceIdAttribute 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 AssemblySourceIdAttribute.get_SourceId() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 AssemblySourceIdAttribute.AssemblySourceIdAttribute(String value) 的 填充码
+
+
+ 设置 AssemblySourceIdAttribute.get_SourceId() 的 填充码
+
+
+ System.Data.SQLite.AssemblySourceTimeStampAttribute 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 AssemblySourceTimeStampAttribute.get_SourceTimeStamp() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 AssemblySourceTimeStampAttribute.AssemblySourceTimeStampAttribute(String value) 的 填充码
+
+
+ 设置 AssemblySourceTimeStampAttribute.get_SourceTimeStamp() 的 填充码
+
+
+ System.Data.SQLite.AuthorizerEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 AuthorizerEventArgs.AuthorizerEventArgs() 的 填充码
+
+
+ 设置 AuthorizerEventArgs.AuthorizerEventArgs(IntPtr pUserData, SQLiteAuthorizerActionCode actionCode, String argument1, String argument2, String database, String context, SQLiteAuthorizerReturnCode returnCode) 的 填充码
+
+
+ System.Data.SQLite.BusyEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 BusyEventArgs.BusyEventArgs() 的 填充码
+
+
+ 设置 BusyEventArgs.BusyEventArgs(IntPtr pUserData, Int32 count, SQLiteBusyReturnCode returnCode) 的 填充码
+
+
+ System.Data.SQLite.CollationSequence 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ System.Data.SQLite.CommitEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 CommitEventArgs.CommitEventArgs() 的 填充码
+
+
+ System.Data.SQLite.ConnectionEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 ConnectionEventArgs.get_Result() 的 填充码
+
+
+ 设置 ConnectionEventArgs.set_Result(String value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 ConnectionEventArgs.ConnectionEventArgs(SQLiteConnectionEventType eventType, StateChangeEventArgs eventArgs, IDbTransaction transaction, IDbCommand command, IDataReader dataReader, CriticalHandle criticalHandle, String text, Object data) 的 填充码
+
+
+ 设置 ConnectionEventArgs.ConnectionEventArgs(SQLiteConnectionEventType eventType, StateChangeEventArgs eventArgs, IDbTransaction transaction, IDbCommand command, IDataReader dataReader, CriticalHandle criticalHandle, String text, Object data, String result) 的 填充码
+
+
+ 设置 ConnectionEventArgs.get_CreateCount() 的 填充码
+
+
+ 设置 ConnectionEventArgs.get_Result() 的 填充码
+
+
+ 设置 ConnectionEventArgs.set_Result(String value) 的 填充码
+
+
+ System.Data.SQLite.LogEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 LogEventArgs.LogEventArgs(IntPtr pUserData, Object errorCode, String message, Object data) 的 填充码
+
+
+ System.Data.SQLite.ProgressEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 ProgressEventArgs.ProgressEventArgs() 的 填充码
+
+
+ 设置 ProgressEventArgs.ProgressEventArgs(IntPtr pUserData, SQLiteProgressReturnCode returnCode) 的 填充码
+
+
+ System.Data.SQLite.SQLiteBlob 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteBlob.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteBlob.CheckOpen() 的 填充码
+
+
+ 设置 SQLiteBlob.Close() 的 填充码
+
+
+ 设置 SQLiteBlob.Dispose() 的 填充码
+
+
+ 设置 SQLiteBlob.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteBlob.GetCount() 的 填充码
+
+
+ 设置 SQLiteBlob.Read(Byte[] buffer, Int32 count, Int32 offset) 的 填充码
+
+
+ 设置 SQLiteBlob.Reopen(Int64 rowId) 的 填充码
+
+
+ 设置 SQLiteBlob.VerifyParameters(Byte[] buffer, Int32 count, Int32 offset) 的 填充码
+
+
+ 设置 SQLiteBlob.Write(Byte[] buffer, Int32 count, Int32 offset) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteBlob.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteBlob.CheckOpen() 的 填充码
+
+
+ 设置 SQLiteBlob.Close() 的 填充码
+
+
+ 设置 SQLiteBlob.Create(SQLiteConnection connection, String databaseName, String tableName, String columnName, Int64 rowId, Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteBlob.Create(SQLiteDataReader dataReader, Int32 i, Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteBlob.Dispose() 的 填充码
+
+
+ 设置 SQLiteBlob.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteBlob.GetCount() 的 填充码
+
+
+ 设置 SQLiteBlob.Read(Byte[] buffer, Int32 count, Int32 offset) 的 填充码
+
+
+ 设置 SQLiteBlob.Reopen(Int64 rowId) 的 填充码
+
+
+ 设置 SQLiteBlob.VerifyParameters(Byte[] buffer, Int32 count, Int32 offset) 的 填充码
+
+
+ 设置 SQLiteBlob.Write(Byte[] buffer, Int32 count, Int32 offset) 的 填充码
+
+
+ System.Data.SQLite.SQLiteCommand 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteCommand.Cancel() 的 填充码
+
+
+ 设置 SQLiteCommand.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteCommand.ClearCommands() 的 填充码
+
+
+ 设置 SQLiteCommand.ClearDataReader() 的 填充码
+
+
+ 设置 SQLiteCommand.Clone() 的 填充码
+
+
+ 设置 SQLiteCommand.get_CommandText() 的 填充码
+
+
+ 设置 SQLiteCommand.set_CommandText(String value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_CommandTimeout() 的 填充码
+
+
+ 设置 SQLiteCommand.set_CommandTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_CommandType() 的 填充码
+
+
+ 设置 SQLiteCommand.set_CommandType(CommandType value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_Connection() 的 填充码
+
+
+ 设置 SQLiteCommand.set_Connection(SQLiteConnection value) 的 填充码
+
+
+ 设置 SQLiteCommand.CreateDbParameter() 的 填充码
+
+
+ 设置 SQLiteCommand.CreateParameter() 的 填充码
+
+
+ 设置 SQLiteCommand.get_DbConnection() 的 填充码
+
+
+ 设置 SQLiteCommand.set_DbConnection(DbConnection value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_DbParameterCollection() 的 填充码
+
+
+ 设置 SQLiteCommand.get_DbTransaction() 的 填充码
+
+
+ 设置 SQLiteCommand.set_DbTransaction(DbTransaction value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_DesignTimeVisible() 的 填充码
+
+
+ 设置 SQLiteCommand.set_DesignTimeVisible(Boolean value) 的 填充码
+
+
+ 设置 SQLiteCommand.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteCommand.DisposeStatements() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteNonQuery() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteReader() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteReader(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteScalar() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteScalar(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.GetDiagnostics() 的 填充码
+
+
+ 设置 SQLiteCommand.InitializeForReader() 的 填充码
+
+
+ 设置 SQLiteCommand.get_MaximumSleepTime() 的 填充码
+
+
+ 设置 SQLiteCommand.set_MaximumSleepTime(Int32 value) 的 填充码
+
+
+ 设置 SQLiteCommand.MaybeAddGlobalCommandBehaviors(CommandBehavior& behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.MaybeReadRemaining(SQLiteDataReader reader, CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.get_Parameters() 的 填充码
+
+
+ 设置 SQLiteCommand.Prepare() 的 填充码
+
+
+ 设置 SQLiteCommand.PrivateMaybeReadRemaining(SQLiteDataReader reader, CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.Reset() 的 填充码
+
+
+ 设置 SQLiteCommand.Reset(Boolean clearBindings, Boolean ignoreErrors) 的 填充码
+
+
+ 设置 SQLiteCommand.ResetDataReader() 的 填充码
+
+
+ 设置 SQLiteCommand.ShouldForceExtraReads(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ShouldSkipExtraReads(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.get_Transaction() 的 填充码
+
+
+ 设置 SQLiteCommand.set_Transaction(SQLiteTransaction value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_UpdatedRowSource() 的 填充码
+
+
+ 设置 SQLiteCommand.set_UpdatedRowSource(UpdateRowSource value) 的 填充码
+
+
+ 设置 SQLiteCommand.VerifyOnly() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteCommand.Cancel() 的 填充码
+
+
+ 设置 SQLiteCommand.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteCommand.Check(SQLiteCommand command) 的 填充码
+
+
+ 设置 SQLiteCommand.ClearCommands() 的 填充码
+
+
+ 设置 SQLiteCommand.ClearDataReader() 的 填充码
+
+
+ 设置 SQLiteCommand.Clone() 的 填充码
+
+
+ 设置 SQLiteCommand.CombineBehaviors(Nullable`1<CommandBehavior> behavior, String flags, String& error) 的 填充码
+
+
+ 设置 SQLiteCommand.get_CommandText() 的 填充码
+
+
+ 设置 SQLiteCommand.set_CommandText(String value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_CommandTimeout() 的 填充码
+
+
+ 设置 SQLiteCommand.set_CommandTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_CommandType() 的 填充码
+
+
+ 设置 SQLiteCommand.set_CommandType(CommandType value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_Connection() 的 填充码
+
+
+ 设置 SQLiteCommand.set_Connection(SQLiteConnection value) 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand() 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand(SQLiteCommand source) 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand(String commandText) 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand(String commandText, SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand(String commandText, SQLiteConnection connection, SQLiteTransaction transaction) 的 填充码
+
+
+ 设置 SQLiteCommand.CreateDbParameter() 的 填充码
+
+
+ 设置 SQLiteCommand.CreateParameter() 的 填充码
+
+
+ 设置 SQLiteCommand.get_DbConnection() 的 填充码
+
+
+ 设置 SQLiteCommand.set_DbConnection(DbConnection value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_DbParameterCollection() 的 填充码
+
+
+ 设置 SQLiteCommand.get_DbTransaction() 的 填充码
+
+
+ 设置 SQLiteCommand.set_DbTransaction(DbTransaction value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_DesignTimeVisible() 的 填充码
+
+
+ 设置 SQLiteCommand.set_DesignTimeVisible(Boolean value) 的 填充码
+
+
+ 设置 SQLiteCommand.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteCommand.DisposeStatements() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteNonQuery() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteReader() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteReader(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteScalar() 的 填充码
+
+
+ 设置 SQLiteCommand.ExecuteScalar(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.Execute(String commandText, SQLiteExecuteType executeType, CommandBehavior commandBehavior, SQLiteConnection connection, Object[] args) 的 填充码
+
+
+ 设置 SQLiteCommand.Execute(String commandText, SQLiteExecuteType executeType, CommandBehavior commandBehavior, String connectionString, Object[] args) 的 填充码
+
+
+ 设置 SQLiteCommand.Execute(String commandText, SQLiteExecuteType executeType, String connectionString, Object[] args) 的 填充码
+
+
+ 设置 SQLiteCommand.GetDiagnostics() 的 填充码
+
+
+ 设置 SQLiteCommand.GetFlags(SQLiteCommand command) 的 填充码
+
+
+ 设置 SQLiteCommand.GetMaximumSleepTime(SQLiteCommand command) 的 填充码
+
+
+ 设置 SQLiteCommand.GetPrepareRetries(SQLiteCommand command) 的 填充码
+
+
+ 设置 SQLiteCommand.GetStepRetries(SQLiteCommand command) 的 填充码
+
+
+ 设置 SQLiteCommand.InitializeForReader() 的 填充码
+
+
+ 设置 SQLiteCommand.InitializeGlobalCommandBehaviors() 的 填充码
+
+
+ 设置 SQLiteCommand.get_MaximumSleepTime() 的 填充码
+
+
+ 设置 SQLiteCommand.set_MaximumSleepTime(Int32 value) 的 填充码
+
+
+ 设置 SQLiteCommand.MaybeAddGlobalCommandBehaviors(CommandBehavior& behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.MaybeReadRemaining(SQLiteDataReader reader, CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.get_Parameters() 的 填充码
+
+
+ 设置 SQLiteCommand.Prepare() 的 填充码
+
+
+ 设置 SQLiteCommand.PrivateMaybeReadRemaining(SQLiteDataReader reader, CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.Reset() 的 填充码
+
+
+ 设置 SQLiteCommand.Reset(Boolean clearBindings, Boolean ignoreErrors) 的 填充码
+
+
+ 设置 SQLiteCommand.ResetDataReader() 的 填充码
+
+
+ 设置 SQLiteCommand.ShouldForceExtraReads(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.ShouldSkipExtraReads(CommandBehavior behavior) 的 填充码
+
+
+ 设置 SQLiteCommand.SQLiteCommand() 的 填充码
+
+
+ 设置 SQLiteCommand.get_Transaction() 的 填充码
+
+
+ 设置 SQLiteCommand.set_Transaction(SQLiteTransaction value) 的 填充码
+
+
+ 设置 SQLiteCommand.get_UpdatedRowSource() 的 填充码
+
+
+ 设置 SQLiteCommand.set_UpdatedRowSource(UpdateRowSource value) 的 填充码
+
+
+ 设置 SQLiteCommand.VerifyOnly() 的 填充码
+
+
+ System.Data.SQLite.SQLiteCommandBuilder 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteCommandBuilder.ApplyParameterInfo(DbParameter parameter, DataRow row, StatementType statementType, Boolean whereClause) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_CatalogLocation() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_CatalogLocation(CatalogLocation value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_CatalogSeparator() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_CatalogSeparator(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_DataAdapter() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_DataAdapter(SQLiteDataAdapter value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetDeleteCommand() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetDeleteCommand(Boolean useColumnsForParameterNames) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetInsertCommand() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetInsertCommand(Boolean useColumnsForParameterNames) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetParameterName(Int32 parameterOrdinal) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetParameterName(String parameterName) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetParameterPlaceholder(Int32 parameterOrdinal) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetSchemaTable(DbCommand sourceCommand) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetUpdateCommand() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetUpdateCommand(Boolean useColumnsForParameterNames) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.HasSchemaPrimaryKey(DataTable schema) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.QuoteIdentifier(String unquotedIdentifier) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_QuotePrefix() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_QuotePrefix(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_QuoteSuffix() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_QuoteSuffix(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.ResetIsUniqueSchemaColumn(DataTable schema) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.RowUpdatingEventHandler(Object sender, RowUpdatingEventArgs e) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_SchemaSeparator() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_SchemaSeparator(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.SetRowUpdatingHandler(DbDataAdapter adapter) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.UnquoteIdentifier(String quotedIdentifier) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.ApplyParameterInfo(DbParameter parameter, DataRow row, StatementType statementType, Boolean whereClause) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteCommandBuilder.get_CatalogLocation() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_CatalogLocation(CatalogLocation value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_CatalogSeparator() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_CatalogSeparator(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.SQLiteCommandBuilder() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.SQLiteCommandBuilder(SQLiteDataAdapter adp) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_DataAdapter() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_DataAdapter(SQLiteDataAdapter value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetDeleteCommand() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetDeleteCommand(Boolean useColumnsForParameterNames) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetInsertCommand() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetInsertCommand(Boolean useColumnsForParameterNames) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetParameterName(Int32 parameterOrdinal) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetParameterName(String parameterName) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetParameterPlaceholder(Int32 parameterOrdinal) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetSchemaTable(DbCommand sourceCommand) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetUpdateCommand() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.GetUpdateCommand(Boolean useColumnsForParameterNames) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.HasSchemaPrimaryKey(DataTable schema) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.QuoteIdentifier(String unquotedIdentifier) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_QuotePrefix() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_QuotePrefix(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_QuoteSuffix() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_QuoteSuffix(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.ResetIsUniqueSchemaColumn(DataTable schema) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.RowUpdatingEventHandler(Object sender, RowUpdatingEventArgs e) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.get_SchemaSeparator() 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.set_SchemaSeparator(String value) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.SetRowUpdatingHandler(DbDataAdapter adapter) 的 填充码
+
+
+ 设置 SQLiteCommandBuilder.UnquoteIdentifier(String quotedIdentifier) 的 填充码
+
+
+ System.Data.SQLite.SQLiteConnection 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 设置 SQLiteConnection.AddTypeMapping(String typeName, DbType dataType, Boolean primary) 的 填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteConnection.AddTypeMapping(String typeName, DbType dataType, Boolean primary) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Authorize(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Authorize(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.AuthorizerCallback(IntPtr pUserData, SQLiteAuthorizerActionCode actionCode, IntPtr pArgument1, IntPtr pArgument2, IntPtr pDatabase, IntPtr pAuthContext) 的 填充码
+
+
+ 设置 SQLiteConnection.get_AutoCommit() 的 填充码
+
+
+ 设置 SQLiteConnection.BackupDatabase(SQLiteConnection destination, String destinationName, String sourceName, Int32 pages, SQLiteBackupCallback callback, Int32 retryMilliseconds) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginDbTransaction(IsolationLevel isolationLevel) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction() 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction(Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction(IsolationLevel isolationLevel) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction(IsolationLevel isolationLevel, Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteConnection.BindFunction(SQLiteFunctionAttribute functionAttribute, Delegate callback1, Delegate callback2) 的 填充码
+
+
+ 设置 SQLiteConnection.BindFunction(SQLiteFunctionAttribute functionAttribute, SQLiteFunction function) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Busy(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.BusyCallback(IntPtr pUserData, Int32 count) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Busy(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_BusyTimeout() 的 填充码
+
+
+ 设置 SQLiteConnection.set_BusyTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.Cancel() 的 填充码
+
+
+ 设置 SQLiteConnection.ChangeDatabase(String databaseName) 的 填充码
+
+
+ 设置 SQLiteConnection.ChangePassword(Byte[] newPassword) 的 填充码
+
+
+ 设置 SQLiteConnection.ChangePassword(String newPassword) 的 填充码
+
+
+ 设置 SQLiteConnection.get_Changes() 的 填充码
+
+
+ 设置 SQLiteConnection.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteConnection.ClearCachedSettings() 的 填充码
+
+
+ 设置 SQLiteConnection.ClearTypeCallbacks() 的 填充码
+
+
+ 设置 SQLiteConnection.ClearTypeMappings() 的 填充码
+
+
+ 设置 SQLiteConnection.Clone() 的 填充码
+
+
+ 设置 SQLiteConnection.Close() 的 填充码
+
+
+ 设置 SQLiteConnection.add_Commit(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.CommitCallback(IntPtr parg) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Commit(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ConnectionString() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ConnectionString(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeGroup() 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Byte[] rawData) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Byte[] rawData, SQLiteChangeSetStartFlags flags) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Stream inputStream, Stream outputStream) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Stream inputStream, Stream outputStream, SQLiteChangeSetStartFlags flags) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateCommand() 的 填充码
+
+
+ 设置 SQLiteConnection.CreateDbCommand() 的 填充码
+
+
+ 设置 SQLiteConnection.CreateModule(SQLiteModule module) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateSession(String databaseName) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DataSource() 的 填充码
+
+
+ 设置 SQLiteConnection.get_Database() 的 填充码
+
+
+ 设置 SQLiteConnection.get_DbProviderFactory() 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultDbType() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultDbType(Nullable`1<DbType> value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultMaximumSleepTime() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultMaximumSleepTime(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultTimeout() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultTypeName() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultTypeName(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.Deserialize(String schema, Byte[] data, Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteConnection.Dispose() 的 填充码
+
+
+ 设置 SQLiteConnection.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteConnection.EnableExtensions(Boolean enable) 的 填充码
+
+
+ 设置 SQLiteConnection.EnlistTransaction(Transaction transaction) 的 填充码
+
+
+ 设置 SQLiteConnection.ExtendedResultCode() 的 填充码
+
+
+ 设置 SQLiteConnection.get_FileName() 的 填充码
+
+
+ 设置 SQLiteConnection.get_Flags() 的 填充码
+
+
+ 设置 SQLiteConnection.set_Flags(SQLiteConnectionFlags value) 的 填充码
+
+
+ 设置 SQLiteConnection.GetCriticalHandle() 的 填充码
+
+
+ 设置 SQLiteConnection.GetDefaultIsolationLevel() 的 填充码
+
+
+ 设置 SQLiteConnection.GetDefaultPooling() 的 填充码
+
+
+ 设置 SQLiteConnection.GetEffectiveIsolationLevel(IsolationLevel isolationLevel) 的 填充码
+
+
+ 设置 SQLiteConnection.get_GetPasswordCallback() 的 填充码
+
+
+ 设置 SQLiteConnection.set_GetPasswordCallback(SQLiteGetPasswordCallback value) 的 填充码
+
+
+ 设置 SQLiteConnection.GetSchema() 的 填充码
+
+
+ 设置 SQLiteConnection.GetSchema(String collectionName) 的 填充码
+
+
+ 设置 SQLiteConnection.GetSchema(String collectionName, String[] restrictionValues) 的 填充码
+
+
+ 设置 SQLiteConnection.GetTypeMappings() 的 填充码
+
+
+ 设置 SQLiteConnection.InitializeDefaults() 的 填充码
+
+
+ 设置 SQLiteConnection.IsCanceled() 的 填充码
+
+
+ 设置 SQLiteConnection.IsReadOnly(String name) 的 填充码
+
+
+ 设置 SQLiteConnection.get_LastInsertRowId() 的 填充码
+
+
+ 设置 SQLiteConnection.LoadExtension(String fileName) 的 填充码
+
+
+ 设置 SQLiteConnection.LoadExtension(String fileName, String procName) 的 填充码
+
+
+ 设置 SQLiteConnection.LogMessage(Int32 iErrCode, String zMessage) 的 填充码
+
+
+ 设置 SQLiteConnection.LogMessage(SQLiteErrorCode iErrCode, String zMessage) 的 填充码
+
+
+ 设置 SQLiteConnection.get_MemoryHighwater() 的 填充码
+
+
+ 设置 SQLiteConnection.get_MemoryUsed() 的 填充码
+
+
+ 设置 SQLiteConnection.OnStateChange(ConnectionState newState, StateChangeEventArgs& eventArgs) 的 填充码
+
+
+ 设置 SQLiteConnection.Open() 的 填充码
+
+
+ 设置 SQLiteConnection.OpenAndReturn() 的 填充码
+
+
+ 设置 SQLiteConnection.get_OwnHandle() 的 填充码
+
+
+ 设置 SQLiteConnection.get_ParseViaFramework() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ParseViaFramework(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_PoolCount() 的 填充码
+
+
+ 设置 SQLiteConnection.get_PrepareRetries() 的 填充码
+
+
+ 设置 SQLiteConnection.set_PrepareRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Progress(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.ProgressCallback(IntPtr pUserData) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ProgressOps() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ProgressOps(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Progress(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.ReleaseMemory() 的 填充码
+
+
+ 设置 SQLiteConnection.ResultCode() 的 填充码
+
+
+ 设置 SQLiteConnection.add_RollBack(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_RollBack(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.RollbackCallback(IntPtr parg) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Catalogs(String strCatalog) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Columns(String strCatalog, String strTable, String strColumn) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_DataSourceInformation() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_DataTypes() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_ForeignKeys(String strCatalog, String strTable, String strKeyName) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_IndexColumns(String strCatalog, String strTable, String strIndex, String strColumn) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Indexes(String strCatalog, String strTable, String strIndex) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Tables(String strCatalog, String strTable, String strType) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Triggers(String catalog, String table, String triggerName) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_ViewColumns(String strCatalog, String strView, String strColumn) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Views(String strCatalog, String strView) 的 填充码
+
+
+ 设置 SQLiteConnection.Serialize(String schema) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ServerVersion() 的 填充码
+
+
+ 设置 SQLiteConnection.SetAvRetry(Int32& count, Int32& interval) 的 填充码
+
+
+ 设置 SQLiteConnection.SetCachedSetting(String name, Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetChunkSize(Int32 size) 的 填充码
+
+
+ 设置 SQLiteConnection.SetConfigurationOption(SQLiteConfigDbOpsEnum option, Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetExtendedResultCodes(Boolean bOnOff) 的 填充码
+
+
+ 设置 SQLiteConnection.SetLimitOption(SQLiteLimitOpsEnum option, Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetPassword(Byte[] databasePassword) 的 填充码
+
+
+ 设置 SQLiteConnection.SetPassword(String databasePassword) 的 填充码
+
+
+ 设置 SQLiteConnection.SetTypeCallbacks(String typeName, SQLiteTypeCallbacks callbacks) 的 填充码
+
+
+ 设置 SQLiteConnection.SetupSQLiteBase(SortedList`2<String,String> opts) 的 填充码
+
+
+ 设置 SQLiteConnection.Shutdown() 的 填充码
+
+
+ 设置 SQLiteConnection.add_StateChange(StateChangeEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_StateChange(StateChangeEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_State() 的 填充码
+
+
+ 设置 SQLiteConnection.get_StepRetries() 的 填充码
+
+
+ 设置 SQLiteConnection.set_StepRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_Tag() 的 填充码
+
+
+ 设置 SQLiteConnection.set_Tag(Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Trace2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Trace2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Trace(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.TraceCallback2(SQLiteTraceFlags flags, IntPtr pUser, IntPtr pCtx1, IntPtr pCtx2) 的 填充码
+
+
+ 设置 SQLiteConnection.TraceCallback(IntPtr pUser, IntPtr statement) 的 填充码
+
+
+ 设置 SQLiteConnection.get_TraceFlags() 的 填充码
+
+
+ 设置 SQLiteConnection.set_TraceFlags(SQLiteTraceFlags value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Trace(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.TryGetCachedSetting(String name, Object default, Object& value) 的 填充码
+
+
+ 设置 SQLiteConnection.TryGetTypeCallbacks(String typeName, SQLiteTypeCallbacks& callbacks) 的 填充码
+
+
+ 设置 SQLiteConnection.UnbindAllFunctions(Boolean registered) 的 填充码
+
+
+ 设置 SQLiteConnection.UnbindFunction(SQLiteFunctionAttribute functionAttribute) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Update(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.UpdateCallback(IntPtr puser, Int32 type, IntPtr database, IntPtr table, Int64 rowid) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Update(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_VfsName() 的 填充码
+
+
+ 设置 SQLiteConnection.set_VfsName(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.WaitForEnlistmentReset(Int32 timeoutMilliseconds, Nullable`1<Boolean> returnOnDisposed) 的 填充码
+
+
+ 设置 SQLiteConnection.get_WaitTimeout() 的 填充码
+
+
+ 设置 SQLiteConnection.set_WaitTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__authorizerHandler(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__authorizerHandler(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__busyHandler(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__busyHandler(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__commitHandler(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__commitHandler(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__progressHandler(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__progressHandler(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__rollbackHandler(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__rollbackHandler(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__traceHandler2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__traceHandler2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__traceHandler(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__traceHandler(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__updateHandler(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__updateHandler(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Authorize(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Authorize(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.AuthorizerCallback(IntPtr pUserData, SQLiteAuthorizerActionCode actionCode, IntPtr pArgument1, IntPtr pArgument2, IntPtr pDatabase, IntPtr pAuthContext) 的 填充码
+
+
+ 设置 SQLiteConnection.get_AutoCommit() 的 填充码
+
+
+ 设置 SQLiteConnection.BackupDatabase(SQLiteConnection destination, String destinationName, String sourceName, Int32 pages, SQLiteBackupCallback callback, Int32 retryMilliseconds) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginDbTransaction(IsolationLevel isolationLevel) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction() 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction(Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction(IsolationLevel isolationLevel) 的 填充码
+
+
+ 设置 SQLiteConnection.BeginTransaction(IsolationLevel isolationLevel, Boolean deferredLock) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteConnection.BindFunction(SQLiteFunctionAttribute functionAttribute, Delegate callback1, Delegate callback2) 的 填充码
+
+
+ 设置 SQLiteConnection.BindFunction(SQLiteFunctionAttribute functionAttribute, SQLiteFunction function) 的 填充码
+
+
+ 设置 SQLiteConnection.BuildConnectionString(SortedList`2<String,String> opts) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Busy(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.BusyCallback(IntPtr pUserData, Int32 count) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Busy(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_BusyTimeout() 的 填充码
+
+
+ 设置 SQLiteConnection.set_BusyTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.CanOnChanged(SQLiteConnection connection, Boolean ignoreDisposed) 的 填充码
+
+
+ 设置 SQLiteConnection.Cancel() 的 填充码
+
+
+ 设置 SQLiteConnection.ChangeDatabase(String databaseName) 的 填充码
+
+
+ 设置 SQLiteConnection.ChangePassword(Byte[] newPassword) 的 填充码
+
+
+ 设置 SQLiteConnection.ChangePassword(String newPassword) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Changed(SQLiteConnectionEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Changed(SQLiteConnectionEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_Changes() 的 填充码
+
+
+ 设置 SQLiteConnection.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteConnection.CheckForPluginEnvironment(String fileName, Boolean isolated) 的 填充码
+
+
+ 设置 SQLiteConnection.Check(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConnection.ClearAllPools() 的 填充码
+
+
+ 设置 SQLiteConnection.ClearCachedSettings() 的 填充码
+
+
+ 设置 SQLiteConnection.ClearPool(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConnection.ClearTypeCallbacks() 的 填充码
+
+
+ 设置 SQLiteConnection.ClearTypeMappings() 的 填充码
+
+
+ 设置 SQLiteConnection.Clone() 的 填充码
+
+
+ 设置 SQLiteConnection.Close() 的 填充码
+
+
+ 设置 SQLiteConnection.get_CloseCount() 的 填充码
+
+
+ 设置 SQLiteConnection.add_Commit(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.CommitCallback(IntPtr parg) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Commit(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.ConfigureViaOneFile(String fileName) 的 填充码
+
+
+ 设置 SQLiteConnection.ConfigureViaPluginFiles(String directory) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ConnectionPool() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ConnectionPool(ISQLiteConnectionPool value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ConnectionString() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ConnectionString(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.SQLiteConnection() 的 填充码
+
+
+ 设置 SQLiteConnection.SQLiteConnection(IntPtr db, String fileName, Boolean ownHandle) 的 填充码
+
+
+ 设置 SQLiteConnection.SQLiteConnection(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConnection.SQLiteConnection(String connectionString) 的 填充码
+
+
+ 设置 SQLiteConnection.SQLiteConnection(String connectionString, Boolean parseViaFramework) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeGroup() 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Byte[] rawData) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Byte[] rawData, SQLiteChangeSetStartFlags flags) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Stream inputStream, Stream outputStream) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateChangeSet(Stream inputStream, Stream outputStream, SQLiteChangeSetStartFlags flags) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateCommand() 的 填充码
+
+
+ 设置 SQLiteConnection.get_CreateCount() 的 填充码
+
+
+ 设置 SQLiteConnection.CreateDbCommand() 的 填充码
+
+
+ 设置 SQLiteConnection.CreateFile(String databaseFileName) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateHandle(IntPtr nativeHandle) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateModule(SQLiteModule module) 的 填充码
+
+
+ 设置 SQLiteConnection.CreatePool(String typeName, Object argument) 的 填充码
+
+
+ 设置 SQLiteConnection.CreateSession(String databaseName) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DataSource() 的 填充码
+
+
+ 设置 SQLiteConnection.get_Database() 的 填充码
+
+
+ 设置 SQLiteConnection.get_DbProviderFactory() 的 填充码
+
+
+ 设置 SQLiteConnection.DecryptLegacyDatabase(String fileName, Byte[] passwordBytes, Nullable`1<Int32> pageSize, SQLiteProgressEventHandler progress) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultDbType() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultDbType(Nullable`1<DbType> value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultFlags() 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultMaximumSleepTime() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultMaximumSleepTime(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultTimeout() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefaultTypeName() 的 填充码
+
+
+ 设置 SQLiteConnection.set_DefaultTypeName(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DefineConstants() 的 填充码
+
+
+ 设置 SQLiteConnection.Deserialize(String schema, Byte[] data, Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteConnection.Dispose() 的 填充码
+
+
+ 设置 SQLiteConnection.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteConnection.get_DisposeCount() 的 填充码
+
+
+ 设置 SQLiteConnection.EnableExtensions(Boolean enable) 的 填充码
+
+
+ 设置 SQLiteConnection.EnlistTransaction(Transaction transaction) 的 填充码
+
+
+ 设置 SQLiteConnection.EscapeForConnectionString(String value, Boolean allowEquals) 的 填充码
+
+
+ 设置 SQLiteConnection.ExpandFileName(String sourceFile, Boolean toFullPath) 的 填充码
+
+
+ 设置 SQLiteConnection.ExtendedResultCode() 的 填充码
+
+
+ 设置 SQLiteConnection.get_FileName() 的 填充码
+
+
+ 设置 SQLiteConnection.FindKey(SortedList`2<String,String> items, String key, String defValue) 的 填充码
+
+
+ 设置 SQLiteConnection.get_Flags() 的 填充码
+
+
+ 设置 SQLiteConnection.set_Flags(SQLiteConnectionFlags value) 的 填充码
+
+
+ 设置 SQLiteConnection.FromHexString(String text) 的 填充码
+
+
+ 设置 SQLiteConnection.FromHexString(String text, Boolean allowNul, String& error) 的 填充码
+
+
+ 设置 SQLiteConnection.GetCriticalHandle() 的 填充码
+
+
+ 设置 SQLiteConnection.GetDataDirectory() 的 填充码
+
+
+ 设置 SQLiteConnection.GetDefaultCatalogName() 的 填充码
+
+
+ 设置 SQLiteConnection.GetDefaultIsolationLevel() 的 填充码
+
+
+ 设置 SQLiteConnection.GetDefaultPooling() 的 填充码
+
+
+ 设置 SQLiteConnection.GetEeeCertificateFileName() 的 填充码
+
+
+ 设置 SQLiteConnection.GetEffectiveIsolationLevel(IsolationLevel isolationLevel) 的 填充码
+
+
+ 设置 SQLiteConnection.GetFallbackDefaultIsolationLevel() 的 填充码
+
+
+ 设置 SQLiteConnection.GetFlags(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConnection.GetMasterTableName(Boolean temporary) 的 填充码
+
+
+ 设置 SQLiteConnection.GetMemoryStatistics(IDictionary`2<String,Int64>& statistics) 的 填充码
+
+
+ 设置 SQLiteConnection.get_GetPasswordCallback() 的 填充码
+
+
+ 设置 SQLiteConnection.set_GetPasswordCallback(SQLiteGetPasswordCallback value) 的 填充码
+
+
+ 设置 SQLiteConnection.GetPluginFileNames(String directory) 的 填充码
+
+
+ 设置 SQLiteConnection.GetSchema() 的 填充码
+
+
+ 设置 SQLiteConnection.GetSchema(String collectionName) 的 填充码
+
+
+ 设置 SQLiteConnection.GetSchema(String collectionName, String[] restrictionValues) 的 填充码
+
+
+ 设置 SQLiteConnection.GetTemporaryCatalogName() 的 填充码
+
+
+ 设置 SQLiteConnection.GetTypeMappings() 的 填充码
+
+
+ 设置 SQLiteConnection.HasInMemoryDataSource(SQLiteConnection connection, String connectionString, Boolean parseViaFramework) 的 填充码
+
+
+ 设置 SQLiteConnection.InitializeDefaults() 的 填充码
+
+
+ 设置 SQLiteConnection.get_InteropCompileOptions() 的 填充码
+
+
+ 设置 SQLiteConnection.get_InteropSourceId() 的 填充码
+
+
+ 设置 SQLiteConnection.get_InteropVersion() 的 填充码
+
+
+ 设置 SQLiteConnection.IsCanceled() 的 填充码
+
+
+ 设置 SQLiteConnection.IsDefaultCatalogName(String catalogName) 的 填充码
+
+
+ 设置 SQLiteConnection.IsReadOnly(String name) 的 填充码
+
+
+ 设置 SQLiteConnection.IsTemporaryCatalogName(String catalogName) 的 填充码
+
+
+ 设置 SQLiteConnection.get_LastInsertRowId() 的 填充码
+
+
+ 设置 SQLiteConnection.LoadExtension(String fileName) 的 填充码
+
+
+ 设置 SQLiteConnection.LoadExtension(String fileName, String procName) 的 填充码
+
+
+ 设置 SQLiteConnection.LogMessage(Int32 iErrCode, String zMessage) 的 填充码
+
+
+ 设置 SQLiteConnection.LogMessage(SQLiteErrorCode iErrCode, String zMessage) 的 填充码
+
+
+ 设置 SQLiteConnection.MapUriPath(String path) 的 填充码
+
+
+ 设置 SQLiteConnection.get_MemoryHighwater() 的 填充码
+
+
+ 设置 SQLiteConnection.get_MemoryUsed() 的 填充码
+
+
+ 设置 SQLiteConnection.OnChanged(SQLiteConnection connection, ConnectionEventArgs e) 的 填充码
+
+
+ 设置 SQLiteConnection.OnStateChange(ConnectionState newState, StateChangeEventArgs& eventArgs) 的 填充码
+
+
+ 设置 SQLiteConnection.Open() 的 填充码
+
+
+ 设置 SQLiteConnection.OpenAndReturn() 的 填充码
+
+
+ 设置 SQLiteConnection.get_OpenCount() 的 填充码
+
+
+ 设置 SQLiteConnection.get_OwnHandle() 的 填充码
+
+
+ 设置 SQLiteConnection.ParseConnectionString(SQLiteConnection connection, String connectionString, Boolean allowNameOnly) 的 填充码
+
+
+ 设置 SQLiteConnection.ParseConnectionString(SQLiteConnection connection, String connectionString, Boolean parseViaFramework, Boolean allowNameOnly, Boolean strict) 的 填充码
+
+
+ 设置 SQLiteConnection.ParseConnectionString(String connectionString, Boolean allowNameOnly) 的 填充码
+
+
+ 设置 SQLiteConnection.ParseConnectionString(String connectionString, Boolean parseViaFramework, Boolean allowNameOnly, Boolean strict) 的 填充码
+
+
+ 设置 SQLiteConnection.ParseConnectionStringViaFramework(SQLiteConnection connection, String connectionString, Boolean strict) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ParseViaFramework() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ParseViaFramework(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_PoolCount() 的 填充码
+
+
+ 设置 SQLiteConnection.get_PrepareRetries() 的 填充码
+
+
+ 设置 SQLiteConnection.set_PrepareRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Progress(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.ProgressCallback(IntPtr pUserData) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ProgressOps() 的 填充码
+
+
+ 设置 SQLiteConnection.set_ProgressOps(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Progress(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ProviderDefineConstants() 的 填充码
+
+
+ 设置 SQLiteConnection.get_ProviderSourceId() 的 填充码
+
+
+ 设置 SQLiteConnection.get_ProviderVersion() 的 填充码
+
+
+ 设置 SQLiteConnection.ReleaseMemory() 的 填充码
+
+
+ 设置 SQLiteConnection.ReleaseMemory(Int32 nBytes, Boolean reset, Boolean compact, Int32& nFree, Boolean& resetOk, UInt32& nLargest) 的 填充码
+
+
+ 设置 SQLiteConnection.ResultCode() 的 填充码
+
+
+ 设置 SQLiteConnection.add_RollBack(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_RollBack(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.RollbackCallback(IntPtr parg) 的 填充码
+
+
+ 设置 SQLiteConnection.get_SQLiteCompileOptions() 的 填充码
+
+
+ 设置 SQLiteConnection.get_SQLiteSourceId() 的 填充码
+
+
+ 设置 SQLiteConnection.get_SQLiteVersion() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Catalogs(String strCatalog) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Columns(String strCatalog, String strTable, String strColumn) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_DataSourceInformation() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_DataTypes() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_ForeignKeys(String strCatalog, String strTable, String strKeyName) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_IndexColumns(String strCatalog, String strTable, String strIndex, String strColumn) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Indexes(String strCatalog, String strTable, String strIndex) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_MetaDataCollections() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_ReservedWords() 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Tables(String strCatalog, String strTable, String strType) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Triggers(String catalog, String table, String triggerName) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_ViewColumns(String strCatalog, String strView, String strColumn) 的 填充码
+
+
+ 设置 SQLiteConnection.Schema_Views(String strCatalog, String strView) 的 填充码
+
+
+ 设置 SQLiteConnection.Serialize(String schema) 的 填充码
+
+
+ 设置 SQLiteConnection.get_ServerVersion() 的 填充码
+
+
+ 设置 SQLiteConnection.SetAvRetry(Int32& count, Int32& interval) 的 填充码
+
+
+ 设置 SQLiteConnection.SetCachedSetting(String name, Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetChunkSize(Int32 size) 的 填充码
+
+
+ 设置 SQLiteConnection.SetConfigurationOption(SQLiteConfigDbOpsEnum option, Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetExtendedResultCodes(Boolean bOnOff) 的 填充码
+
+
+ 设置 SQLiteConnection.SetLastCachedSetting(String name, Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetLimitOption(SQLiteLimitOpsEnum option, Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetMemoryStatus(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnection.SetPassword(Byte[] databasePassword) 的 填充码
+
+
+ 设置 SQLiteConnection.SetPassword(String databasePassword) 的 填充码
+
+
+ 设置 SQLiteConnection.SetTypeCallbacks(String typeName, SQLiteTypeCallbacks callbacks) 的 填充码
+
+
+ 设置 SQLiteConnection.SetupSQLiteBase(SortedList`2<String,String> opts) 的 填充码
+
+
+ 设置 SQLiteConnection.get_SharedFlags() 的 填充码
+
+
+ 设置 SQLiteConnection.set_SharedFlags(SQLiteConnectionFlags value) 的 填充码
+
+
+ 设置 SQLiteConnection.ShouldUseLegacyConnectionStringParser(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConnection.Shutdown() 的 填充码
+
+
+ 设置 SQLiteConnection.Shutdown(Boolean directories, Boolean noThrow) 的 填充码
+
+
+ 设置 SQLiteConnection.add_StateChange(StateChangeEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_StateChange(StateChangeEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_State() 的 填充码
+
+
+ 设置 SQLiteConnection.SQLiteConnection() 的 填充码
+
+
+ 设置 SQLiteConnection.get_StepRetries() 的 填充码
+
+
+ 设置 SQLiteConnection.set_StepRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_Tag() 的 填充码
+
+
+ 设置 SQLiteConnection.set_Tag(Object value) 的 填充码
+
+
+ 设置 SQLiteConnection.ToHexString(Byte[] array) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Trace2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Trace2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Trace(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.TraceCallback2(SQLiteTraceFlags flags, IntPtr pUser, IntPtr pCtx1, IntPtr pCtx2) 的 填充码
+
+
+ 设置 SQLiteConnection.TraceCallback(IntPtr pUser, IntPtr statement) 的 填充码
+
+
+ 设置 SQLiteConnection.get_TraceFlags() 的 填充码
+
+
+ 设置 SQLiteConnection.set_TraceFlags(SQLiteTraceFlags value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Trace(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.TryGetCachedSetting(String name, Object default, Object& value) 的 填充码
+
+
+ 设置 SQLiteConnection.TryGetLastCachedSetting(String name, Object default, Object& value) 的 填充码
+
+
+ 设置 SQLiteConnection.TryGetTypeCallbacks(String typeName, SQLiteTypeCallbacks& callbacks) 的 填充码
+
+
+ 设置 SQLiteConnection.TryParseByte(String value, NumberStyles style, Byte& result) 的 填充码
+
+
+ 设置 SQLiteConnection.TryParseEnum(Type type, String value, Boolean ignoreCase) 的 填充码
+
+
+ 设置 SQLiteConnection.UnbindAllFunctions(Boolean registered) 的 填充码
+
+
+ 设置 SQLiteConnection.UnbindFunction(SQLiteFunctionAttribute functionAttribute) 的 填充码
+
+
+ 设置 SQLiteConnection.UnwrapString(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.add_Update(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.UpdateCallback(IntPtr puser, Int32 type, IntPtr database, IntPtr table, Int64 rowid) 的 填充码
+
+
+ 设置 SQLiteConnection.remove_Update(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.get_VfsName() 的 填充码
+
+
+ 设置 SQLiteConnection.set_VfsName(String value) 的 填充码
+
+
+ 设置 SQLiteConnection.WaitForEnlistmentReset(Int32 timeoutMilliseconds, Nullable`1<Boolean> returnOnDisposed) 的 填充码
+
+
+ 设置 SQLiteConnection.get_WaitTimeout() 的 填充码
+
+
+ 设置 SQLiteConnection.set_WaitTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__authorizerHandler(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__authorizerHandler(SQLiteAuthorizerEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__busyHandler(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__busyHandler(SQLiteBusyEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__commitHandler(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__commitHandler(SQLiteCommitHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__handlers(SQLiteConnectionEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__handlers(SQLiteConnectionEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__progressHandler(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__progressHandler(SQLiteProgressEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__rollbackHandler(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__rollbackHandler(EventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__traceHandler2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__traceHandler2(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__traceHandler(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__traceHandler(SQLiteTraceEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.add__updateHandler(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ 设置 SQLiteConnection.remove__updateHandler(SQLiteUpdateEventHandler value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteConnectionStringBuilder 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_BaseSchemaName() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_BaseSchemaName(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_BinaryGUID() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_BinaryGUID(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_BusyTimeout() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_BusyTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_CacheSize() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_CacheSize(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DataSource() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DataSource(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DateTimeFormat() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DateTimeFormat(SQLiteDateFormats value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DateTimeFormatString() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DateTimeFormatString(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DateTimeKind() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DateTimeKind(DateTimeKind value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultDbType() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultDbType(DbType value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultIsolationLevel() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultIsolationLevel(IsolationLevel value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultMaximumSleepTime() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultMaximumSleepTime(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultTimeout() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultTypeName() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultTypeName(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Enlist() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Enlist(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_FailIfMissing() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_FailIfMissing(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.FallbackGetProperties(Hashtable propertyList) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Flags() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Flags(SQLiteConnectionFlags value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ForeignKeys() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ForeignKeys(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_FullUri() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_FullUri(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_HexPassword() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_HexPassword(Byte[] value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.Initialize(String cnnString) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_JournalMode() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_JournalMode(SQLiteJournalModeEnum value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_LegacyFormat() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_LegacyFormat(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_MaxPageCount() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_MaxPageCount(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_NoDefaultFlags() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_NoDefaultFlags(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_NoSharedFlags() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_NoSharedFlags(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_PageSize() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_PageSize(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Password() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Password(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Pooling() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Pooling(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_PrepareRetries() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_PrepareRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ProgressOps() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ProgressOps(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ReadOnly() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ReadOnly(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_RecursiveTriggers() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_RecursiveTriggers(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_SetDefaults() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_SetDefaults(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_StepRetries() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_StepRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_SyncMode() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_SyncMode(SynchronizationModes value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_TextHexPassword() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_TextHexPassword(Byte[] value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_TextPassword() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_TextPassword(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ToFullPath() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ToFullPath(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.TryGetValue(String keyword, Object& value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Uri() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Uri(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_UseUTF16Encoding() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_UseUTF16Encoding(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Version() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Version(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_VfsName() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_VfsName(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_WaitTimeout() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_WaitTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ZipVfsVersion() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ZipVfsVersion(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_BaseSchemaName() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_BaseSchemaName(String value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteConnectionStringBuilder.get_BinaryGUID() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_BinaryGUID(Boolean value) 的 填充码
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteConnectionStringBuilder.get_BusyTimeout() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_BusyTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_CacheSize() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_CacheSize(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.SQLiteConnectionStringBuilder() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.SQLiteConnectionStringBuilder(String connectionString) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DataSource() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DataSource(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DateTimeFormat() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DateTimeFormat(SQLiteDateFormats value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DateTimeFormatString() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DateTimeFormatString(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DateTimeKind() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DateTimeKind(DateTimeKind value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultDbType() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultDbType(DbType value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultIsolationLevel() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultIsolationLevel(IsolationLevel value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultMaximumSleepTime() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultMaximumSleepTime(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultTimeout() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_DefaultTypeName() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_DefaultTypeName(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Enlist() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Enlist(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_FailIfMissing() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_FailIfMissing(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.FallbackGetProperties(Hashtable propertyList) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Flags() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Flags(SQLiteConnectionFlags value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ForeignKeys() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ForeignKeys(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_FullUri() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_FullUri(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_HexPassword() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_HexPassword(Byte[] value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.Initialize(String cnnString) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_JournalMode() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_JournalMode(SQLiteJournalModeEnum value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_LegacyFormat() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_LegacyFormat(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_MaxPageCount() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_MaxPageCount(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_NoDefaultFlags() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_NoDefaultFlags(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_NoSharedFlags() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_NoSharedFlags(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_PageSize() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_PageSize(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Password() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Password(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Pooling() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Pooling(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_PrepareRetries() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_PrepareRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ProgressOps() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ProgressOps(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ReadOnly() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ReadOnly(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_RecursiveTriggers() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_RecursiveTriggers(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_SetDefaults() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_SetDefaults(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_StepRetries() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_StepRetries(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_SyncMode() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_SyncMode(SynchronizationModes value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_TextHexPassword() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_TextHexPassword(Byte[] value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_TextPassword() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_TextPassword(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ToFullPath() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ToFullPath(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.TryGetValue(String keyword, Object& value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Uri() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Uri(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_UseUTF16Encoding() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_UseUTF16Encoding(Boolean value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_Version() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_Version(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_VfsName() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_VfsName(String value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_WaitTimeout() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_WaitTimeout(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.get_ZipVfsVersion() 的 填充码
+
+
+ 设置 SQLiteConnectionStringBuilder.set_ZipVfsVersion(String value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteContext 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteContext.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteContext.NoChange() 的 填充码
+
+
+ 设置 SQLiteContext.SetBlob(Byte[] value) 的 填充码
+
+
+ 设置 SQLiteContext.SetDouble(Double value) 的 填充码
+
+
+ 设置 SQLiteContext.SetErrorCode(SQLiteErrorCode value) 的 填充码
+
+
+ 设置 SQLiteContext.SetErrorNoMemory() 的 填充码
+
+
+ 设置 SQLiteContext.SetError(String value) 的 填充码
+
+
+ 设置 SQLiteContext.SetErrorTooBig() 的 填充码
+
+
+ 设置 SQLiteContext.SetInt64(Int64 value) 的 填充码
+
+
+ 设置 SQLiteContext.SetInt(Int32 value) 的 填充码
+
+
+ 设置 SQLiteContext.SetNull() 的 填充码
+
+
+ 设置 SQLiteContext.SetString(String value) 的 填充码
+
+
+ 设置 SQLiteContext.SetSubType(UInt32 value) 的 填充码
+
+
+ 设置 SQLiteContext.SetValue(SQLiteValue value) 的 填充码
+
+
+ 设置 SQLiteContext.SetZeroBlob(Int32 value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteContext.SQLiteContext(IntPtr pContext) 的 填充码
+
+
+ 设置 SQLiteContext.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteContext.NoChange() 的 填充码
+
+
+ 设置 SQLiteContext.SetBlob(Byte[] value) 的 填充码
+
+
+ 设置 SQLiteContext.SetDouble(Double value) 的 填充码
+
+
+ 设置 SQLiteContext.SetErrorCode(SQLiteErrorCode value) 的 填充码
+
+
+ 设置 SQLiteContext.SetErrorNoMemory() 的 填充码
+
+
+ 设置 SQLiteContext.SetError(String value) 的 填充码
+
+
+ 设置 SQLiteContext.SetErrorTooBig() 的 填充码
+
+
+ 设置 SQLiteContext.SetInt64(Int64 value) 的 填充码
+
+
+ 设置 SQLiteContext.SetInt(Int32 value) 的 填充码
+
+
+ 设置 SQLiteContext.SetNull() 的 填充码
+
+
+ 设置 SQLiteContext.SetString(String value) 的 填充码
+
+
+ 设置 SQLiteContext.SetSubType(UInt32 value) 的 填充码
+
+
+ 设置 SQLiteContext.SetValue(SQLiteValue value) 的 填充码
+
+
+ 设置 SQLiteContext.SetZeroBlob(Int32 value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteConvert 的填充码类型
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(Double julianDay) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(IntPtr ptr, Int32 len) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(String dateText) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(DateTime dateValue) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(IntPtr nativestring, Int32 nativestringlen) 的 填充码
+
+
+ 设置 SQLiteConvert.ToUTF8(DateTime dateTimeValue) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteConvert.SQLiteConvert(SQLiteDateFormats fmt, DateTimeKind kind, String fmtString) 的 填充码
+
+
+ 设置 SQLiteConvert.DbTypeToColumnSize(DbType typ) 的 填充码
+
+
+ 设置 SQLiteConvert.DbTypeToNumericPrecision(DbType typ) 的 填充码
+
+
+ 设置 SQLiteConvert.DbTypeToNumericScale(DbType typ) 的 填充码
+
+
+ 设置 SQLiteConvert.DbTypeToType(DbType typ) 的 填充码
+
+
+ 设置 SQLiteConvert.DbTypeToTypeName(SQLiteConnection connection, DbType dbType, SQLiteConnectionFlags flags) 的 填充码
+
+
+ 设置 SQLiteConvert.DefaultDbTypeWarning(String typeName, SQLiteConnectionFlags flags, Nullable`1<DbType> dbType) 的 填充码
+
+
+ 设置 SQLiteConvert.DefaultTypeNameWarning(DbType dbType, SQLiteConnectionFlags flags, String typeName) 的 填充码
+
+
+ 设置 SQLiteConvert.DoubleToJd(Double julianDay) 的 填充码
+
+
+ 设置 SQLiteConvert.GetDateTimeKindFormat(DateTimeKind kind, String formatString) 的 填充码
+
+
+ 设置 SQLiteConvert.GetDefaultDbType(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConvert.GetDefaultTypeName(SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteConvert.GetStringOrNull(Object value) 的 填充码
+
+
+ 设置 SQLiteConvert.IsStringDbType(DbType type) 的 填充码
+
+
+ 设置 SQLiteConvert.JdToDouble(Int64 jd) 的 填充码
+
+
+ 设置 SQLiteConvert.LooksLikeDateTime(SQLiteConvert convert, String text) 的 填充码
+
+
+ 设置 SQLiteConvert.LooksLikeDouble(String text) 的 填充码
+
+
+ 设置 SQLiteConvert.LooksLikeInt64(String text) 的 填充码
+
+
+ 设置 SQLiteConvert.LooksLikeNull(String text) 的 填充码
+
+
+ 设置 SQLiteConvert.NewSplit(String value, Char separator, Boolean keepQuote, String& error) 的 填充码
+
+
+ 设置 SQLiteConvert.SettingValueToString(Object value) 的 填充码
+
+
+ 设置 SQLiteConvert.Split(String source, Char separator) 的 填充码
+
+
+ 设置 SQLiteConvert.SQLiteConvert() 的 填充码
+
+
+ 设置 SQLiteConvert.TicksToDateTime(Int64 ticks, DateTimeKind kind) 的 填充码
+
+
+ 设置 SQLiteConvert.ToBoolean(Object source) 的 填充码
+
+
+ 设置 SQLiteConvert.ToBoolean(Object obj, IFormatProvider provider, Boolean viaFramework) 的 填充码
+
+
+ 设置 SQLiteConvert.ToBoolean(String source) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(Double julianDay) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(Double julianDay, DateTimeKind kind) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(IntPtr ptr, Int32 len) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(String dateText) 的 填充码
+
+
+ 设置 SQLiteConvert.ToDateTime(String dateText, SQLiteDateFormats format, DateTimeKind kind, String formatString) 的 填充码
+
+
+ 设置 SQLiteConvert.ToJulianDay(Nullable`1<DateTime> value) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(DateTime dateValue) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(DateTime dateValue, SQLiteDateFormats format, DateTimeKind kind, String formatString) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(IList`1<String> list, Boolean emptyOnNull) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(Int32 value) 的 填充码
+
+
+ 设置 SQLiteConvert.ToString(IntPtr nativestring, Int32 nativestringlen) 的 填充码
+
+
+ 设置 SQLiteConvert.ToStringWithProvider(Object obj, IFormatProvider provider) 的 填充码
+
+
+ 设置 SQLiteConvert.ToUTF8(DateTime dateTimeValue) 的 填充码
+
+
+ 设置 SQLiteConvert.ToUTF8(String sourceText) 的 填充码
+
+
+ 设置 SQLiteConvert.ToUnixEpoch(DateTime value) 的 填充码
+
+
+ 设置 SQLiteConvert.TypeNameToDbType(SQLiteConnection connection, String typeName, SQLiteConnectionFlags flags) 的 填充码
+
+
+ 设置 SQLiteConvert.TypeToAffinity(Type typ, SQLiteConnectionFlags flags) 的 填充码
+
+
+ 设置 SQLiteConvert.TypeToDbType(Type type) 的 填充码
+
+
+ 设置 SQLiteConvert.UTF8ToString(IntPtr nativestring, Int32 nativestringlen) 的 填充码
+
+
+ 设置 SQLiteConvert.UnixEpochToDateTime(Int64 seconds, DateTimeKind kind) 的 填充码
+
+
+ 设置 SQLiteConvert.computeHMS(Int64 jd, Nullable`1<DateTime> badValue) 的 填充码
+
+
+ 设置 SQLiteConvert.computeJD(Nullable`1<DateTime> dateTime) 的 填充码
+
+
+ 设置 SQLiteConvert.computeYMD(Int64 jd, Nullable`1<DateTime> badValue) 的 填充码
+
+
+ 设置 SQLiteConvert.isValidJd(Int64 jd) 的 填充码
+
+
+ System.Data.SQLite.SQLiteDataAdapter 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteDataAdapter.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_DeleteCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_DeleteCommand(SQLiteCommand value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_InsertCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_InsertCommand(SQLiteCommand value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.OnRowUpdated(RowUpdatedEventArgs value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.OnRowUpdating(RowUpdatingEventArgs value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.add_RowUpdated(EventHandler`1<RowUpdatedEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.remove_RowUpdated(EventHandler`1<RowUpdatedEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.add_RowUpdating(EventHandler`1<RowUpdatingEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.remove_RowUpdating(EventHandler`1<RowUpdatingEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_SelectCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_SelectCommand(SQLiteCommand value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_UpdateCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_UpdateCommand(SQLiteCommand value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteDataAdapter.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.SQLiteDataAdapter() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.SQLiteDataAdapter(SQLiteCommand cmd) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.SQLiteDataAdapter(String commandText, SQLiteConnection connection) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.SQLiteDataAdapter(String commandText, String connectionString) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.SQLiteDataAdapter(String commandText, String connectionString, Boolean parseViaFramework) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_DeleteCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_DeleteCommand(SQLiteCommand value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.FindBuilder(MulticastDelegate mcd) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_InsertCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_InsertCommand(SQLiteCommand value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.OnRowUpdated(RowUpdatedEventArgs value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.OnRowUpdating(RowUpdatingEventArgs value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.add_RowUpdated(EventHandler`1<RowUpdatedEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.remove_RowUpdated(EventHandler`1<RowUpdatedEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.add_RowUpdating(EventHandler`1<RowUpdatingEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.remove_RowUpdating(EventHandler`1<RowUpdatingEventArgs> value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_SelectCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_SelectCommand(SQLiteCommand value) 的 填充码
+
+
+ 设置 SQLiteDataAdapter.SQLiteDataAdapter() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.get_UpdateCommand() 的 填充码
+
+
+ 设置 SQLiteDataAdapter.set_UpdateCommand(SQLiteCommand value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteDataReader 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteDataReader.Cancel() 的 填充码
+
+
+ 设置 SQLiteDataReader.CheckClosed() 的 填充码
+
+
+ 设置 SQLiteDataReader.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteDataReader.CheckValidRow() 的 填充码
+
+
+ 设置 SQLiteDataReader.Close() 的 填充码
+
+
+ 设置 SQLiteDataReader.get_Depth() 的 填充码
+
+
+ 设置 SQLiteDataReader.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_FieldCount() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetBlob(Int32 i, Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetBoolean(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetByte(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetChar(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetChars(Int32 i, Int64 fieldoffset, Char[] buffer, Int32 bufferoffset, Int32 length) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDataTypeName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDatabaseName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDateTime(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDecimal(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDouble(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetEnumerator() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetFieldAffinity(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetFieldType(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetFloat(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetGuid(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetInt16(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetInt32(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetInt64(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetOrdinal(String name) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetOriginalName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetRowId(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetSchemaTable() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetSchemaTable(Boolean wantUniqueInfo, Boolean wantDefaultValue) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetString(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetTableName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetValue(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetValues() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetValues(Object[] values) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_HasRows() 的 填充码
+
+
+ 设置 SQLiteDataReader.InvokeReadValueCallback(Int32 index, SQLiteReadEventArgs eventArgs, Boolean& complete) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_IsClosed() 的 填充码
+
+
+ 设置 SQLiteDataReader.IsDBNull(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_Item(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_Item(String name) 的 填充码
+
+
+ 设置 SQLiteDataReader.LoadKeyInfo() 的 填充码
+
+
+ 设置 SQLiteDataReader.NextResult() 的 填充码
+
+
+ 设置 SQLiteDataReader.PrivateRead(Boolean ignoreSingleRow) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_PrivateVisibleFieldCount() 的 填充码
+
+
+ 设置 SQLiteDataReader.Read() 的 填充码
+
+
+ 设置 SQLiteDataReader.get_RecordsAffected() 的 填充码
+
+
+ 设置 SQLiteDataReader.RefreshFlags() 的 填充码
+
+
+ 设置 SQLiteDataReader.ResetIterationState() 的 填充码
+
+
+ 设置 SQLiteDataReader.get_StepCount() 的 填充码
+
+
+ 设置 SQLiteDataReader.VerifyForGet() 的 填充码
+
+
+ 设置 SQLiteDataReader.VerifyType(Int32 i, DbType typ) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_VisibleFieldCount() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteDataReader.Cancel() 的 填充码
+
+
+ 设置 SQLiteDataReader.CheckClosed() 的 填充码
+
+
+ 设置 SQLiteDataReader.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteDataReader.CheckValidRow() 的 填充码
+
+
+ 设置 SQLiteDataReader.Close() 的 填充码
+
+
+ 设置 SQLiteDataReader.SQLiteDataReader(SQLiteCommand cmd, CommandBehavior behave) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_Depth() 的 填充码
+
+
+ 设置 SQLiteDataReader.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_FieldCount() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetBlob(Int32 i, Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetBoolean(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetByte(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetChar(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetChars(Int32 i, Int64 fieldoffset, Char[] buffer, Int32 bufferoffset, Int32 length) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetConnection(SQLiteDataReader dataReader) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDataTypeName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDatabaseName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDateTime(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDecimal(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetDouble(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetEnumerator() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetFieldAffinity(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetFieldType(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetFloat(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetGuid(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetInt16(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetInt32(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetInt64(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetOrdinal(String name) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetOriginalName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetRowId(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetSchemaTable() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetSchemaTable(Boolean wantUniqueInfo, Boolean wantDefaultValue) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetString(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetTableName(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetValue(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.GetValues() 的 填充码
+
+
+ 设置 SQLiteDataReader.GetValues(Object[] values) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_HasRows() 的 填充码
+
+
+ 设置 SQLiteDataReader.InvokeReadValueCallback(Int32 index, SQLiteReadEventArgs eventArgs, Boolean& complete) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_IsClosed() 的 填充码
+
+
+ 设置 SQLiteDataReader.IsDBNull(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_Item(Int32 i) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_Item(String name) 的 填充码
+
+
+ 设置 SQLiteDataReader.LoadKeyInfo() 的 填充码
+
+
+ 设置 SQLiteDataReader.NextResult() 的 填充码
+
+
+ 设置 SQLiteDataReader.PrivateRead(Boolean ignoreSingleRow) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_PrivateVisibleFieldCount() 的 填充码
+
+
+ 设置 SQLiteDataReader.Read() 的 填充码
+
+
+ 设置 SQLiteDataReader.get_RecordsAffected() 的 填充码
+
+
+ 设置 SQLiteDataReader.RefreshFlags() 的 填充码
+
+
+ 设置 SQLiteDataReader.ResetIterationState() 的 填充码
+
+
+ 设置 SQLiteDataReader.get_StepCount() 的 填充码
+
+
+ 设置 SQLiteDataReader.VerifyForGet() 的 填充码
+
+
+ 设置 SQLiteDataReader.VerifyType(Int32 i, DbType typ) 的 填充码
+
+
+ 设置 SQLiteDataReader.get_VisibleFieldCount() 的 填充码
+
+
+ System.Data.SQLite.SQLiteDataReaderValue 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteDataReaderValue.SQLiteDataReaderValue() 的 填充码
+
+
+ System.Data.SQLite.SQLiteDelegateFunction 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback1() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback1(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback2() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback2(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback3() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback3(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback4() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback4(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Compare(String param1, String param2) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Final(Object contextData) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetCompareArgs(String param1, String param2, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetFinalArgs(Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetInverseArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetInvokeArgs(Object[] args, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetStepArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetValueArgs(Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Invoke(Object[] args) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.UpdateInverseArgs(Object[] args, Object& contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.UpdateStepArgs(Object[] args, Object& contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Value(Object contextData) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteDelegateFunction.get_Callback1() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback1(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback2() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback2(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback3() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback3(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.get_Callback4() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.set_Callback4(Delegate value) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Compare(String param1, String param2) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.SQLiteDelegateFunction() 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.SQLiteDelegateFunction(Delegate callback1, Delegate callback2) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.SQLiteDelegateFunction(Delegate callback1, Delegate callback2, Delegate callback3, Delegate callback4) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Final(Object contextData) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetCompareArgs(String param1, String param2, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetFinalArgs(Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetInverseArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetInvokeArgs(Object[] args, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetStepArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.GetValueArgs(Object contextData, Boolean earlyBound) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Invoke(Object[] args) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteDelegateFunction.Value(Object contextData) 的 填充码
+
+
+ System.Data.SQLite.SQLiteException 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteException.get_ErrorCode() 的 填充码
+
+
+ 设置 SQLiteException.GetObjectData(SerializationInfo info, StreamingContext context) 的 填充码
+
+
+ 设置 SQLiteException.Initialize() 的 填充码
+
+
+ 设置 SQLiteException.get_ResultCode() 的 填充码
+
+
+ 设置 SQLiteException.ToString() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteException.SQLiteException() 的 填充码
+
+
+ 设置 SQLiteException.SQLiteException(SQLiteErrorCode errorCode, String message) 的 填充码
+
+
+ 设置 SQLiteException.SQLiteException(SerializationInfo info, StreamingContext context) 的 填充码
+
+
+ 设置 SQLiteException.SQLiteException(String message) 的 填充码
+
+
+ 设置 SQLiteException.SQLiteException(String message, Exception innerException) 的 填充码
+
+
+ 设置 SQLiteException.get_ErrorCode() 的 填充码
+
+
+ 设置 SQLiteException.GetErrorCodeForHResult(Int32 hResult) 的 填充码
+
+
+ 设置 SQLiteException.GetErrorString(SQLiteErrorCode errorCode) 的 填充码
+
+
+ 设置 SQLiteException.GetHResultForErrorCode(SQLiteErrorCode errorCode) 的 填充码
+
+
+ 设置 SQLiteException.GetObjectData(SerializationInfo info, StreamingContext context) 的 填充码
+
+
+ 设置 SQLiteException.GetStockErrorMessage(SQLiteErrorCode errorCode, String message) 的 填充码
+
+
+ 设置 SQLiteException.Initialize() 的 填充码
+
+
+ 设置 SQLiteException.MakeHResult(Int32 errorCode, Boolean success) 的 填充码
+
+
+ 设置 SQLiteException.MaybeMutateErrorCode(Int32 value) 的 填充码
+
+
+ 设置 SQLiteException.MaybeMutateErrorCode(SQLiteErrorCode value) 的 填充码
+
+
+ 设置 SQLiteException.get_ResultCode() 的 填充码
+
+
+ 设置 SQLiteException.ToString() 的 填充码
+
+
+ System.Data.SQLite.SQLiteExtra 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 设置 SQLiteExtra.AddNativeExitedEventHandler() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteExtra.BuildUri(String baseUri, Assembly assembly, String error) 的 填充码
+
+
+ 设置 SQLiteExtra.CertificateToString(IList`1<String> certificate) 的 填充码
+
+
+ 设置 SQLiteExtra.CheckForCrashFile() 的 填充码
+
+
+ 设置 SQLiteExtra.Cleanup() 的 填充码
+
+
+ 设置 SQLiteExtra.CleanupNativeEnvironmentVariables(Object sender, EventArgs e) 的 填充码
+
+
+ 设置 SQLiteExtra.Configure(String argument) 的 填充码
+
+
+ 设置 SQLiteExtra.CreateWaitCallback(String argument) 的 填充码
+
+
+ 设置 SQLiteExtra.DisplayString(String value, Boolean wrap) 的 填充码
+
+
+ 设置 SQLiteExtra.EscapeUriString(String value) 的 填充码
+
+
+ 设置 SQLiteExtra.GetAssemblyTitle(Assembly assembly) 的 填充码
+
+
+ 设置 SQLiteExtra.GetCrashFileName() 的 填充码
+
+
+ 设置 SQLiteExtra.NativeVerify(IntPtr pCookie) 的 填充码
+
+
+ 设置 SQLiteExtra.ShouldVerify() 的 填充码
+
+
+ 设置 SQLiteExtra.SQLiteExtra() 的 填充码
+
+
+ 设置 SQLiteExtra.TrackNativeEnvironmentVariable(String variable) 的 填充码
+
+
+ 设置 SQLiteExtra.Verify(String argument) 的 填充码
+
+
+ 设置 SQLiteExtra.WriteCrashFile(String methodName, String argument, String error) 的 填充码
+
+
+ System.Data.SQLite.SQLiteFactory 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteFactory.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateCommand() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateCommandBuilder() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateConnection() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateConnectionStringBuilder() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateDataAdapter() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateParameter() 的 填充码
+
+
+ 设置 SQLiteFactory.Dispose() 的 填充码
+
+
+ 设置 SQLiteFactory.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteFactory.GetSQLiteProviderServicesInstance() 的 填充码
+
+
+ 设置 SQLiteFactory.add_Log(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteFactory.remove_Log(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteFactory.System.IServiceProvider.GetService(Type serviceType) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteFactory.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteFactory.SQLiteFactory() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateCommand() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateCommandBuilder() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateConnection() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateConnectionStringBuilder() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateDataAdapter() 的 填充码
+
+
+ 设置 SQLiteFactory.CreateParameter() 的 填充码
+
+
+ 设置 SQLiteFactory.Dispose() 的 填充码
+
+
+ 设置 SQLiteFactory.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteFactory.GetSQLiteProviderServicesInstance() 的 填充码
+
+
+ 设置 SQLiteFactory.InitializeDbProviderServices() 的 填充码
+
+
+ 设置 SQLiteFactory.add_Log(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteFactory.remove_Log(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteFactory.PreInitialize() 的 填充码
+
+
+ 设置 SQLiteFactory.SQLiteFactory() 的 填充码
+
+
+ 设置 SQLiteFactory.System.IServiceProvider.GetService(Type serviceType) 的 填充码
+
+
+ System.Data.SQLite.SQLiteFunction 的填充码类型
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteFunction.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteFunction.CheckParameterIndex(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.CompareCallback16(IntPtr ptr, Int32 len1, IntPtr ptr1, Int32 len2, IntPtr ptr2) 的 填充码
+
+
+ 设置 SQLiteFunction.CompareCallback(IntPtr ptr, Int32 len1, IntPtr ptr1, Int32 len2, IntPtr ptr2) 的 填充码
+
+
+ 设置 SQLiteFunction.Compare(String param1, String param2) 的 填充码
+
+
+ 设置 SQLiteFunction.ConvertParams(Int32 nArgs, IntPtr argsptr, IntPtr[]& paramptrs) 的 填充码
+
+
+ 设置 SQLiteFunction.Dispose() 的 填充码
+
+
+ 设置 SQLiteFunction.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteFunction.FinalCallback(IntPtr context) 的 填充码
+
+
+ 设置 SQLiteFunction.Final(Object contextData) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterFromBind(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterNoChange(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterNumericType(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterSubType(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.InverseCallback(IntPtr context, Int32 nArgs, IntPtr argsptr) 的 填充码
+
+
+ 设置 SQLiteFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteFunction.Invoke(Object[] args) 的 填充码
+
+
+ 设置 SQLiteFunction.get_SQLiteConvert() 的 填充码
+
+
+ 设置 SQLiteFunction.ScalarCallback(IntPtr context, Int32 nArgs, IntPtr argsptr) 的 填充码
+
+
+ 设置 SQLiteFunction.SetReturnSubType(UInt32 value) 的 填充码
+
+
+ 设置 SQLiteFunction.SetReturnValue(IntPtr context, Object returnValue) 的 填充码
+
+
+ 设置 SQLiteFunction.StepCallback(IntPtr context, Int32 nArgs, IntPtr argsptr) 的 填充码
+
+
+ 设置 SQLiteFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteFunction.ValueCallback(IntPtr context) 的 填充码
+
+
+ 设置 SQLiteFunction.Value(Object contextData) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteFunction.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteFunction.CheckParameterIndex(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.CompareCallback16(IntPtr ptr, Int32 len1, IntPtr ptr1, Int32 len2, IntPtr ptr2) 的 填充码
+
+
+ 设置 SQLiteFunction.CompareCallback(IntPtr ptr, Int32 len1, IntPtr ptr1, Int32 len2, IntPtr ptr2) 的 填充码
+
+
+ 设置 SQLiteFunction.Compare(String param1, String param2) 的 填充码
+
+
+ 设置 SQLiteFunction.SQLiteFunction() 的 填充码
+
+
+ 设置 SQLiteFunction.SQLiteFunction(SQLiteDateFormats format, DateTimeKind kind, String formatString, Boolean utf16) 的 填充码
+
+
+ 设置 SQLiteFunction.ConvertParams(Int32 nArgs, IntPtr argsptr, IntPtr[]& paramptrs) 的 填充码
+
+
+ 设置 SQLiteFunction.CreateFunction(SQLiteFunctionAttribute functionAttribute, SQLiteFunction& function) 的 填充码
+
+
+ 设置 SQLiteFunction.Dispose() 的 填充码
+
+
+ 设置 SQLiteFunction.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteFunction.FinalCallback(IntPtr context) 的 填充码
+
+
+ 设置 SQLiteFunction.Final(Object contextData) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterFromBind(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterNoChange(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterNumericType(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.GetParameterSubType(Int32 index) 的 填充码
+
+
+ 设置 SQLiteFunction.InverseCallback(IntPtr context, Int32 nArgs, IntPtr argsptr) 的 填充码
+
+
+ 设置 SQLiteFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteFunction.Invoke(Object[] args) 的 填充码
+
+
+ 设置 SQLiteFunction.RegisterFunction(String name, Int32 argumentCount, FunctionType functionType, SQLiteFunctionFlags functionFlags, Type instanceType, Delegate callback1, Delegate callback2, Delegate callback3, Delegate callback4) 的 填充码
+
+
+ 设置 SQLiteFunction.RegisterFunction(String name, Int32 argumentCount, FunctionType functionType, Type instanceType, Delegate callback1, Delegate callback2) 的 填充码
+
+
+ 设置 SQLiteFunction.RegisterFunction(Type typ) 的 填充码
+
+
+ 设置 SQLiteFunction.ReplaceFunction(SQLiteFunctionAttribute at, Object newValue) 的 填充码
+
+
+ 设置 SQLiteFunction.get_SQLiteConvert() 的 填充码
+
+
+ 设置 SQLiteFunction.ScalarCallback(IntPtr context, Int32 nArgs, IntPtr argsptr) 的 填充码
+
+
+ 设置 SQLiteFunction.SetReturnSubType(UInt32 value) 的 填充码
+
+
+ 设置 SQLiteFunction.SetReturnValue(IntPtr context, Object returnValue) 的 填充码
+
+
+ 设置 SQLiteFunction.SQLiteFunction() 的 填充码
+
+
+ 设置 SQLiteFunction.StepCallback(IntPtr context, Int32 nArgs, IntPtr argsptr) 的 填充码
+
+
+ 设置 SQLiteFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 填充码
+
+
+ 设置 SQLiteFunction.ValueCallback(IntPtr context) 的 填充码
+
+
+ 设置 SQLiteFunction.Value(Object contextData) 的 填充码
+
+
+ System.Data.SQLite.SQLiteFunctionAttribute 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Arguments() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Arguments(Int32 value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback1() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback1(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback2() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback2(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback3() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback3(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback4() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback4(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_FuncFlags() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_FuncFlags(SQLiteFunctionFlags value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_FuncType() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_FuncType(FunctionType value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_InstanceType() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_InstanceType(Type value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Name() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Name(String value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Arguments() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Arguments(Int32 value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback1() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback1(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback2() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback2(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback3() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback3(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Callback4() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Callback4(Delegate value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.SQLiteFunctionAttribute() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.SQLiteFunctionAttribute(String name, Int32 argumentCount, FunctionType functionType) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.SQLiteFunctionAttribute(String name, Int32 argumentCount, FunctionType functionType, SQLiteFunctionFlags functionFlags) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_FuncFlags() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_FuncFlags(SQLiteFunctionFlags value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_FuncType() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_FuncType(FunctionType value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_InstanceType() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_InstanceType(Type value) 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.get_Name() 的 填充码
+
+
+ 设置 SQLiteFunctionAttribute.set_Name(String value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteFunctionEx 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteFunctionEx.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteFunctionEx.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteFunctionEx.GetCollationSequence() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteFunctionEx.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteFunctionEx.SQLiteFunctionEx() 的 填充码
+
+
+ 设置 SQLiteFunctionEx.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteFunctionEx.GetCollationSequence() 的 填充码
+
+
+ System.Data.SQLite.SQLiteIndex 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteIndex.get_Inputs() 的 填充码
+
+
+ 设置 SQLiteIndex.get_Outputs() 的 填充码
+
+
+ 设置 SQLiteIndex.AllocateAndInitializeNative(Int32 nConstraint, Int32 nOrderBy) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteIndex.SQLiteIndex(Int32 nConstraint, Int32 nOrderBy) 的 填充码
+
+
+ 设置 SQLiteIndex.FreeNative(IntPtr pIndex) 的 填充码
+
+
+ 设置 SQLiteIndex.FromIntPtr(IntPtr pIndex, Boolean includeOutput, SQLiteIndex& index) 的 填充码
+
+
+ 设置 SQLiteIndex.get_Inputs() 的 填充码
+
+
+ 设置 SQLiteIndex.get_Outputs() 的 填充码
+
+
+ 设置 SQLiteIndex.SizeOfNative(Int32& sizeOfInfoType, Int32& sizeOfConstraintType, Int32& sizeOfOrderByType, Int32& sizeOfConstraintUsageType) 的 填充码
+
+
+ 设置 SQLiteIndex.ToIntPtr(SQLiteIndex index, IntPtr pIndex, Boolean includeInput) 的 填充码
+
+
+ System.Data.SQLite.SQLiteIndexConstraint 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteIndexConstraint.SQLiteIndexConstraint(Int32 iColumn, SQLiteIndexConstraintOp op, Byte usable, Int32 iTermOffset) 的 填充码
+
+
+ System.Data.SQLite.SQLiteIndexConstraintUsage 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteIndexConstraintUsage.SQLiteIndexConstraintUsage() 的 填充码
+
+
+ 设置 SQLiteIndexConstraintUsage.SQLiteIndexConstraintUsage(Int32 argvIndex, Byte omit) 的 填充码
+
+
+ System.Data.SQLite.SQLiteIndexInputs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteIndexInputs.get_Constraints() 的 填充码
+
+
+ 设置 SQLiteIndexInputs.get_OrderBys() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteIndexInputs.get_Constraints() 的 填充码
+
+
+ 设置 SQLiteIndexInputs.SQLiteIndexInputs(Int32 nConstraint, Int32 nOrderBy) 的 填充码
+
+
+ 设置 SQLiteIndexInputs.get_OrderBys() 的 填充码
+
+
+ System.Data.SQLite.SQLiteIndexOrderBy 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteIndexOrderBy.SQLiteIndexOrderBy(Int32 iColumn, Byte desc) 的 填充码
+
+
+ System.Data.SQLite.SQLiteIndexOutputs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteIndexOutputs.CanUseColumnsUsed() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.CanUseEstimatedRows() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.CanUseIndexFlags() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_ColumnsUsed() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_ColumnsUsed(Nullable`1<Int64> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_ConstraintUsages() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_EstimatedCost() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_EstimatedCost(Nullable`1<Double> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_EstimatedRows() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_EstimatedRows(Nullable`1<Int64> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_IndexFlags() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_IndexFlags(Nullable`1<SQLiteIndexFlags> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_IndexNumber() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_IndexNumber(Int32 value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_IndexString() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_IndexString(String value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_NeedToFreeIndexString() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_NeedToFreeIndexString(Int32 value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_OrderByConsumed() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_OrderByConsumed(Int32 value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteIndexOutputs.CanUseColumnsUsed() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.CanUseEstimatedRows() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.CanUseIndexFlags() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_ColumnsUsed() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_ColumnsUsed(Nullable`1<Int64> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_ConstraintUsages() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.SQLiteIndexOutputs(Int32 nConstraint) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_EstimatedCost() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_EstimatedCost(Nullable`1<Double> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_EstimatedRows() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_EstimatedRows(Nullable`1<Int64> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_IndexFlags() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_IndexFlags(Nullable`1<SQLiteIndexFlags> value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_IndexNumber() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_IndexNumber(Int32 value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_IndexString() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_IndexString(String value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_NeedToFreeIndexString() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_NeedToFreeIndexString(Int32 value) 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.get_OrderByConsumed() 的 填充码
+
+
+ 设置 SQLiteIndexOutputs.set_OrderByConsumed(Int32 value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteLog 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 设置 SQLiteLog.AddDefaultHandler() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteLog.CanIgnoreIsInitialized() 的 填充码
+
+
+ 设置 SQLiteLog.CreateAndOrGetTheEvent() 的 填充码
+
+
+ 设置 SQLiteLog.DomainUnload(Object sender, EventArgs e) 的 填充码
+
+
+ 设置 SQLiteLog.get_Enabled() 的 填充码
+
+
+ 设置 SQLiteLog.set_Enabled(Boolean value) 的 填充码
+
+
+ 设置 SQLiteLog.Initialize() 的 填充码
+
+
+ 设置 SQLiteLog.InitializeDefaultHandler() 的 填充码
+
+
+ 设置 SQLiteLog.Initialize(String className) 的 填充码
+
+
+ 设置 SQLiteLog.get_InternalEnabled() 的 填充码
+
+
+ 设置 SQLiteLog.set_InternalEnabled(Boolean value) 的 填充码
+
+
+ 设置 SQLiteLog.add_Log(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteLog.LogCallback(IntPtr pUserData, Int32 errorCode, IntPtr pMessage) 的 填充码
+
+
+ 设置 SQLiteLog.LogEventHandler(Object sender, LogEventArgs e) 的 填充码
+
+
+ 设置 SQLiteLog.LogMessage(Int32 errorCode, String message) 的 填充码
+
+
+ 设置 SQLiteLog.LogMessage(Object errorCode, String message) 的 填充码
+
+
+ 设置 SQLiteLog.LogMessage(SQLiteErrorCode errorCode, String message) 的 填充码
+
+
+ 设置 SQLiteLog.LogMessage(String message) 的 填充码
+
+
+ 设置 SQLiteLog.remove_Log(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteLog.PrivateInitialize(String className) 的 填充码
+
+
+ 设置 SQLiteLog.RemoveDefaultHandler() 的 填充码
+
+
+ 设置 SQLiteLog.SQLiteLog() 的 填充码
+
+
+ 设置 SQLiteLog.Uninitialize() 的 填充码
+
+
+ 设置 SQLiteLog.Uninitialize(String className, Boolean shutdown) 的 填充码
+
+
+ 设置 SQLiteLog.add__handlers(SQLiteLogEventHandler value) 的 填充码
+
+
+ 设置 SQLiteLog.remove__handlers(SQLiteLogEventHandler value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteMetaDataCollectionNames 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteMetaDataCollectionNames.SQLiteMetaDataCollectionNames() 的 填充码
+
+
+ System.Data.SQLite.SQLiteModule 的填充码类型
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 填充码
+
+
+ 设置 SQLiteModule.AllocateTable() 的 填充码
+
+
+ 设置 SQLiteModule.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModule.CreateDisposableModule(IntPtr pDb) 的 填充码
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 填充码
+
+
+ 设置 SQLiteModule.CreateOrConnect(Boolean create, IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 填充码
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 填充码
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 填充码
+
+
+ 设置 SQLiteModule.get_Declared() 的 填充码
+
+
+ 设置 SQLiteModule.set_Declared(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.DestroyOrDisconnect(Boolean destroy, IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.Dispose() 的 填充码
+
+
+ 设置 SQLiteModule.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 填充码
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 填充码
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 填充码
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 填充码
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 填充码
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 填充码
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.get_Name() 的 填充码
+
+
+ 设置 SQLiteModule.SetCursorError(SQLiteVirtualTableCursor cursor, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 填充码
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 填充码
+
+
+ 设置 SQLiteModule.SetTableError(IntPtr pVtab, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetTableError(SQLiteVirtualTable table, String error) 的 填充码
+
+
+ 设置 SQLiteModule.TableFromCursor(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xBegin(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xBestIndex(IntPtr pVtab, IntPtr pIndex) 的 填充码
+
+
+ 设置 SQLiteModule.xClose(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xColumn(IntPtr pCursor, IntPtr pContext, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModule.xCommit(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xConnect(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 填充码
+
+
+ 设置 SQLiteModule.xCreate(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 填充码
+
+
+ 设置 SQLiteModule.xDestroy(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xDestroyModule(IntPtr pClientData) 的 填充码
+
+
+ 设置 SQLiteModule.xDisconnect(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xEof(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xFilter(IntPtr pCursor, Int32 idxNum, IntPtr idxStr, Int32 argc, IntPtr argv) 的 填充码
+
+
+ 设置 SQLiteModule.xFindFunction(IntPtr pVtab, Int32 nArg, IntPtr zName, SQLiteCallback& callback, IntPtr& pClientData) 的 填充码
+
+
+ 设置 SQLiteModule.xNext(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xOpen(IntPtr pVtab, IntPtr& pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xRelease(IntPtr pVtab, Int32 iSavepoint) 的 填充码
+
+
+ 设置 SQLiteModule.xRename(IntPtr pVtab, IntPtr zNew) 的 填充码
+
+
+ 设置 SQLiteModule.xRollback(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xRollbackTo(IntPtr pVtab, Int32 iSavepoint) 的 填充码
+
+
+ 设置 SQLiteModule.xRowId(IntPtr pCursor, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModule.xSavepoint(IntPtr pVtab, Int32 iSavepoint) 的 填充码
+
+
+ 设置 SQLiteModule.xSync(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xUpdate(IntPtr pVtab, Int32 argc, IntPtr argv, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 填充码
+
+
+ 设置 SQLiteModule.AllocateTable() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteModule.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModule.SQLiteModule(String name) 的 填充码
+
+
+ 设置 SQLiteModule.CreateDisposableModule(IntPtr pDb) 的 填充码
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 填充码
+
+
+ 设置 SQLiteModule.CreateOrConnect(Boolean create, IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 填充码
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 填充码
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 填充码
+
+
+ 设置 SQLiteModule.get_Declared() 的 填充码
+
+
+ 设置 SQLiteModule.set_Declared(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.DestroyOrDisconnect(Boolean destroy, IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.Dispose() 的 填充码
+
+
+ 设置 SQLiteModule.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 填充码
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 填充码
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 填充码
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 填充码
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 填充码
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 填充码
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 填充码
+
+
+ 设置 SQLiteModule.get_Name() 的 填充码
+
+
+ 设置 SQLiteModule.SetCursorError(SQLiteModule module, IntPtr pCursor, Boolean logErrors, Boolean logExceptions, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetCursorError(SQLiteModule module, SQLiteVirtualTableCursor cursor, Boolean logErrors, Boolean logExceptions, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetCursorError(SQLiteVirtualTableCursor cursor, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 填充码
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 填充码
+
+
+ 设置 SQLiteModule.SetTableError(IntPtr pVtab, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetTableError(SQLiteModule module, IntPtr pVtab, Boolean logErrors, Boolean logExceptions, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetTableError(SQLiteModule module, SQLiteVirtualTable table, Boolean logErrors, Boolean logExceptions, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SetTableError(SQLiteVirtualTable table, String error) 的 填充码
+
+
+ 设置 SQLiteModule.SQLiteModule() 的 填充码
+
+
+ 设置 SQLiteModule.TableFromCursor(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.TableFromCursor(SQLiteModule module, IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xBegin(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xBestIndex(IntPtr pVtab, IntPtr pIndex) 的 填充码
+
+
+ 设置 SQLiteModule.xClose(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xColumn(IntPtr pCursor, IntPtr pContext, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModule.xCommit(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xConnect(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 填充码
+
+
+ 设置 SQLiteModule.xCreate(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 填充码
+
+
+ 设置 SQLiteModule.xDestroy(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xDestroyModule(IntPtr pClientData) 的 填充码
+
+
+ 设置 SQLiteModule.xDisconnect(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xEof(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xFilter(IntPtr pCursor, Int32 idxNum, IntPtr idxStr, Int32 argc, IntPtr argv) 的 填充码
+
+
+ 设置 SQLiteModule.xFindFunction(IntPtr pVtab, Int32 nArg, IntPtr zName, SQLiteCallback& callback, IntPtr& pClientData) 的 填充码
+
+
+ 设置 SQLiteModule.xNext(IntPtr pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xOpen(IntPtr pVtab, IntPtr& pCursor) 的 填充码
+
+
+ 设置 SQLiteModule.xRelease(IntPtr pVtab, Int32 iSavepoint) 的 填充码
+
+
+ 设置 SQLiteModule.xRename(IntPtr pVtab, IntPtr zNew) 的 填充码
+
+
+ 设置 SQLiteModule.xRollback(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xRollbackTo(IntPtr pVtab, Int32 iSavepoint) 的 填充码
+
+
+ 设置 SQLiteModule.xRowId(IntPtr pCursor, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModule.xSavepoint(IntPtr pVtab, Int32 iSavepoint) 的 填充码
+
+
+ 设置 SQLiteModule.xSync(IntPtr pVtab) 的 填充码
+
+
+ 设置 SQLiteModule.xUpdate(IntPtr pVtab, Int32 argc, IntPtr argv, Int64& rowId) 的 填充码
+
+
+ System.Data.SQLite.SQLiteModuleCommon 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteModuleCommon.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 填充码
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteModuleCommon.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleCommon.SQLiteModuleCommon(String name) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.SQLiteModuleCommon(String name, Boolean objectIdentity) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 填充码
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 填充码
+
+
+ 设置 SQLiteModuleCommon.SQLiteModuleCommon() 的 填充码
+
+
+ System.Data.SQLite.SQLiteModuleEnumerable 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteModuleEnumerable.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Close(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.CursorEndOfEnumeratorError(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Destroy(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Disconnect(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Eof(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Next(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Rename(SQLiteVirtualTable table, String newName) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteModuleEnumerable.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 填充码
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteModuleEnumerable.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Close(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.SQLiteModuleEnumerable(String name, IEnumerable enumerable) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.SQLiteModuleEnumerable(String name, IEnumerable enumerable, Boolean objectIdentity) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.CursorEndOfEnumeratorError(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Destroy(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Disconnect(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Eof(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Next(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Rename(SQLiteVirtualTable table, String newName) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 填充码
+
+
+ System.Data.SQLite.SQLiteModuleNoop 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Close(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Destroy(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Disconnect(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Eof(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 填充码
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Next(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Rename(SQLiteVirtualTable table, String newName) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteModuleNoop.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 填充码
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteModuleNoop.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Close(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.SQLiteModuleNoop(String name) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Destroy(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Disconnect(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Eof(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 填充码
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Next(SQLiteVirtualTableCursor cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Rename(SQLiteVirtualTable table, String newName) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteModuleNoop.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 填充码
+
+
+ System.Data.SQLite.SQLiteParameter 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteParameter.Clone() 的 填充码
+
+
+ 设置 SQLiteParameter.get_Command() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Command(IDbCommand value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_DbType() 的 填充码
+
+
+ 设置 SQLiteParameter.set_DbType(DbType value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_Direction() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Direction(ParameterDirection value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_IsNullable() 的 填充码
+
+
+ 设置 SQLiteParameter.set_IsNullable(Boolean value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_ParameterName() 的 填充码
+
+
+ 设置 SQLiteParameter.set_ParameterName(String value) 的 填充码
+
+
+ 设置 SQLiteParameter.ResetDbType() 的 填充码
+
+
+ 设置 SQLiteParameter.get_Size() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Size(Int32 value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_SourceColumn() 的 填充码
+
+
+ 设置 SQLiteParameter.get_SourceColumnNullMapping() 的 填充码
+
+
+ 设置 SQLiteParameter.set_SourceColumnNullMapping(Boolean value) 的 填充码
+
+
+ 设置 SQLiteParameter.set_SourceColumn(String value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_SourceVersion() 的 填充码
+
+
+ 设置 SQLiteParameter.set_SourceVersion(DataRowVersion value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_TypeName() 的 填充码
+
+
+ 设置 SQLiteParameter.set_TypeName(String value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_Value() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Value(Object value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteParameter.Clone() 的 填充码
+
+
+ 设置 SQLiteParameter.get_Command() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Command(IDbCommand value) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter() 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType dbType) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType parameterType, Int32 parameterSize) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType parameterType, Int32 parameterSize, String sourceColumn) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType parameterType, Int32 parameterSize, String sourceColumn, DataRowVersion rowVersion) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType dbType, Object value) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType dbType, String sourceColumn) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(DbType dbType, String sourceColumn, DataRowVersion rowVersion) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(IDbCommand command) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(SQLiteParameter source) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType dbType) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType parameterType, Int32 parameterSize) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType parameterType, Int32 parameterSize, ParameterDirection direction, Boolean isNullable, Byte precision, Byte scale, String sourceColumn, DataRowVersion rowVersion, Object value) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType parameterType, Int32 parameterSize, ParameterDirection direction, Byte precision, Byte scale, String sourceColumn, DataRowVersion rowVersion, Boolean sourceColumnNullMapping, Object value) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType parameterType, Int32 parameterSize, String sourceColumn) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType parameterType, Int32 parameterSize, String sourceColumn, DataRowVersion rowVersion) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType dbType, String sourceColumn) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, DbType dbType, String sourceColumn, DataRowVersion rowVersion) 的 填充码
+
+
+ 设置 SQLiteParameter.SQLiteParameter(String parameterName, Object value) 的 填充码
+
+
+ 设置 SQLiteParameter.CreateNameForIndex(Int32 index, Boolean placeholder) 的 填充码
+
+
+ 设置 SQLiteParameter.get_DbType() 的 填充码
+
+
+ 设置 SQLiteParameter.set_DbType(DbType value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_Direction() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Direction(ParameterDirection value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_IsNullable() 的 填充码
+
+
+ 设置 SQLiteParameter.set_IsNullable(Boolean value) 的 填充码
+
+
+ 设置 SQLiteParameter.IsUnnamedPlaceholder(String name, Int32& index) 的 填充码
+
+
+ 设置 SQLiteParameter.get_ParameterName() 的 填充码
+
+
+ 设置 SQLiteParameter.set_ParameterName(String value) 的 填充码
+
+
+ 设置 SQLiteParameter.ResetDbType() 的 填充码
+
+
+ 设置 SQLiteParameter.get_Size() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Size(Int32 value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_SourceColumn() 的 填充码
+
+
+ 设置 SQLiteParameter.get_SourceColumnNullMapping() 的 填充码
+
+
+ 设置 SQLiteParameter.set_SourceColumnNullMapping(Boolean value) 的 填充码
+
+
+ 设置 SQLiteParameter.set_SourceColumn(String value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_SourceVersion() 的 填充码
+
+
+ 设置 SQLiteParameter.set_SourceVersion(DataRowVersion value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_TypeName() 的 填充码
+
+
+ 设置 SQLiteParameter.set_TypeName(String value) 的 填充码
+
+
+ 设置 SQLiteParameter.get_Value() 的 填充码
+
+
+ 设置 SQLiteParameter.set_Value(Object value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteParameterCollection 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 设置 SQLiteParameterCollection.Add(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.AddRange(Array values) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.AddRange(SQLiteParameter[] values) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(SQLiteParameter parameter) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(String parameterName, DbType parameterType) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(String parameterName, DbType parameterType, Int32 parameterSize) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(String parameterName, DbType parameterType, Int32 parameterSize, String sourceColumn) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.AddWithValue(String parameterName, Object value) 的 填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteParameterCollection.Add(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.AddRange(Array values) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.AddRange(SQLiteParameter[] values) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(SQLiteParameter parameter) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(String parameterName, DbType parameterType) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(String parameterName, DbType parameterType, Int32 parameterSize) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Add(String parameterName, DbType parameterType, Int32 parameterSize, String sourceColumn) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.AddWithValue(String parameterName, Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Clear() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Contains(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Contains(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.CopyTo(Array array, Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_Count() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.GetEnumerator() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.GetParameter(Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.GetParameter(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.IndexOf(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.IndexOf(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Insert(Int32 index, Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_IsFixedSize() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_IsReadOnly() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_IsSynchronized() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_Item(Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_Item(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.set_Item(Int32 index, SQLiteParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.set_Item(String parameterName, SQLiteParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_NoCase() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.set_NoCase(Boolean value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.RemoveAt(Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.RemoveAt(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Remove(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.SetParameter(Int32 index, DbParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.SetParameter(String parameterName, DbParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_SyncRoot() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Unbind() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteParameterCollection.Clear() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.SQLiteParameterCollection(SQLiteCommand cmd) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Contains(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Contains(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.CopyTo(Array array, Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_Count() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.GetEnumerator() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.GetParameter(Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.GetParameter(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.IndexOf(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.IndexOf(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Insert(Int32 index, Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_IsFixedSize() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_IsReadOnly() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_IsSynchronized() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_Item(Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_Item(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.set_Item(Int32 index, SQLiteParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.set_Item(String parameterName, SQLiteParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_NoCase() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.set_NoCase(Boolean value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.RemoveAt(Int32 index) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.RemoveAt(String parameterName) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Remove(Object value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.SetParameter(Int32 index, DbParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.SetParameter(String parameterName, DbParameter value) 的 填充码
+
+
+ 设置 SQLiteParameterCollection.get_SyncRoot() 的 填充码
+
+
+ 设置 SQLiteParameterCollection.Unbind() 的 填充码
+
+
+ System.Data.SQLite.SQLiteReadArrayEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_BufferOffset() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.set_BufferOffset(Int32 value) 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_ByteBuffer() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_CharBuffer() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_DataOffset() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.set_DataOffset(Int64 value) 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_Length() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.set_Length(Int32 value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteReadArrayEventArgs.get_BufferOffset() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.set_BufferOffset(Int32 value) 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_ByteBuffer() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_CharBuffer() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.SQLiteReadArrayEventArgs(Int64 dataOffset, Byte[] byteBuffer, Int32 bufferOffset, Int32 length) 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.SQLiteReadArrayEventArgs(Int64 dataOffset, Char[] charBuffer, Int32 bufferOffset, Int32 length) 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_DataOffset() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.set_DataOffset(Int64 value) 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.get_Length() 的 填充码
+
+
+ 设置 SQLiteReadArrayEventArgs.set_Length(Int32 value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteReadBlobEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteReadBlobEventArgs.get_ReadOnly() 的 填充码
+
+
+ 设置 SQLiteReadBlobEventArgs.set_ReadOnly(Boolean value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteReadBlobEventArgs.SQLiteReadBlobEventArgs(Boolean readOnly) 的 填充码
+
+
+ 设置 SQLiteReadBlobEventArgs.get_ReadOnly() 的 填充码
+
+
+ 设置 SQLiteReadBlobEventArgs.set_ReadOnly(Boolean value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteReadEventArgs 的填充码类型
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteReadEventArgs.SQLiteReadEventArgs() 的 填充码
+
+
+ System.Data.SQLite.SQLiteReadValueEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteReadValueEventArgs.get_ExtraEventArgs() 的 填充码
+
+
+ 设置 SQLiteReadValueEventArgs.get_MethodName() 的 填充码
+
+
+ 设置 SQLiteReadValueEventArgs.get_Value() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteReadValueEventArgs.SQLiteReadValueEventArgs(String methodName, SQLiteReadEventArgs extraEventArgs, SQLiteDataReaderValue value) 的 填充码
+
+
+ 设置 SQLiteReadValueEventArgs.get_ExtraEventArgs() 的 填充码
+
+
+ 设置 SQLiteReadValueEventArgs.get_MethodName() 的 填充码
+
+
+ 设置 SQLiteReadValueEventArgs.get_Value() 的 填充码
+
+
+ System.Data.SQLite.SQLiteTransaction 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteTransaction.Begin(Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteTransaction.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteTransaction.Commit() 的 填充码
+
+
+ 设置 SQLiteTransaction.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteTransaction.IssueRollback(Boolean throwError) 的 填充码
+
+
+ 设置 SQLiteTransaction.Begin(Boolean deferredLock) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteTransaction.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteTransaction.Commit() 的 填充码
+
+
+ 设置 SQLiteTransaction.SQLiteTransaction(SQLiteConnection connection, Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteTransaction.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteTransaction.IssueRollback(Boolean throwError) 的 填充码
+
+
+ System.Data.SQLite.SQLiteTransaction2 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteTransaction2.Begin(Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteTransaction2.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteTransaction2.Commit() 的 填充码
+
+
+ 设置 SQLiteTransaction2.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteTransaction2.GetSavePointName() 的 填充码
+
+
+ 设置 SQLiteTransaction2.IssueRollback(Boolean throwError) 的 填充码
+
+
+ 设置 SQLiteTransaction2.Begin(Boolean deferredLock) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteTransaction2.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteTransaction2.Commit() 的 填充码
+
+
+ 设置 SQLiteTransaction2.SQLiteTransaction2(SQLiteConnection connection, Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteTransaction2.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteTransaction2.GetSavePointName() 的 填充码
+
+
+ 设置 SQLiteTransaction2.IssueRollback(Boolean throwError) 的 填充码
+
+
+ System.Data.SQLite.SQLiteTransactionBase 的填充码类型
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteTransactionBase.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.get_Connection() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.get_DbConnection() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteTransactionBase.IsValid(Boolean throwError) 的 填充码
+
+
+ 设置 SQLiteTransactionBase.get_IsolationLevel() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.Rollback() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteTransactionBase.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.get_Connection() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.SQLiteTransactionBase(SQLiteConnection connection, Boolean deferredLock) 的 填充码
+
+
+ 设置 SQLiteTransactionBase.get_DbConnection() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteTransactionBase.IsValid(Boolean throwError) 的 填充码
+
+
+ 设置 SQLiteTransactionBase.get_IsolationLevel() 的 填充码
+
+
+ 设置 SQLiteTransactionBase.Rollback() 的 填充码
+
+
+ System.Data.SQLite.SQLiteTypeCallbacks 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_BindValueCallback() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_BindValueUserData() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_ReadValueCallback() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_ReadValueUserData() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_TypeName() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.set_TypeName(String value) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteTypeCallbacks.get_BindValueCallback() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_BindValueUserData() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.SQLiteTypeCallbacks(SQLiteBindValueCallback bindValueCallback, SQLiteReadValueCallback readValueCallback, Object bindValueUserData, Object readValueUserData) 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.Create(SQLiteBindValueCallback bindValueCallback, SQLiteReadValueCallback readValueCallback, Object bindValueUserData, Object readValueUserData) 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_ReadValueCallback() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_ReadValueUserData() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.get_TypeName() 的 填充码
+
+
+ 设置 SQLiteTypeCallbacks.set_TypeName(String value) 的 填充码
+
+
+ System.Data.SQLite.SQLiteValue 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteValue.get_FromBind() 的 填充码
+
+
+ 设置 SQLiteValue.GetBlob() 的 填充码
+
+
+ 设置 SQLiteValue.GetBytes() 的 填充码
+
+
+ 设置 SQLiteValue.GetDouble() 的 填充码
+
+
+ 设置 SQLiteValue.GetFromBind() 的 填充码
+
+
+ 设置 SQLiteValue.GetInt() 的 填充码
+
+
+ 设置 SQLiteValue.GetInt64() 的 填充码
+
+
+ 设置 SQLiteValue.GetNoChange() 的 填充码
+
+
+ 设置 SQLiteValue.GetNumericType() 的 填充码
+
+
+ 设置 SQLiteValue.GetObject() 的 填充码
+
+
+ 设置 SQLiteValue.GetString() 的 填充码
+
+
+ 设置 SQLiteValue.GetSubType() 的 填充码
+
+
+ 设置 SQLiteValue.GetTypeAffinity() 的 填充码
+
+
+ 设置 SQLiteValue.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteValue.get_NoChange() 的 填充码
+
+
+ 设置 SQLiteValue.Persist() 的 填充码
+
+
+ 设置 SQLiteValue.get_Persisted() 的 填充码
+
+
+ 设置 SQLiteValue.PreventNativeAccess() 的 填充码
+
+
+ 设置 SQLiteValue.get_SubType() 的 填充码
+
+
+ 设置 SQLiteValue.get_Value() 的 填充码
+
+
+ 设置 SQLiteValue.ArrayFromSizeAndIntPtr(Int32 argc, IntPtr argv) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteValue.SQLiteValue(IntPtr pValue) 的 填充码
+
+
+ 设置 SQLiteValue.get_FromBind() 的 填充码
+
+
+ 设置 SQLiteValue.FromIntPtr(IntPtr pValue) 的 填充码
+
+
+ 设置 SQLiteValue.GetBlob() 的 填充码
+
+
+ 设置 SQLiteValue.GetBytes() 的 填充码
+
+
+ 设置 SQLiteValue.GetDouble() 的 填充码
+
+
+ 设置 SQLiteValue.GetFromBind() 的 填充码
+
+
+ 设置 SQLiteValue.GetInt() 的 填充码
+
+
+ 设置 SQLiteValue.GetInt64() 的 填充码
+
+
+ 设置 SQLiteValue.GetNoChange() 的 填充码
+
+
+ 设置 SQLiteValue.GetNumericType() 的 填充码
+
+
+ 设置 SQLiteValue.GetObject() 的 填充码
+
+
+ 设置 SQLiteValue.GetString() 的 填充码
+
+
+ 设置 SQLiteValue.GetSubType() 的 填充码
+
+
+ 设置 SQLiteValue.GetTypeAffinity() 的 填充码
+
+
+ 设置 SQLiteValue.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteValue.get_NoChange() 的 填充码
+
+
+ 设置 SQLiteValue.Persist() 的 填充码
+
+
+ 设置 SQLiteValue.get_Persisted() 的 填充码
+
+
+ 设置 SQLiteValue.PreventNativeAccess() 的 填充码
+
+
+ 设置 SQLiteValue.get_SubType() 的 填充码
+
+
+ 设置 SQLiteValue.get_Value() 的 填充码
+
+
+ System.Data.SQLite.SQLiteVirtualTable 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteVirtualTable.get_Arguments() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.BestIndex(SQLiteIndex index) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_DatabaseName() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.Dispose() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_Index() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_ModuleName() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.set_NativeHandle(IntPtr value) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.Rename(String name) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_TableName() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_Arguments() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 SQLiteVirtualTable.BestIndex(SQLiteIndex index) 的 填充码
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteVirtualTable.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.SQLiteVirtualTable(String[] arguments) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_DatabaseName() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.Dispose() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_Index() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_ModuleName() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteVirtualTable.set_NativeHandle(IntPtr value) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.Rename(String name) 的 填充码
+
+
+ 设置 SQLiteVirtualTable.get_TableName() 的 填充码
+
+
+ System.Data.SQLite.SQLiteVirtualTableCursor 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteVirtualTableCursor.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.Dispose() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.set_NativeHandle(IntPtr value) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteVirtualTableCursor.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.SQLiteVirtualTableCursor() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.SQLiteVirtualTableCursor(SQLiteVirtualTable table) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.Dispose() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_NativeHandle() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.set_NativeHandle(IntPtr value) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.SQLiteVirtualTableCursor() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 填充码
+
+
+ System.Data.SQLite.SQLiteVirtualTableCursorEnumerator 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckClosed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Close() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_Current() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_EndOfEnumerator() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_IsOpen() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.MoveNext() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Reset() 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckClosed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Close() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.SQLiteVirtualTableCursorEnumerator(SQLiteVirtualTable table, IEnumerator enumerator) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_Current() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_EndOfEnumerator() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_IsOpen() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.MoveNext() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Reset() 的 填充码
+
+
+ System.Data.SQLite.TraceEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 TraceEventArgs.TraceEventArgs(Nullable`1<SQLiteTraceFlags> flags, Nullable`1<IntPtr> databaseConnection, Nullable`1<IntPtr> preparedStatement, String statement, Nullable`1<Int64> elapsed) 的 填充码
+
+
+ 设置 TraceEventArgs.TraceEventArgs(String statement) 的 填充码
+
+
+ System.Data.SQLite.UpdateEventArgs 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 设置 UpdateEventArgs.UpdateEventArgs(String database, String table, UpdateEventType eventType, Int64 rowid) 的 填充码
+
+
+ System.Data.SQLite.ISQLiteChangeGroup 的存根类型
+
+
+ 初始化 type StubISQLiteChangeGroup 的新实例
+
+
+ 设置 ISQLiteChangeGroup.AddChangeSet(Byte[] rawData) 的 stub
+
+
+ 设置 ISQLiteChangeGroup.AddChangeSet(Stream stream) 的 stub
+
+
+ 设置 ISQLiteChangeGroup.CreateChangeSet(Byte[]& rawData) 的 stub
+
+
+ 设置 ISQLiteChangeGroup.CreateChangeSet(Stream stream) 的 stub
+
+
+ 设置 IDisposable.Dispose() 的 stub
+
+
+ 设置 ISQLiteChangeGroup.AddChangeSet(Stream stream) 的 存根
+
+
+ 设置 ISQLiteChangeGroup.AddChangeSet(Byte[] rawData) 的 存根
+
+
+ 设置 ISQLiteChangeGroup.CreateChangeSet(Byte[]& rawData) 的 存根
+
+
+ 设置 ISQLiteChangeGroup.CreateChangeSet(Stream stream) 的 存根
+
+
+ 设置 IDisposable.Dispose() 的 存根
+
+
+ System.Data.SQLite.ISQLiteChangeSet 的存根类型
+
+
+ 初始化 type StubISQLiteChangeSet 的新实例
+
+
+ 设置 ISQLiteChangeSet.Apply(SessionConflictCallback conflictCallback, Object clientData) 的 stub
+
+
+ 设置 ISQLiteChangeSet.Apply(SessionConflictCallback conflictCallback, SessionTableFilterCallback tableFilterCallback, Object clientData) 的 stub
+
+
+ 设置 ISQLiteChangeSet.CombineWith(ISQLiteChangeSet changeSet) 的 stub
+
+
+ 设置 IDisposable.Dispose() 的 stub
+
+
+ 设置 IEnumerable`1.GetEnumerator() 的 stub
+
+
+ 设置 IEnumerable.GetEnumerator() 的 stub
+
+
+ 设置 ISQLiteChangeSet.Invert() 的 stub
+
+
+ 设置 IEnumerable`1.GetEnumerator() 的 存根
+
+
+ 设置 IEnumerable.GetEnumerator() 的 存根
+
+
+ 设置 ISQLiteChangeSet.Apply(SessionConflictCallback conflictCallback, Object clientData) 的 存根
+
+
+ 设置 ISQLiteChangeSet.Apply(SessionConflictCallback conflictCallback, SessionTableFilterCallback tableFilterCallback, Object clientData) 的 存根
+
+
+ 设置 ISQLiteChangeSet.CombineWith(ISQLiteChangeSet changeSet) 的 存根
+
+
+ 设置 ISQLiteChangeSet.Invert() 的 存根
+
+
+ 设置 IDisposable.Dispose() 的 存根
+
+
+ System.Data.SQLite.ISQLiteChangeSetMetadataItem 的存根类型
+
+
+ 初始化 type StubISQLiteChangeSetMetadataItem 的新实例
+
+
+ 设置 IDisposable.Dispose() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.GetConflictValue(Int32 columnIndex) 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.GetNewValue(Int32 columnIndex) 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.GetOldValue(Int32 columnIndex) 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_Indirect() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_Indirect() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_NumberOfColumns() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_NumberOfColumns() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_NumberOfForeignKeyConflicts() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_NumberOfForeignKeyConflicts() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_OperationCode() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_OperationCode() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_PrimaryKeyColumns() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_PrimaryKeyColumns() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.GetConflictValue(Int32 columnIndex) 的 存根
+
+
+ 设置 ISQLiteChangeSetMetadataItem.GetNewValue(Int32 columnIndex) 的 存根
+
+
+ 设置 ISQLiteChangeSetMetadataItem.GetOldValue(Int32 columnIndex) 的 存根
+
+
+ 设置 IDisposable.Dispose() 的 存根
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_TableName() 的 stub
+
+
+ 设置 ISQLiteChangeSetMetadataItem.get_TableName() 的 stub
+
+
+ System.Data.SQLite.ISQLiteConnectionPool 的存根类型
+
+
+ 初始化 type StubISQLiteConnectionPool 的新实例
+
+
+ 设置 ISQLiteConnectionPool.Add(String fileName, Object handle, Int32 version) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.ClearAllPools() 的 stub
+
+
+ 设置 ISQLiteConnectionPool.ClearPool(String fileName) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.GetCounts(String fileName, Dictionary`2<String,Int32>& counts, Int32& openCount, Int32& closeCount, Int32& totalCount) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.Remove(String fileName, Int32 maxPoolSize, Int32& version) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.Add(String fileName, Object handle, Int32 version) 的 存根
+
+
+ 设置 ISQLiteConnectionPool.ClearAllPools() 的 存根
+
+
+ 设置 ISQLiteConnectionPool.ClearPool(String fileName) 的 存根
+
+
+ 设置 ISQLiteConnectionPool.GetCounts(String fileName, Dictionary`2<String,Int32>& counts, Int32& openCount, Int32& closeCount, Int32& totalCount) 的 存根
+
+
+ 设置 ISQLiteConnectionPool.Remove(String fileName, Int32 maxPoolSize, Int32& version) 的 存根
+
+
+ System.Data.SQLite.ISQLiteConnectionPool2 的存根类型
+
+
+ 初始化 type StubISQLiteConnectionPool2 的新实例
+
+
+ 设置 ISQLiteConnectionPool.Add(String fileName, Object handle, Int32 version) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.ClearAllPools() 的 stub
+
+
+ 设置 ISQLiteConnectionPool.ClearPool(String fileName) 的 stub
+
+
+ 设置 ISQLiteConnectionPool2.GetCounts(Int32& openCount, Int32& closeCount) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.GetCounts(String fileName, Dictionary`2<String,Int32>& counts, Int32& openCount, Int32& closeCount, Int32& totalCount) 的 stub
+
+
+ 设置 ISQLiteConnectionPool2.Initialize(Object argument) 的 stub
+
+
+ 设置 ISQLiteConnectionPool.Remove(String fileName, Int32 maxPoolSize, Int32& version) 的 stub
+
+
+ 设置 ISQLiteConnectionPool2.ResetCounts() 的 stub
+
+
+ 设置 ISQLiteConnectionPool.Add(String fileName, Object handle, Int32 version) 的 存根
+
+
+ 设置 ISQLiteConnectionPool.ClearAllPools() 的 存根
+
+
+ 设置 ISQLiteConnectionPool.ClearPool(String fileName) 的 存根
+
+
+ 设置 ISQLiteConnectionPool.GetCounts(String fileName, Dictionary`2<String,Int32>& counts, Int32& openCount, Int32& closeCount, Int32& totalCount) 的 存根
+
+
+ 设置 ISQLiteConnectionPool.Remove(String fileName, Int32 maxPoolSize, Int32& version) 的 存根
+
+
+ 设置 ISQLiteConnectionPool2.GetCounts(Int32& openCount, Int32& closeCount) 的 存根
+
+
+ 设置 ISQLiteConnectionPool2.Initialize(Object argument) 的 存根
+
+
+ 设置 ISQLiteConnectionPool2.ResetCounts() 的 存根
+
+
+ 设置 ISQLiteConnectionPool2.Terminate(Object argument) 的 存根
+
+
+ 设置 ISQLiteConnectionPool2.Terminate(Object argument) 的 stub
+
+
+ System.Data.SQLite.ISQLiteManagedModule 的存根类型
+
+
+ 初始化 type StubISQLiteManagedModule 的新实例
+
+
+ 设置 ISQLiteManagedModule.Begin(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 ISQLiteManagedModule.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Close(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Commit(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 ISQLiteManagedModule.get_Declared() 的 stub
+
+
+ 设置 ISQLiteManagedModule.get_Declared() 的 stub
+
+
+ 设置 ISQLiteManagedModule.Destroy(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Disconnect(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Eof(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 ISQLiteManagedModule.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 stub
+
+
+ 设置 ISQLiteManagedModule.get_Name() 的 stub
+
+
+ 设置 ISQLiteManagedModule.get_Name() 的 stub
+
+
+ 设置 ISQLiteManagedModule.Next(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Release(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Rename(SQLiteVirtualTable table, String newName) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Rollback(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 ISQLiteManagedModule.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 ISQLiteManagedModule.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Sync(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 ISQLiteManagedModule.Begin(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 ISQLiteManagedModule.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Close(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Commit(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Destroy(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Disconnect(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Eof(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 ISQLiteManagedModule.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Next(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Release(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Rename(SQLiteVirtualTable table, String newName) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Rollback(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 ISQLiteManagedModule.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 ISQLiteManagedModule.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Sync(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 存根
+
+
+ 设置 ISQLiteManagedModule.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 stub
+
+
+ System.Data.SQLite.ISQLiteNativeHandle 的存根类型
+
+
+ 初始化 type StubISQLiteNativeHandle 的新实例
+
+
+ 设置 ISQLiteNativeHandle.get_NativeHandle() 的 stub
+
+
+ 设置 ISQLiteNativeHandle.get_NativeHandle() 的 stub
+
+
+ System.Data.SQLite.ISQLiteNativeModule 的存根类型
+
+
+ 初始化 type StubISQLiteNativeModule 的新实例
+
+
+ 设置 ISQLiteNativeModule.xBegin(IntPtr pVtab) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xBestIndex(IntPtr pVtab, IntPtr pIndex) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xClose(IntPtr pCursor) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xColumn(IntPtr pCursor, IntPtr pContext, Int32 index) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xCommit(IntPtr pVtab) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xConnect(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xCreate(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xDestroy(IntPtr pVtab) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xDisconnect(IntPtr pVtab) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xEof(IntPtr pCursor) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xFilter(IntPtr pCursor, Int32 idxNum, IntPtr idxStr, Int32 argc, IntPtr argv) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xFindFunction(IntPtr pVtab, Int32 nArg, IntPtr zName, SQLiteCallback& callback, IntPtr& pClientData) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xNext(IntPtr pCursor) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xOpen(IntPtr pVtab, IntPtr& pCursor) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xRelease(IntPtr pVtab, Int32 iSavepoint) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xRename(IntPtr pVtab, IntPtr zNew) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xRollback(IntPtr pVtab) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xRollbackTo(IntPtr pVtab, Int32 iSavepoint) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xRowId(IntPtr pCursor, Int64& rowId) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xSavepoint(IntPtr pVtab, Int32 iSavepoint) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xSync(IntPtr pVtab) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xUpdate(IntPtr pVtab, Int32 argc, IntPtr argv, Int64& rowId) 的 存根
+
+
+ 设置 ISQLiteNativeModule.xBegin(IntPtr pVtab) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xBestIndex(IntPtr pVtab, IntPtr pIndex) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xClose(IntPtr pCursor) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xColumn(IntPtr pCursor, IntPtr pContext, Int32 index) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xCommit(IntPtr pVtab) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xConnect(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xCreate(IntPtr pDb, IntPtr pAux, Int32 argc, IntPtr argv, IntPtr& pVtab, IntPtr& pError) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xDestroy(IntPtr pVtab) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xDisconnect(IntPtr pVtab) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xEof(IntPtr pCursor) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xFilter(IntPtr pCursor, Int32 idxNum, IntPtr idxStr, Int32 argc, IntPtr argv) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xFindFunction(IntPtr pVtab, Int32 nArg, IntPtr zName, SQLiteCallback& callback, IntPtr& pClientData) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xNext(IntPtr pCursor) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xOpen(IntPtr pVtab, IntPtr& pCursor) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xRelease(IntPtr pVtab, Int32 iSavepoint) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xRename(IntPtr pVtab, IntPtr zNew) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xRollback(IntPtr pVtab) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xRollbackTo(IntPtr pVtab, Int32 iSavepoint) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xRowId(IntPtr pCursor, Int64& rowId) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xSavepoint(IntPtr pVtab, Int32 iSavepoint) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xSync(IntPtr pVtab) 的 stub
+
+
+ 设置 ISQLiteNativeModule.xUpdate(IntPtr pVtab, Int32 argc, IntPtr argv, Int64& rowId) 的 stub
+
+
+ System.Data.SQLite.ISQLiteSchemaExtensions 的存根类型
+
+
+ 初始化 type StubISQLiteSchemaExtensions 的新实例
+
+
+ 设置 ISQLiteSchemaExtensions.BuildTempSchema(SQLiteConnection connection) 的 stub
+
+
+ 设置 ISQLiteSchemaExtensions.BuildTempSchema(SQLiteConnection connection) 的 存根
+
+
+ System.Data.SQLite.ISQLiteSession 的存根类型
+
+
+ 初始化 type StubISQLiteSession 的新实例
+
+
+ 设置 ISQLiteSession.AttachTable(String name) 的 stub
+
+
+ 设置 ISQLiteSession.CreateChangeSet(Byte[]& rawData) 的 stub
+
+
+ 设置 ISQLiteSession.CreateChangeSet(Stream stream) 的 stub
+
+
+ 设置 ISQLiteSession.CreatePatchSet(Byte[]& rawData) 的 stub
+
+
+ 设置 ISQLiteSession.CreatePatchSet(Stream stream) 的 stub
+
+
+ 设置 IDisposable.Dispose() 的 stub
+
+
+ 设置 ISQLiteSession.GetMemoryBytesInUse() 的 stub
+
+
+ 设置 ISQLiteSession.IsEmpty() 的 stub
+
+
+ 设置 ISQLiteSession.IsEnabled() 的 stub
+
+
+ 设置 ISQLiteSession.IsIndirect() 的 stub
+
+
+ 设置 ISQLiteSession.LoadDifferencesFromTable(String fromDatabaseName, String tableName) 的 stub
+
+
+ 设置 ISQLiteSession.SetTableFilter(SessionTableFilterCallback callback, Object clientData) 的 stub
+
+
+ 设置 ISQLiteSession.SetToDirect() 的 stub
+
+
+ 设置 ISQLiteSession.SetToDisabled() 的 stub
+
+
+ 设置 ISQLiteSession.SetToEnabled() 的 stub
+
+
+ 设置 ISQLiteSession.SetToIndirect() 的 stub
+
+
+ 设置 ISQLiteSession.AttachTable(String name) 的 存根
+
+
+ 设置 ISQLiteSession.CreateChangeSet(Stream stream) 的 存根
+
+
+ 设置 ISQLiteSession.CreateChangeSet(Byte[]& rawData) 的 存根
+
+
+ 设置 ISQLiteSession.CreatePatchSet(Stream stream) 的 存根
+
+
+ 设置 ISQLiteSession.CreatePatchSet(Byte[]& rawData) 的 存根
+
+
+ 设置 ISQLiteSession.GetMemoryBytesInUse() 的 存根
+
+
+ 设置 ISQLiteSession.IsEmpty() 的 存根
+
+
+ 设置 ISQLiteSession.IsEnabled() 的 存根
+
+
+ 设置 ISQLiteSession.IsIndirect() 的 存根
+
+
+ 设置 ISQLiteSession.LoadDifferencesFromTable(String fromDatabaseName, String tableName) 的 存根
+
+
+ 设置 ISQLiteSession.SetTableFilter(SessionTableFilterCallback callback, Object clientData) 的 存根
+
+
+ 设置 ISQLiteSession.SetToDirect() 的 存根
+
+
+ 设置 ISQLiteSession.SetToDisabled() 的 存根
+
+
+ 设置 ISQLiteSession.SetToEnabled() 的 存根
+
+
+ 设置 ISQLiteSession.SetToIndirect() 的 存根
+
+
+ 设置 IDisposable.Dispose() 的 存根
+
+
+ System.Data.SQLite.SQLiteDelegateFunction 的存根类型
+
+
+ 初始化新实例
+
+
+ 初始化新实例
+
+
+ 初始化新实例
+
+
+ 附加委托以将 StubSQLiteDelegateFunction.Callback1 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteDelegateFunction.Callback2 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteDelegateFunction.Callback3 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteDelegateFunction.Callback4 作为具有支持字段的属性进行模拟。
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteDelegateFunction.get_Callback1() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback1() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.set_Callback1(Delegate value) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback2() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback2() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.set_Callback2(Delegate value) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback3() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback3() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.set_Callback3(Delegate value) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback4() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.get_Callback4() 的 stub
+
+
+ 设置 SQLiteDelegateFunction.set_Callback4(Delegate value) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.Compare(String param1, String param2) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.Compare(String param1, String param2) 的 stub
+
+
+ 设置 SQLiteFunction.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteFunction.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.Final(Object contextData) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.Final(Object contextData) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.GetCompareArgs(String param1, String param2, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.GetCompareArgs(String param1, String param2, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.GetFinalArgs(Object contextData, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.GetFinalArgs(Object contextData, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.GetInverseArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.GetInverseArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.GetInvokeArgs(Object[] args, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.GetInvokeArgs(Object[] args, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.GetStepArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.GetStepArgs(Object[] args, Int32 stepNumber, Object contextData, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.GetValueArgs(Object contextData, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.GetValueArgs(Object contextData, Boolean earlyBound) 的 stub
+
+
+ 初始化 type StubSQLiteDelegateFunction 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteDelegateFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.Invoke(Object[] args) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.Invoke(Object[] args) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.UpdateInverseArgs(Object[] args, Object& contextData, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.UpdateInverseArgs(Object[] args, Object& contextData, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.UpdateStepArgs(Object[] args, Object& contextData, Boolean earlyBound) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.UpdateStepArgs(Object[] args, Object& contextData, Boolean earlyBound) 的 stub
+
+
+ 设置 SQLiteDelegateFunction.Value(Object contextData) 的 存根
+
+
+ 设置 SQLiteDelegateFunction.Value(Object contextData) 的 stub
+
+
+ System.Data.SQLite.SQLiteFunction 的存根类型
+
+
+ 初始化新实例
+
+
+ 初始化新实例
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteFunction.Compare(String param1, String param2) 的 存根
+
+
+ 设置 SQLiteFunction.Compare(String param1, String param2) 的 stub
+
+
+ 设置 SQLiteFunction.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteFunction.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteFunction.Final(Object contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Final(Object contextData) 的 stub
+
+
+ 初始化 type StubSQLiteFunction 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 stub
+
+
+ 设置 SQLiteFunction.Invoke(Object[] args) 的 存根
+
+
+ 设置 SQLiteFunction.Invoke(Object[] args) 的 stub
+
+
+ 设置 SQLiteFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 stub
+
+
+ 设置 SQLiteFunction.Value(Object contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Value(Object contextData) 的 stub
+
+
+ System.Data.SQLite.SQLiteFunctionEx 的存根类型
+
+
+ 初始化新实例
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteFunction.Compare(String param1, String param2) 的 存根
+
+
+ 设置 SQLiteFunction.Compare(String param1, String param2) 的 stub
+
+
+ 设置 SQLiteFunctionEx.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteFunctionEx.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteFunction.Final(Object contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Final(Object contextData) 的 stub
+
+
+ 初始化 type StubSQLiteFunctionEx 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Inverse(Object[] args, Int32 stepNumber, Object& contextData) 的 stub
+
+
+ 设置 SQLiteFunction.Invoke(Object[] args) 的 存根
+
+
+ 设置 SQLiteFunction.Invoke(Object[] args) 的 stub
+
+
+ 设置 SQLiteFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Step(Object[] args, Int32 stepNumber, Object& contextData) 的 stub
+
+
+ 设置 SQLiteFunction.Value(Object contextData) 的 存根
+
+
+ 设置 SQLiteFunction.Value(Object contextData) 的 stub
+
+
+ System.Data.SQLite.SQLiteModule 的存根类型
+
+
+ 初始化新实例
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 存根
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 stub
+
+
+ 设置 SQLiteModule.AllocateTable() 的 存根
+
+
+ 设置 SQLiteModule.AllocateTable() 的 stub
+
+
+ 附加委托以将 StubSQLiteModule.LogErrors 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModule.LogErrorsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModule.LogExceptions 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModule.LogExceptionsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 设置 SQLiteModule.Begin(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.Begin(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 stub
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteModule.Close(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.Close(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 存根
+
+
+ 设置 SQLiteModule.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 stub
+
+
+ 设置 SQLiteModule.Commit(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.Commit(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModule.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModule.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModule.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 stub
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 stub
+
+
+ 设置 SQLiteModule.Destroy(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.Destroy(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.Disconnect(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.Disconnect(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteModule.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteModule.Eof(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.Eof(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteModule.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteModule.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 存根
+
+
+ 设置 SQLiteModule.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 stub
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 存根
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 stub
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 stub
+
+
+ 初始化 type StubSQLiteModule 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModule.Next(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.Next(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 存根
+
+
+ 设置 SQLiteModule.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 stub
+
+
+ 设置 SQLiteModule.Release(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModule.Release(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.Rename(SQLiteVirtualTable table, String newName) 的 存根
+
+
+ 设置 SQLiteModule.Rename(SQLiteVirtualTable table, String newName) 的 stub
+
+
+ 设置 SQLiteModule.Rollback(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.Rollback(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModule.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModule.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModule.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModule.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 stub
+
+
+ 设置 SQLiteModule.Sync(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.Sync(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModule.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 stub
+
+
+ System.Data.SQLite.SQLiteModuleCommon 的存根类型
+
+
+ 初始化新实例
+
+
+ 初始化新实例
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 存根
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 stub
+
+
+ 设置 SQLiteModule.AllocateTable() 的 存根
+
+
+ 设置 SQLiteModule.AllocateTable() 的 stub
+
+
+ 附加委托以将 StubSQLiteModuleCommon.LogErrors 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleCommon.LogErrorsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleCommon.LogExceptions 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleCommon.LogExceptionsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModuleNoop.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 stub
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteModuleNoop.Close(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Close(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleNoop.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 存根
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 stub
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 stub
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Destroy(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Destroy(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Disconnect(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Disconnect(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleCommon.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteModuleCommon.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Eof(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Eof(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 存根
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 stub
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 stub
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 存根
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 stub
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 stub
+
+
+ 初始化 type StubSQLiteModuleCommon 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 stub
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 存根
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModuleNoop.Next(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Next(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Rename(SQLiteVirtualTable table, String newName) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Rename(SQLiteVirtualTable table, String newName) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleNoop.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleNoop.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 stub
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 stub
+
+
+ System.Data.SQLite.SQLiteModuleEnumerable 的存根类型
+
+
+ 初始化新实例
+
+
+ 初始化新实例
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 存根
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 stub
+
+
+ 设置 SQLiteModule.AllocateTable() 的 存根
+
+
+ 设置 SQLiteModule.AllocateTable() 的 stub
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogErrors 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogErrorsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogExceptions 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogExceptionsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 stub
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteModuleEnumerable.Close(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Close(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.CursorEndOfEnumeratorError(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.CursorEndOfEnumeratorError(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 存根
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 stub
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 stub
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Destroy(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Destroy(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Disconnect(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Disconnect(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Eof(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Eof(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 存根
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 stub
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 stub
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 存根
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 stub
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 stub
+
+
+ 初始化 type StubSQLiteModuleEnumerable 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 stub
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 存根
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Next(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Next(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Rename(SQLiteVirtualTable table, String newName) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Rename(SQLiteVirtualTable table, String newName) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 stub
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 stub
+
+
+ System.Data.SQLite.SQLiteModuleNoop 的存根类型
+
+
+ 初始化新实例
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 存根
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 stub
+
+
+ 设置 SQLiteModule.AllocateTable() 的 存根
+
+
+ 设置 SQLiteModule.AllocateTable() 的 stub
+
+
+ 附加委托以将 StubSQLiteModuleNoop.LogErrors 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleNoop.LogErrorsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleNoop.LogExceptions 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleNoop.LogExceptionsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModuleNoop.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 stub
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteModuleNoop.Close(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Close(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleNoop.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 stub
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Destroy(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Destroy(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Disconnect(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Disconnect(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Eof(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Eof(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 存根
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 stub
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 stub
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 存根
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 stub
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 stub
+
+
+ 初始化 type StubSQLiteModuleNoop 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModuleNoop.Next(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Next(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Rename(SQLiteVirtualTable table, String newName) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Rename(SQLiteVirtualTable table, String newName) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleNoop.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleNoop.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 stub
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 stub
+
+
+ System.Data.SQLite.SQLiteReadEventArgs 的存根类型
+
+
+ 初始化新实例
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 初始化 type StubSQLiteReadEventArgs 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ System.Data.SQLite.SQLiteVirtualTable 的存根类型
+
+
+ 初始化新实例
+
+
+ 设置 SQLiteVirtualTable.get_Arguments() 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_Arguments() 的 stub
+
+
+ 设置 SQLiteVirtualTable.BestIndex(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteVirtualTable.BestIndex(SQLiteIndex index) 的 stub
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteVirtualTable.get_DatabaseName() 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_DatabaseName() 的 stub
+
+
+ 设置 SQLiteVirtualTable.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteVirtualTable.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_Index() 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_Index() 的 stub
+
+
+ 初始化 type StubSQLiteVirtualTable 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteVirtualTable.get_ModuleName() 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_ModuleName() 的 stub
+
+
+ 设置 SQLiteVirtualTable.Rename(String name) 的 存根
+
+
+ 设置 SQLiteVirtualTable.Rename(String name) 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_TableName() 的 stub
+
+
+ 设置 SQLiteVirtualTable.get_TableName() 的 stub
+
+
+ System.Data.SQLite.SQLiteVirtualTableCursor 的存根类型
+
+
+ 初始化新实例
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteVirtualTableCursor.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 stub
+
+
+ 初始化 type StubSQLiteVirtualTableCursor 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 stub
+
+
+ System.Data.SQLite.SQLiteVirtualTableCursorEnumerator 的存根类型
+
+
+ 初始化新实例
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckClosed() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckClosed() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Close() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Close() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_Current() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_Current() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_EndOfEnumerator() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_EndOfEnumerator() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 stub
+
+
+ 初始化 type StubSQLiteVirtualTableCursorEnumerator 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_IsOpen() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_IsOpen() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.MoveNext() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.MoveNext() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Reset() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Reset() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 stub
+
+
+ System.Data.SQLite.Generic.SQLiteModuleEnumerable`1 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteModuleEnumerable`1.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.SQLiteModuleEnumerable`1(String name, IEnumerable`1<!0> enumerable) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.Dispose(Boolean disposing) 的 填充码
+
+
+ 设置 SQLiteModuleEnumerable`1.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 填充码
+
+
+ System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1 的填充码类型
+
+
+ 初始化新的填充码实例
+
+
+ 初始化给定实例的新填充码
+
+
+ 为所有实例成员定义填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Close() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.System.Collections.Generic.IEnumerator<T>.get_Current() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Dispose(Boolean disposing) 的 填充码
+
+
+ 为已填充的类型的所有方法分配“Current”行为
+
+
+ 为已填充的类型的所有方法分配“NotImplemented”行为
+
+
+ 为已填充的类型的所有方法分配行为
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 将接口的成员绑定到此填充码。
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.CheckDisposed() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Close() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.SQLiteVirtualTableCursorEnumerator`1(SQLiteVirtualTable table, IEnumerator`1<!0> enumerator) 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.System.Collections.Generic.IEnumerator<T>.get_Current() 的 填充码
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Dispose(Boolean disposing) 的 填充码
+
+
+ System.Data.SQLite.Generic.SQLiteModuleEnumerable`1 的存根类型
+
+
+ 初始化新实例
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 存根
+
+
+ 设置 SQLiteModule.AllocateCursor() 的 stub
+
+
+ 设置 SQLiteModule.AllocateTable() 的 存根
+
+
+ 设置 SQLiteModule.AllocateTable() 的 stub
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogErrors 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogErrorsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogExceptions 作为具有支持字段的属性进行模拟。
+
+
+ 附加委托以将 StubSQLiteModuleEnumerable.LogExceptionsNoThrow 作为具有支持字段的属性进行模拟。
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Begin(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.BestIndex(SQLiteVirtualTable table, SQLiteIndex index) 的 stub
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteModuleEnumerable.Close(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Close(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable`1.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable`1.Column(SQLiteVirtualTableCursor cursor, SQLiteContext context, Int32 index) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Commit(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Connect(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.CreateNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Create(SQLiteConnection connection, IntPtr pClientData, String[] arguments, SQLiteVirtualTable& table, String& error) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.CursorEndOfEnumeratorError(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.CursorEndOfEnumeratorError(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorFromIntPtr(IntPtr pVtab, IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModule.CursorToIntPtr(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 存根
+
+
+ 设置 SQLiteModuleCommon.CursorTypeMismatchError(SQLiteVirtualTableCursor cursor, Type type) 的 stub
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareFunction(SQLiteConnection connection, Int32 argumentCount, String name, String& error) 的 stub
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 存根
+
+
+ 设置 SQLiteModule.DeclareTable(SQLiteConnection connection, String sql, String& error) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Destroy(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Destroy(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Disconnect(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Disconnect(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable`1.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable`1.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Eof(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Eof(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Filter(SQLiteVirtualTableCursor cursor, Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 存根
+
+
+ 设置 SQLiteModuleNoop.FindFunction(SQLiteVirtualTable table, Int32 argumentCount, String name, SQLiteFunction& function, IntPtr& pClientData) 的 stub
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 存根
+
+
+ 设置 SQLiteModule.FreeCursor(IntPtr pCursor) 的 stub
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.FreeTable(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetDefaultResultCode() 的 stub
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 存根
+
+
+ 设置 SQLiteModule.GetFunctionKey(Int32 argumentCount, String name, SQLiteFunction function) 的 stub
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 存根
+
+
+ 设置 SQLiteModuleNoop.GetMethodResultCode(String methodName) 的 stub
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 存根
+
+
+ 设置 SQLiteModule.GetNativeModuleImpl() 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetRowIdFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetSqlForDeclareTable() 的 stub
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 存根
+
+
+ 设置 SQLiteModuleCommon.GetStringFromObject(SQLiteVirtualTableCursor cursor, Object value) 的 stub
+
+
+ 初始化 type StubSQLiteModuleEnumerable 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrors() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogErrorsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrorsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogErrors(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptions() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.get_LogExceptionsNoThrow() 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptionsNoThrow(Boolean value) 的 stub
+
+
+ 设置 SQLiteModule.set_LogExceptions(Boolean value) 的 stub
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 存根
+
+
+ 设置 SQLiteModuleCommon.MakeRowId(Int32 rowIndex, Int32 hashCode) 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModule.get_Name() 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Next(SQLiteVirtualTableCursor cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Next(SQLiteVirtualTableCursor cursor) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable`1.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable`1.Open(SQLiteVirtualTable table, SQLiteVirtualTableCursor& cursor) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Release(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Rename(SQLiteVirtualTable table, String newName) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Rename(SQLiteVirtualTable table, String newName) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToEofResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.ResultCodeToFindFunctionResult(SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Rollback(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.RollbackTo(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.RowId(SQLiteVirtualTableCursor cursor, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Savepoint(SQLiteVirtualTable table, Int32 savepoint) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedCost(SQLiteIndex index, Nullable`1<Double> estimatedCost) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 存根
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetEstimatedRows(SQLiteIndex index, Nullable`1<Int64> estimatedRows) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 存根
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index) 的 stub
+
+
+ 设置 SQLiteModule.SetIndexFlags(SQLiteIndex index, Nullable`1<SQLiteIndexFlags> indexFlags) 的 stub
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 存根
+
+
+ 设置 SQLiteModuleNoop.SetMethodResultCode(String methodName, SQLiteErrorCode resultCode) 的 stub
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModuleNoop.Sync(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.TableFromIntPtr(IntPtr pVtab) 的 stub
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 存根
+
+
+ 设置 SQLiteModule.TableToIntPtr(SQLiteVirtualTable table) 的 stub
+
+
+ 设置 SQLiteModuleEnumerable.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 存根
+
+
+ 设置 SQLiteModuleEnumerable.Update(SQLiteVirtualTable table, SQLiteValue[] values, Int64& rowId) 的 stub
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 存根
+
+
+ 设置 SQLiteModule.ZeroTable(IntPtr pVtab) 的 stub
+
+
+ System.Data.SQLite.Generic.SQLiteVirtualTableCursorEnumerator`1 的存根类型
+
+
+ 初始化新实例
+
+
+ 获取或设置一个值,该值指示是否应调用基方法而不调用回退行为
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckClosed() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.CheckClosed() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Close() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Close() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_Current() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_Current() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Dispose(Boolean disposing) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator`1.Dispose(Boolean disposing) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_EndOfEnumerator() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_EndOfEnumerator() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.Filter(Int32 indexNumber, String indexString, SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.GetRowIndex() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexNumber() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_IndexString() 的 stub
+
+
+ 初始化 type StubSQLiteVirtualTableCursorEnumerator 的新实例
+
+
+ 获取或设置实例行为。
+
+
+ 获取或设置实例观察者。
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_IsOpen() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.get_IsOpen() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.MoveNext() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.MoveNext() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.NextRowIndex() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Reset() 的 存根
+
+
+ 设置 SQLiteVirtualTableCursorEnumerator.Reset() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Table() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 存根
+
+
+ 设置 SQLiteVirtualTableCursor.TryPersistValues(SQLiteValue[] values) 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 stub
+
+
+ 设置 SQLiteVirtualTableCursor.get_Values() 的 stub
+
+
+
diff --git a/Form1.Designer.vb b/Form1.Designer.vb
new file mode 100644
index 0000000..1539a6f
--- /dev/null
+++ b/Form1.Designer.vb
@@ -0,0 +1,1647 @@
+ _
+Partial Class Form1
+ Inherits System.Windows.Forms.Form
+
+ 'Form 重写 Dispose,以清理组件列表。
+ _
+ 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 窗体设计器修改它。
+ '不要使用代码编辑器修改它。
+ _
+ Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
+ Me.LblSerialPortName = New System.Windows.Forms.Label()
+ Me.LblSerialPortBaud = New System.Windows.Forms.Label()
+ Me.ComboBox8 = New System.Windows.Forms.ComboBox()
+ Me.ComboBox9 = New System.Windows.Forms.ComboBox()
+ Me.Button19 = New System.Windows.Forms.Button()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.SerialPort = New System.IO.Ports.SerialPort(Me.components)
+ Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
+ Me.SplitContainer2 = New System.Windows.Forms.SplitContainer()
+ Me.SplitContainer3 = New System.Windows.Forms.SplitContainer()
+ Me.CheckBox5 = New System.Windows.Forms.CheckBox()
+ Me.Label38 = New System.Windows.Forms.Label()
+ Me.Label41 = New System.Windows.Forms.Label()
+ Me.GroupBox1 = New System.Windows.Forms.GroupBox()
+ Me.Button24 = New System.Windows.Forms.Button()
+ Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
+ Me.Label40 = New System.Windows.Forms.Label()
+ Me.Label39 = New System.Windows.Forms.Label()
+ Me.TabControl1 = New System.Windows.Forms.TabControl()
+ Me.TabPage1 = New System.Windows.Forms.TabPage()
+ Me.GroupBox2 = New System.Windows.Forms.GroupBox()
+ Me.CheckBox4 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox3 = New System.Windows.Forms.CheckBox()
+ Me.Button4 = New System.Windows.Forms.Button()
+ Me.Button2 = New System.Windows.Forms.Button()
+ Me.CheckBox2 = New System.Windows.Forms.CheckBox()
+ Me.CheckBox1 = New System.Windows.Forms.CheckBox()
+ Me.Button1 = New System.Windows.Forms.Button()
+ Me.TextBox8 = New System.Windows.Forms.TextBox()
+ Me.TextBox14 = New System.Windows.Forms.TextBox()
+ Me.TextBox6 = New System.Windows.Forms.TextBox()
+ Me.TextBox4 = New System.Windows.Forms.TextBox()
+ Me.TextBox13 = New System.Windows.Forms.TextBox()
+ Me.TextBox20 = New System.Windows.Forms.TextBox()
+ Me.TextBox18 = New System.Windows.Forms.TextBox()
+ Me.TextBox16 = New System.Windows.Forms.TextBox()
+ Me.TextBox12 = New System.Windows.Forms.TextBox()
+ Me.TextBox19 = New System.Windows.Forms.TextBox()
+ Me.TextBox24 = New System.Windows.Forms.TextBox()
+ Me.TextBox22 = New System.Windows.Forms.TextBox()
+ Me.TextBox23 = New System.Windows.Forms.TextBox()
+ Me.TextBox21 = New System.Windows.Forms.TextBox()
+ Me.TextBox17 = New System.Windows.Forms.TextBox()
+ Me.TextBox15 = New System.Windows.Forms.TextBox()
+ Me.TextBox11 = New System.Windows.Forms.TextBox()
+ Me.TextBox7 = New System.Windows.Forms.TextBox()
+ Me.TextBox5 = New System.Windows.Forms.TextBox()
+ Me.TextBox2 = New System.Windows.Forms.TextBox()
+ Me.TextBox3 = New System.Windows.Forms.TextBox()
+ Me.TextBox1 = New System.Windows.Forms.TextBox()
+ Me.Label17 = New System.Windows.Forms.Label()
+ Me.Label22 = New System.Windows.Forms.Label()
+ Me.Label16 = New System.Windows.Forms.Label()
+ Me.Label21 = New System.Windows.Forms.Label()
+ Me.Label37 = New System.Windows.Forms.Label()
+ Me.Label34 = New System.Windows.Forms.Label()
+ Me.Label31 = New System.Windows.Forms.Label()
+ Me.Label20 = New System.Windows.Forms.Label()
+ Me.Label36 = New System.Windows.Forms.Label()
+ Me.Label10 = New System.Windows.Forms.Label()
+ Me.Label29 = New System.Windows.Forms.Label()
+ Me.Label26 = New System.Windows.Forms.Label()
+ Me.Label27 = New System.Windows.Forms.Label()
+ Me.Label9 = New System.Windows.Forms.Label()
+ Me.Label33 = New System.Windows.Forms.Label()
+ Me.Label30 = New System.Windows.Forms.Label()
+ Me.Label19 = New System.Windows.Forms.Label()
+ Me.Label15 = New System.Windows.Forms.Label()
+ Me.Label14 = New System.Windows.Forms.Label()
+ Me.Label6 = New System.Windows.Forms.Label()
+ Me.Label8 = New System.Windows.Forms.Label()
+ Me.Label23 = New System.Windows.Forms.Label()
+ Me.Label13 = New System.Windows.Forms.Label()
+ Me.Label28 = New System.Windows.Forms.Label()
+ Me.Label35 = New System.Windows.Forms.Label()
+ Me.Label25 = New System.Windows.Forms.Label()
+ Me.Label32 = New System.Windows.Forms.Label()
+ Me.Label24 = New System.Windows.Forms.Label()
+ Me.Label12 = New System.Windows.Forms.Label()
+ Me.Label11 = New System.Windows.Forms.Label()
+ Me.Label7 = New System.Windows.Forms.Label()
+ Me.Label3 = New System.Windows.Forms.Label()
+ Me.Label5 = New System.Windows.Forms.Label()
+ Me.Label2 = New System.Windows.Forms.Label()
+ Me.Label4 = New System.Windows.Forms.Label()
+ Me.DateTimePicker1 = New System.Windows.Forms.DateTimePicker()
+ Me.DateTimeP_RelDate = New System.Windows.Forms.DateTimePicker()
+ Me.Lab_DeviceState = New System.Windows.Forms.Label()
+ Me.Lab_mol = New System.Windows.Forms.Label()
+ Me.Button7 = New System.Windows.Forms.Button()
+ Me.But_ReleaseDate = New System.Windows.Forms.Button()
+ Me.Lab_WorkTime = New System.Windows.Forms.Label()
+ Me.Button3 = New System.Windows.Forms.Button()
+ Me.But_SetRTCTime = New System.Windows.Forms.Button()
+ Me.Lab_DeviceTime = New System.Windows.Forms.Label()
+ Me.TabPage2 = New System.Windows.Forms.TabPage()
+ Me.Grid1 = New FlexCell.Grid()
+ Me.TextBox10 = New System.Windows.Forms.TextBox()
+ Me.TextBox9 = New System.Windows.Forms.TextBox()
+ Me.Label18 = New System.Windows.Forms.Label()
+ Me.Button8 = New System.Windows.Forms.Button()
+ Me.Button6 = New System.Windows.Forms.Button()
+ Me.Button5 = New System.Windows.Forms.Button()
+ Me.But_QueryLogInfo = New System.Windows.Forms.Button()
+ Me.TabPage3 = New System.Windows.Forms.TabPage()
+ Me.SplitContainer4 = New System.Windows.Forms.SplitContainer()
+ Me.ProcessTable = New FlexCell.Grid()
+ Me.Grid_table = New FlexCell.Grid()
+ Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
+ Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
+ Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator()
+ Me.ToolStripLabel3 = New System.Windows.Forms.ToolStripLabel()
+ Me.ToolStripTextBox1 = New System.Windows.Forms.ToolStripTextBox()
+ Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel()
+ Me.T_CommandAlias = New System.Windows.Forms.ToolStripTextBox()
+ Me.ToolStripLabel2 = New System.Windows.Forms.ToolStripLabel()
+ Me.ToolStripTextBox2 = New System.Windows.Forms.ToolStripTextBox()
+ Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripComboBox1 = New System.Windows.Forms.ToolStripComboBox()
+ Me.ToolStripButton5 = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripButton6 = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripButton4 = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
+ Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
+ Me.FileSystemWatcher1 = New System.IO.FileSystemWatcher()
+ Me.FileSystemWatcher2 = New System.IO.FileSystemWatcher()
+ Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
+ Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
+ CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SplitContainer1.Panel1.SuspendLayout()
+ Me.SplitContainer1.Panel2.SuspendLayout()
+ Me.SplitContainer1.SuspendLayout()
+ CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SplitContainer2.Panel1.SuspendLayout()
+ Me.SplitContainer2.Panel2.SuspendLayout()
+ Me.SplitContainer2.SuspendLayout()
+ CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SplitContainer3.Panel1.SuspendLayout()
+ Me.SplitContainer3.Panel2.SuspendLayout()
+ Me.SplitContainer3.SuspendLayout()
+ Me.GroupBox1.SuspendLayout()
+ Me.TabControl1.SuspendLayout()
+ Me.TabPage1.SuspendLayout()
+ Me.GroupBox2.SuspendLayout()
+ Me.TabPage2.SuspendLayout()
+ Me.TabPage3.SuspendLayout()
+ CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SplitContainer4.Panel1.SuspendLayout()
+ Me.SplitContainer4.Panel2.SuspendLayout()
+ Me.SplitContainer4.SuspendLayout()
+ Me.ToolStrip1.SuspendLayout()
+ CType(Me.FileSystemWatcher1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.FileSystemWatcher2, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'LblSerialPortName
+ '
+ Me.LblSerialPortName.AutoSize = True
+ Me.LblSerialPortName.Location = New System.Drawing.Point(18, 32)
+ Me.LblSerialPortName.Name = "LblSerialPortName"
+ Me.LblSerialPortName.Size = New System.Drawing.Size(53, 12)
+ Me.LblSerialPortName.TabIndex = 7
+ Me.LblSerialPortName.Text = "串口名称"
+ '
+ 'LblSerialPortBaud
+ '
+ Me.LblSerialPortBaud.AutoSize = True
+ Me.LblSerialPortBaud.Location = New System.Drawing.Point(18, 50)
+ Me.LblSerialPortBaud.Name = "LblSerialPortBaud"
+ Me.LblSerialPortBaud.Size = New System.Drawing.Size(41, 12)
+ Me.LblSerialPortBaud.TabIndex = 8
+ Me.LblSerialPortBaud.Text = "波特率"
+ '
+ 'ComboBox8
+ '
+ Me.ComboBox8.FormattingEnabled = True
+ Me.ComboBox8.Location = New System.Drawing.Point(77, 27)
+ Me.ComboBox8.Name = "ComboBox8"
+ Me.ComboBox8.Size = New System.Drawing.Size(108, 20)
+ Me.ComboBox8.TabIndex = 9
+ '
+ 'ComboBox9
+ '
+ Me.ComboBox9.FormattingEnabled = True
+ Me.ComboBox9.Location = New System.Drawing.Point(77, 45)
+ Me.ComboBox9.Name = "ComboBox9"
+ Me.ComboBox9.Size = New System.Drawing.Size(108, 20)
+ Me.ComboBox9.TabIndex = 11
+ Me.ComboBox9.Text = "4800"
+ '
+ 'Button19
+ '
+ Me.Button19.Font = New System.Drawing.Font("宋体", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Button19.ForeColor = System.Drawing.Color.Green
+ Me.Button19.Location = New System.Drawing.Point(206, 22)
+ Me.Button19.Name = "Button19"
+ Me.Button19.Size = New System.Drawing.Size(120, 59)
+ Me.Button19.TabIndex = 10
+ Me.Button19.Text = "打开串口"
+ Me.Button19.UseVisualStyleBackColor = True
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label1.Location = New System.Drawing.Point(14, 28)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(49, 14)
+ Me.Label1.TabIndex = 14
+ Me.Label1.Text = "状态:"
+ '
+ 'SerialPort
+ '
+ '
+ 'SplitContainer1
+ '
+ Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1
+ Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainer1.Name = "SplitContainer1"
+ '
+ 'SplitContainer1.Panel1
+ '
+ Me.SplitContainer1.Panel1.Controls.Add(Me.SplitContainer2)
+ '
+ 'SplitContainer1.Panel2
+ '
+ Me.SplitContainer1.Panel2.Controls.Add(Me.TabControl1)
+ Me.SplitContainer1.Size = New System.Drawing.Size(1093, 789)
+ Me.SplitContainer1.SplitterDistance = 378
+ Me.SplitContainer1.TabIndex = 24
+ '
+ 'SplitContainer2
+ '
+ Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitContainer2.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainer2.Name = "SplitContainer2"
+ Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal
+ '
+ 'SplitContainer2.Panel1
+ '
+ Me.SplitContainer2.Panel1.Controls.Add(Me.SplitContainer3)
+ '
+ 'SplitContainer2.Panel2
+ '
+ Me.SplitContainer2.Panel2.Controls.Add(Me.Label41)
+ Me.SplitContainer2.Panel2.Controls.Add(Me.GroupBox1)
+ Me.SplitContainer2.Panel2.Controls.Add(Me.Label40)
+ Me.SplitContainer2.Panel2.Controls.Add(Me.Label39)
+ Me.SplitContainer2.Size = New System.Drawing.Size(378, 789)
+ Me.SplitContainer2.SplitterDistance = 274
+ Me.SplitContainer2.TabIndex = 12
+ '
+ 'SplitContainer3
+ '
+ Me.SplitContainer3.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitContainer3.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainer3.Name = "SplitContainer3"
+ Me.SplitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal
+ '
+ 'SplitContainer3.Panel1
+ '
+ Me.SplitContainer3.Panel1.Controls.Add(Me.CheckBox5)
+ Me.SplitContainer3.Panel1.Controls.Add(Me.LblSerialPortBaud)
+ Me.SplitContainer3.Panel1.Controls.Add(Me.ComboBox9)
+ Me.SplitContainer3.Panel1.Controls.Add(Me.ComboBox8)
+ Me.SplitContainer3.Panel1.Controls.Add(Me.Button19)
+ Me.SplitContainer3.Panel1.Controls.Add(Me.LblSerialPortName)
+ '
+ 'SplitContainer3.Panel2
+ '
+ Me.SplitContainer3.Panel2.Controls.Add(Me.Label38)
+ Me.SplitContainer3.Size = New System.Drawing.Size(378, 274)
+ Me.SplitContainer3.SplitterDistance = 95
+ Me.SplitContainer3.TabIndex = 12
+ '
+ 'CheckBox5
+ '
+ Me.CheckBox5.AutoSize = True
+ Me.CheckBox5.Location = New System.Drawing.Point(20, 5)
+ Me.CheckBox5.Name = "CheckBox5"
+ Me.CheckBox5.Size = New System.Drawing.Size(84, 16)
+ Me.CheckBox5.TabIndex = 12
+ Me.CheckBox5.Text = "启用偶校验"
+ Me.CheckBox5.UseVisualStyleBackColor = True
+ '
+ 'Label38
+ '
+ Me.Label38.BackColor = System.Drawing.SystemColors.ActiveBorder
+ Me.Label38.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.Label38.Font = New System.Drawing.Font("宋体", 42.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label38.ForeColor = System.Drawing.Color.Blue
+ Me.Label38.Location = New System.Drawing.Point(0, 0)
+ Me.Label38.Name = "Label38"
+ Me.Label38.Size = New System.Drawing.Size(378, 175)
+ Me.Label38.TabIndex = 9
+ Me.Label38.Text = "空闲"
+ Me.Label38.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'Label41
+ '
+ Me.Label41.BackColor = System.Drawing.SystemColors.ActiveBorder
+ Me.Label41.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label41.Font = New System.Drawing.Font("宋体", 42.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label41.ForeColor = System.Drawing.Color.Black
+ Me.Label41.Location = New System.Drawing.Point(0, 104)
+ Me.Label41.Name = "Label41"
+ Me.Label41.Size = New System.Drawing.Size(378, 52)
+ Me.Label41.TabIndex = 28
+ Me.Label41.Text = "星期一"
+ Me.Label41.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'GroupBox1
+ '
+ Me.GroupBox1.Controls.Add(Me.Button24)
+ Me.GroupBox1.Controls.Add(Me.RichTextBox1)
+ Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Bottom
+ Me.GroupBox1.Location = New System.Drawing.Point(0, 188)
+ Me.GroupBox1.Name = "GroupBox1"
+ Me.GroupBox1.Size = New System.Drawing.Size(378, 323)
+ Me.GroupBox1.TabIndex = 27
+ Me.GroupBox1.TabStop = False
+ Me.GroupBox1.Text = "测试记录"
+ '
+ 'Button24
+ '
+ Me.Button24.ForeColor = System.Drawing.SystemColors.ControlText
+ Me.Button24.Location = New System.Drawing.Point(60, -3)
+ Me.Button24.Name = "Button24"
+ Me.Button24.Size = New System.Drawing.Size(63, 20)
+ Me.Button24.TabIndex = 22
+ Me.Button24.Text = "清空记录"
+ Me.Button24.UseVisualStyleBackColor = True
+ '
+ 'RichTextBox1
+ '
+ Me.RichTextBox1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.RichTextBox1.Location = New System.Drawing.Point(3, 17)
+ Me.RichTextBox1.Name = "RichTextBox1"
+ Me.RichTextBox1.Size = New System.Drawing.Size(372, 303)
+ Me.RichTextBox1.TabIndex = 22
+ Me.RichTextBox1.Text = ""
+ '
+ 'Label40
+ '
+ Me.Label40.BackColor = System.Drawing.SystemColors.ActiveBorder
+ Me.Label40.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label40.Font = New System.Drawing.Font("宋体", 42.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label40.ForeColor = System.Drawing.Color.Black
+ Me.Label40.Location = New System.Drawing.Point(0, 52)
+ Me.Label40.Name = "Label40"
+ Me.Label40.Size = New System.Drawing.Size(378, 52)
+ Me.Label40.TabIndex = 26
+ Me.Label40.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'Label39
+ '
+ Me.Label39.BackColor = System.Drawing.SystemColors.ActiveBorder
+ Me.Label39.Dock = System.Windows.Forms.DockStyle.Top
+ Me.Label39.Font = New System.Drawing.Font("宋体", 42.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label39.ForeColor = System.Drawing.Color.Black
+ Me.Label39.Location = New System.Drawing.Point(0, 0)
+ Me.Label39.Name = "Label39"
+ Me.Label39.Size = New System.Drawing.Size(378, 52)
+ Me.Label39.TabIndex = 24
+ Me.Label39.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
+ '
+ 'TabControl1
+ '
+ Me.TabControl1.Controls.Add(Me.TabPage1)
+ Me.TabControl1.Controls.Add(Me.TabPage2)
+ Me.TabControl1.Controls.Add(Me.TabPage3)
+ Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TabControl1.Location = New System.Drawing.Point(0, 0)
+ Me.TabControl1.Name = "TabControl1"
+ Me.TabControl1.SelectedIndex = 0
+ Me.TabControl1.Size = New System.Drawing.Size(711, 789)
+ Me.TabControl1.TabIndex = 20
+ '
+ 'TabPage1
+ '
+ Me.TabPage1.AutoScroll = True
+ Me.TabPage1.Controls.Add(Me.GroupBox2)
+ Me.TabPage1.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage1.Name = "TabPage1"
+ Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage1.Size = New System.Drawing.Size(703, 763)
+ Me.TabPage1.TabIndex = 0
+ Me.TabPage1.Text = "设置参数"
+ Me.TabPage1.UseVisualStyleBackColor = True
+ '
+ 'GroupBox2
+ '
+ Me.GroupBox2.Controls.Add(Me.CheckBox4)
+ Me.GroupBox2.Controls.Add(Me.CheckBox3)
+ Me.GroupBox2.Controls.Add(Me.Button4)
+ Me.GroupBox2.Controls.Add(Me.Button2)
+ Me.GroupBox2.Controls.Add(Me.CheckBox2)
+ Me.GroupBox2.Controls.Add(Me.CheckBox1)
+ Me.GroupBox2.Controls.Add(Me.Button1)
+ Me.GroupBox2.Controls.Add(Me.TextBox8)
+ Me.GroupBox2.Controls.Add(Me.TextBox14)
+ Me.GroupBox2.Controls.Add(Me.TextBox6)
+ Me.GroupBox2.Controls.Add(Me.TextBox4)
+ Me.GroupBox2.Controls.Add(Me.TextBox13)
+ Me.GroupBox2.Controls.Add(Me.TextBox20)
+ Me.GroupBox2.Controls.Add(Me.TextBox18)
+ Me.GroupBox2.Controls.Add(Me.TextBox16)
+ Me.GroupBox2.Controls.Add(Me.TextBox12)
+ Me.GroupBox2.Controls.Add(Me.TextBox19)
+ Me.GroupBox2.Controls.Add(Me.TextBox24)
+ Me.GroupBox2.Controls.Add(Me.TextBox22)
+ Me.GroupBox2.Controls.Add(Me.TextBox23)
+ Me.GroupBox2.Controls.Add(Me.TextBox21)
+ Me.GroupBox2.Controls.Add(Me.TextBox17)
+ Me.GroupBox2.Controls.Add(Me.TextBox15)
+ Me.GroupBox2.Controls.Add(Me.TextBox11)
+ Me.GroupBox2.Controls.Add(Me.TextBox7)
+ Me.GroupBox2.Controls.Add(Me.TextBox5)
+ Me.GroupBox2.Controls.Add(Me.TextBox2)
+ Me.GroupBox2.Controls.Add(Me.TextBox3)
+ Me.GroupBox2.Controls.Add(Me.TextBox1)
+ Me.GroupBox2.Controls.Add(Me.Label1)
+ Me.GroupBox2.Controls.Add(Me.Label17)
+ Me.GroupBox2.Controls.Add(Me.Label22)
+ Me.GroupBox2.Controls.Add(Me.Label16)
+ Me.GroupBox2.Controls.Add(Me.Label21)
+ Me.GroupBox2.Controls.Add(Me.Label37)
+ Me.GroupBox2.Controls.Add(Me.Label34)
+ Me.GroupBox2.Controls.Add(Me.Label31)
+ Me.GroupBox2.Controls.Add(Me.Label20)
+ Me.GroupBox2.Controls.Add(Me.Label36)
+ Me.GroupBox2.Controls.Add(Me.Label10)
+ Me.GroupBox2.Controls.Add(Me.Label29)
+ Me.GroupBox2.Controls.Add(Me.Label26)
+ Me.GroupBox2.Controls.Add(Me.Label27)
+ Me.GroupBox2.Controls.Add(Me.Label9)
+ Me.GroupBox2.Controls.Add(Me.Label33)
+ Me.GroupBox2.Controls.Add(Me.Label30)
+ Me.GroupBox2.Controls.Add(Me.Label19)
+ Me.GroupBox2.Controls.Add(Me.Label15)
+ Me.GroupBox2.Controls.Add(Me.Label14)
+ Me.GroupBox2.Controls.Add(Me.Label6)
+ Me.GroupBox2.Controls.Add(Me.Label8)
+ Me.GroupBox2.Controls.Add(Me.Label23)
+ Me.GroupBox2.Controls.Add(Me.Label13)
+ Me.GroupBox2.Controls.Add(Me.Label28)
+ Me.GroupBox2.Controls.Add(Me.Label35)
+ Me.GroupBox2.Controls.Add(Me.Label25)
+ Me.GroupBox2.Controls.Add(Me.Label32)
+ Me.GroupBox2.Controls.Add(Me.Label24)
+ Me.GroupBox2.Controls.Add(Me.Label12)
+ Me.GroupBox2.Controls.Add(Me.Label11)
+ Me.GroupBox2.Controls.Add(Me.Label7)
+ Me.GroupBox2.Controls.Add(Me.Label3)
+ Me.GroupBox2.Controls.Add(Me.Label5)
+ Me.GroupBox2.Controls.Add(Me.Label2)
+ Me.GroupBox2.Controls.Add(Me.Label4)
+ Me.GroupBox2.Controls.Add(Me.DateTimePicker1)
+ Me.GroupBox2.Controls.Add(Me.DateTimeP_RelDate)
+ Me.GroupBox2.Controls.Add(Me.Lab_DeviceState)
+ Me.GroupBox2.Controls.Add(Me.Lab_mol)
+ Me.GroupBox2.Controls.Add(Me.Button7)
+ Me.GroupBox2.Controls.Add(Me.But_ReleaseDate)
+ Me.GroupBox2.Controls.Add(Me.Lab_WorkTime)
+ Me.GroupBox2.Controls.Add(Me.Button3)
+ Me.GroupBox2.Controls.Add(Me.But_SetRTCTime)
+ Me.GroupBox2.Controls.Add(Me.Lab_DeviceTime)
+ Me.GroupBox2.Location = New System.Drawing.Point(3, 6)
+ Me.GroupBox2.Name = "GroupBox2"
+ Me.GroupBox2.Size = New System.Drawing.Size(344, 686)
+ Me.GroupBox2.TabIndex = 19
+ Me.GroupBox2.TabStop = False
+ '
+ 'CheckBox4
+ '
+ Me.CheckBox4.AutoSize = True
+ Me.CheckBox4.Location = New System.Drawing.Point(238, 42)
+ Me.CheckBox4.Name = "CheckBox4"
+ Me.CheckBox4.Size = New System.Drawing.Size(96, 16)
+ Me.CheckBox4.TabIndex = 24
+ Me.CheckBox4.Text = "调试曲线信息"
+ Me.CheckBox4.UseVisualStyleBackColor = True
+ '
+ 'CheckBox3
+ '
+ Me.CheckBox3.AutoSize = True
+ Me.CheckBox3.Location = New System.Drawing.Point(239, 20)
+ Me.CheckBox3.Name = "CheckBox3"
+ Me.CheckBox3.Size = New System.Drawing.Size(72, 16)
+ Me.CheckBox3.TabIndex = 24
+ Me.CheckBox3.Text = "调试信息"
+ Me.CheckBox3.UseVisualStyleBackColor = True
+ '
+ 'Button4
+ '
+ Me.Button4.Location = New System.Drawing.Point(263, 106)
+ Me.Button4.Name = "Button4"
+ Me.Button4.Size = New System.Drawing.Size(75, 30)
+ Me.Button4.TabIndex = 23
+ Me.Button4.Text = "校准"
+ Me.Button4.UseVisualStyleBackColor = True
+ '
+ 'Button2
+ '
+ Me.Button2.Location = New System.Drawing.Point(263, 69)
+ Me.Button2.Name = "Button2"
+ Me.Button2.Size = New System.Drawing.Size(75, 31)
+ Me.Button2.TabIndex = 22
+ Me.Button2.Text = "开启上报"
+ Me.Button2.UseVisualStyleBackColor = True
+ '
+ 'CheckBox2
+ '
+ Me.CheckBox2.AutoSize = True
+ Me.CheckBox2.Checked = True
+ Me.CheckBox2.CheckState = System.Windows.Forms.CheckState.Checked
+ Me.CheckBox2.Location = New System.Drawing.Point(16, 153)
+ Me.CheckBox2.Name = "CheckBox2"
+ Me.CheckBox2.Size = New System.Drawing.Size(96, 16)
+ Me.CheckBox2.TabIndex = 21
+ Me.CheckBox2.Text = "使用系统时间"
+ Me.CheckBox2.UseVisualStyleBackColor = True
+ '
+ 'CheckBox1
+ '
+ Me.CheckBox1.AutoSize = True
+ Me.CheckBox1.Location = New System.Drawing.Point(17, 172)
+ Me.CheckBox1.Name = "CheckBox1"
+ Me.CheckBox1.Size = New System.Drawing.Size(84, 16)
+ Me.CheckBox1.TabIndex = 21
+ Me.CheckBox1.Text = "自定义时间"
+ Me.CheckBox1.UseVisualStyleBackColor = True
+ '
+ 'Button1
+ '
+ Me.Button1.Location = New System.Drawing.Point(130, 570)
+ Me.Button1.Name = "Button1"
+ Me.Button1.Size = New System.Drawing.Size(89, 33)
+ Me.Button1.TabIndex = 20
+ Me.Button1.Text = "读取设置参数"
+ Me.Button1.UseVisualStyleBackColor = True
+ '
+ 'TextBox8
+ '
+ Me.TextBox8.Location = New System.Drawing.Point(261, 319)
+ Me.TextBox8.Name = "TextBox8"
+ Me.TextBox8.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox8.TabIndex = 19
+ Me.TextBox8.Text = "0"
+ Me.TextBox8.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox14
+ '
+ Me.TextBox14.Location = New System.Drawing.Point(261, 260)
+ Me.TextBox14.Name = "TextBox14"
+ Me.TextBox14.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox14.TabIndex = 19
+ Me.TextBox14.Text = "0"
+ Me.TextBox14.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox6
+ '
+ Me.TextBox6.Location = New System.Drawing.Point(261, 289)
+ Me.TextBox6.Name = "TextBox6"
+ Me.TextBox6.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox6.TabIndex = 19
+ Me.TextBox6.Text = "0"
+ Me.TextBox6.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox4
+ '
+ Me.TextBox4.Location = New System.Drawing.Point(261, 376)
+ Me.TextBox4.Name = "TextBox4"
+ Me.TextBox4.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox4.TabIndex = 19
+ Me.TextBox4.Text = "0"
+ Me.TextBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox13
+ '
+ Me.TextBox13.Location = New System.Drawing.Point(116, 263)
+ Me.TextBox13.Name = "TextBox13"
+ Me.TextBox13.Size = New System.Drawing.Size(35, 21)
+ Me.TextBox13.TabIndex = 19
+ Me.TextBox13.Text = "0"
+ Me.TextBox13.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox20
+ '
+ Me.TextBox20.Location = New System.Drawing.Point(261, 462)
+ Me.TextBox20.Name = "TextBox20"
+ Me.TextBox20.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox20.TabIndex = 19
+ Me.TextBox20.Text = "0"
+ Me.TextBox20.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox18
+ '
+ Me.TextBox18.Location = New System.Drawing.Point(261, 489)
+ Me.TextBox18.Name = "TextBox18"
+ Me.TextBox18.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox18.TabIndex = 19
+ Me.TextBox18.Text = "0"
+ Me.TextBox18.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox16
+ '
+ Me.TextBox16.Location = New System.Drawing.Point(261, 436)
+ Me.TextBox16.Name = "TextBox16"
+ Me.TextBox16.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox16.TabIndex = 19
+ Me.TextBox16.Text = "0"
+ Me.TextBox16.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox12
+ '
+ Me.TextBox12.Location = New System.Drawing.Point(261, 407)
+ Me.TextBox12.Name = "TextBox12"
+ Me.TextBox12.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox12.TabIndex = 19
+ Me.TextBox12.Text = "0"
+ Me.TextBox12.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox19
+ '
+ Me.TextBox19.Location = New System.Drawing.Point(97, 462)
+ Me.TextBox19.Name = "TextBox19"
+ Me.TextBox19.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox19.TabIndex = 19
+ Me.TextBox19.Text = "0"
+ Me.TextBox19.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox24
+ '
+ Me.TextBox24.Location = New System.Drawing.Point(292, 539)
+ Me.TextBox24.Name = "TextBox24"
+ Me.TextBox24.Size = New System.Drawing.Size(28, 21)
+ Me.TextBox24.TabIndex = 19
+ Me.TextBox24.Text = "0"
+ Me.TextBox24.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox22
+ '
+ Me.TextBox22.Location = New System.Drawing.Point(292, 514)
+ Me.TextBox22.Name = "TextBox22"
+ Me.TextBox22.Size = New System.Drawing.Size(28, 21)
+ Me.TextBox22.TabIndex = 19
+ Me.TextBox22.Text = "0"
+ Me.TextBox22.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox23
+ '
+ Me.TextBox23.Location = New System.Drawing.Point(136, 540)
+ Me.TextBox23.Name = "TextBox23"
+ Me.TextBox23.Size = New System.Drawing.Size(28, 21)
+ Me.TextBox23.TabIndex = 19
+ Me.TextBox23.Text = "0"
+ Me.TextBox23.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox21
+ '
+ Me.TextBox21.Location = New System.Drawing.Point(136, 515)
+ Me.TextBox21.Name = "TextBox21"
+ Me.TextBox21.Size = New System.Drawing.Size(28, 21)
+ Me.TextBox21.TabIndex = 19
+ Me.TextBox21.Text = "0"
+ Me.TextBox21.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox17
+ '
+ Me.TextBox17.Location = New System.Drawing.Point(97, 489)
+ Me.TextBox17.Name = "TextBox17"
+ Me.TextBox17.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox17.TabIndex = 19
+ Me.TextBox17.Text = "0"
+ Me.TextBox17.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox15
+ '
+ Me.TextBox15.Location = New System.Drawing.Point(97, 436)
+ Me.TextBox15.Name = "TextBox15"
+ Me.TextBox15.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox15.TabIndex = 19
+ Me.TextBox15.Text = "0"
+ Me.TextBox15.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox11
+ '
+ Me.TextBox11.Location = New System.Drawing.Point(97, 407)
+ Me.TextBox11.Name = "TextBox11"
+ Me.TextBox11.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox11.TabIndex = 19
+ Me.TextBox11.Text = "0"
+ Me.TextBox11.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox7
+ '
+ Me.TextBox7.Location = New System.Drawing.Point(97, 319)
+ Me.TextBox7.Name = "TextBox7"
+ Me.TextBox7.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox7.TabIndex = 19
+ Me.TextBox7.Text = "0"
+ Me.TextBox7.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox5
+ '
+ Me.TextBox5.Location = New System.Drawing.Point(97, 291)
+ Me.TextBox5.Name = "TextBox5"
+ Me.TextBox5.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox5.TabIndex = 19
+ Me.TextBox5.Text = "0"
+ Me.TextBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox2
+ '
+ Me.TextBox2.Location = New System.Drawing.Point(97, 347)
+ Me.TextBox2.Name = "TextBox2"
+ Me.TextBox2.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox2.TabIndex = 19
+ Me.TextBox2.Text = "0"
+ Me.TextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox3
+ '
+ Me.TextBox3.Location = New System.Drawing.Point(97, 376)
+ Me.TextBox3.Name = "TextBox3"
+ Me.TextBox3.Size = New System.Drawing.Size(54, 21)
+ Me.TextBox3.TabIndex = 19
+ Me.TextBox3.Text = "0"
+ Me.TextBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox1
+ '
+ Me.TextBox1.Location = New System.Drawing.Point(261, 347)
+ Me.TextBox1.Name = "TextBox1"
+ Me.TextBox1.Size = New System.Drawing.Size(52, 21)
+ Me.TextBox1.TabIndex = 19
+ Me.TextBox1.Text = "0"
+ Me.TextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'Label17
+ '
+ Me.Label17.AutoSize = True
+ Me.Label17.Location = New System.Drawing.Point(3, 138)
+ Me.Label17.Name = "Label17"
+ Me.Label17.Size = New System.Drawing.Size(305, 12)
+ Me.Label17.TabIndex = 18
+ Me.Label17.Text = "--------------------------------------------------"
+ '
+ 'Label22
+ '
+ Me.Label22.AutoSize = True
+ Me.Label22.Location = New System.Drawing.Point(6, 604)
+ Me.Label22.Name = "Label22"
+ Me.Label22.Size = New System.Drawing.Size(305, 12)
+ Me.Label22.TabIndex = 18
+ Me.Label22.Text = "--------------------------------------------------"
+ '
+ 'Label16
+ '
+ Me.Label16.AutoSize = True
+ Me.Label16.Location = New System.Drawing.Point(5, 219)
+ Me.Label16.Name = "Label16"
+ Me.Label16.Size = New System.Drawing.Size(305, 12)
+ Me.Label16.TabIndex = 18
+ Me.Label16.Text = "--------------------------------------------------"
+ '
+ 'Label21
+ '
+ Me.Label21.AutoSize = True
+ Me.Label21.Location = New System.Drawing.Point(15, 269)
+ Me.Label21.Name = "Label21"
+ Me.Label21.Size = New System.Drawing.Size(95, 12)
+ Me.Label21.TabIndex = 18
+ Me.Label21.Text = "背景值滤波长度:"
+ '
+ 'Label37
+ '
+ Me.Label37.AutoSize = True
+ Me.Label37.Location = New System.Drawing.Point(175, 466)
+ Me.Label37.Name = "Label37"
+ Me.Label37.Size = New System.Drawing.Size(77, 12)
+ Me.Label37.TabIndex = 18
+ Me.Label37.Text = "10% LEL下限:"
+ '
+ 'Label34
+ '
+ Me.Label34.AutoSize = True
+ Me.Label34.Location = New System.Drawing.Point(175, 493)
+ Me.Label34.Name = "Label34"
+ Me.Label34.Size = New System.Drawing.Size(83, 12)
+ Me.Label34.TabIndex = 18
+ Me.Label34.Text = "校准差值上限:"
+ '
+ 'Label31
+ '
+ Me.Label31.AutoSize = True
+ Me.Label31.Location = New System.Drawing.Point(175, 440)
+ Me.Label31.Name = "Label31"
+ Me.Label31.Size = New System.Drawing.Size(71, 12)
+ Me.Label31.TabIndex = 18
+ Me.Label31.Text = "0% LEL上限:"
+ '
+ 'Label20
+ '
+ Me.Label20.AutoSize = True
+ Me.Label20.Location = New System.Drawing.Point(175, 411)
+ Me.Label20.Name = "Label20"
+ Me.Label20.Size = New System.Drawing.Size(59, 12)
+ Me.Label20.TabIndex = 18
+ Me.Label20.Text = "校准超时:"
+ '
+ 'Label36
+ '
+ Me.Label36.AutoSize = True
+ Me.Label36.Location = New System.Drawing.Point(15, 466)
+ Me.Label36.Name = "Label36"
+ Me.Label36.Size = New System.Drawing.Size(77, 12)
+ Me.Label36.TabIndex = 18
+ Me.Label36.Text = "10% LEL上限:"
+ '
+ 'Label10
+ '
+ Me.Label10.AutoSize = True
+ Me.Label10.Location = New System.Drawing.Point(15, 544)
+ Me.Label10.Name = "Label10"
+ Me.Label10.Size = New System.Drawing.Size(0, 12)
+ Me.Label10.TabIndex = 18
+ '
+ 'Label29
+ '
+ Me.Label29.AutoSize = True
+ Me.Label29.Location = New System.Drawing.Point(167, 546)
+ Me.Label29.Name = "Label29"
+ Me.Label29.Size = New System.Drawing.Size(125, 12)
+ Me.Label29.TabIndex = 18
+ Me.Label29.Text = "倍以内且持续时间超过"
+ '
+ 'Label26
+ '
+ Me.Label26.AutoSize = True
+ Me.Label26.Location = New System.Drawing.Point(167, 521)
+ Me.Label26.Name = "Label26"
+ Me.Label26.Size = New System.Drawing.Size(125, 12)
+ Me.Label26.TabIndex = 18
+ Me.Label26.Text = "倍以内且消抖次数超过"
+ '
+ 'Label27
+ '
+ Me.Label27.AutoSize = True
+ Me.Label27.Location = New System.Drawing.Point(9, 546)
+ Me.Label27.Name = "Label27"
+ Me.Label27.Size = New System.Drawing.Size(125, 12)
+ Me.Label27.TabIndex = 18
+ Me.Label27.Text = "传感器稳定在基准值的"
+ '
+ 'Label9
+ '
+ Me.Label9.AutoSize = True
+ Me.Label9.Location = New System.Drawing.Point(9, 521)
+ Me.Label9.Name = "Label9"
+ Me.Label9.Size = New System.Drawing.Size(125, 12)
+ Me.Label9.TabIndex = 18
+ Me.Label9.Text = "传感器稳定在基准值的"
+ '
+ 'Label33
+ '
+ Me.Label33.AutoSize = True
+ Me.Label33.Location = New System.Drawing.Point(14, 493)
+ Me.Label33.Name = "Label33"
+ Me.Label33.Size = New System.Drawing.Size(89, 12)
+ Me.Label33.TabIndex = 18
+ Me.Label33.Text = "校准差值下限:"
+ '
+ 'Label30
+ '
+ Me.Label30.AutoSize = True
+ Me.Label30.Location = New System.Drawing.Point(15, 440)
+ Me.Label30.Name = "Label30"
+ Me.Label30.Size = New System.Drawing.Size(71, 12)
+ Me.Label30.TabIndex = 18
+ Me.Label30.Text = "0% LEL下限:"
+ '
+ 'Label19
+ '
+ Me.Label19.AutoSize = True
+ Me.Label19.Location = New System.Drawing.Point(15, 411)
+ Me.Label19.Name = "Label19"
+ Me.Label19.Size = New System.Drawing.Size(71, 12)
+ Me.Label19.TabIndex = 18
+ Me.Label19.Text = "报警提前量:"
+ '
+ 'Label15
+ '
+ Me.Label15.AutoSize = True
+ Me.Label15.Location = New System.Drawing.Point(14, 325)
+ Me.Label15.Name = "Label15"
+ Me.Label15.Size = New System.Drawing.Size(83, 12)
+ Me.Label15.TabIndex = 18
+ Me.Label15.Text = "传感器极大值:"
+ '
+ 'Label14
+ '
+ Me.Label14.AutoSize = True
+ Me.Label14.Location = New System.Drawing.Point(14, 297)
+ Me.Label14.Name = "Label14"
+ Me.Label14.Size = New System.Drawing.Size(59, 12)
+ Me.Label14.TabIndex = 18
+ Me.Label14.Text = "稳定阈值:"
+ '
+ 'Label6
+ '
+ Me.Label6.AutoSize = True
+ Me.Label6.Location = New System.Drawing.Point(175, 326)
+ Me.Label6.Name = "Label6"
+ Me.Label6.Size = New System.Drawing.Size(83, 12)
+ Me.Label6.TabIndex = 18
+ Me.Label6.Text = "传感器极小值:"
+ '
+ 'Label8
+ '
+ Me.Label8.AutoSize = True
+ Me.Label8.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label8.Location = New System.Drawing.Point(14, 350)
+ Me.Label8.Name = "Label8"
+ Me.Label8.Size = New System.Drawing.Size(49, 14)
+ Me.Label8.TabIndex = 18
+ Me.Label8.Text = "0%LEV:"
+ '
+ 'Label23
+ '
+ Me.Label23.AutoSize = True
+ Me.Label23.Location = New System.Drawing.Point(175, 266)
+ Me.Label23.Name = "Label23"
+ Me.Label23.Size = New System.Drawing.Size(59, 12)
+ Me.Label23.TabIndex = 18
+ Me.Label23.Text = "预热超时:"
+ '
+ 'Label13
+ '
+ Me.Label13.AutoSize = True
+ Me.Label13.Location = New System.Drawing.Point(175, 298)
+ Me.Label13.Name = "Label13"
+ Me.Label13.Size = New System.Drawing.Size(59, 12)
+ Me.Label13.TabIndex = 18
+ Me.Label13.Text = "稳定消抖:"
+ '
+ 'Label28
+ '
+ Me.Label28.AutoSize = True
+ Me.Label28.Location = New System.Drawing.Point(315, 411)
+ Me.Label28.Name = "Label28"
+ Me.Label28.Size = New System.Drawing.Size(11, 12)
+ Me.Label28.TabIndex = 18
+ Me.Label28.Text = "s"
+ '
+ 'Label35
+ '
+ Me.Label35.AutoSize = True
+ Me.Label35.Location = New System.Drawing.Point(323, 521)
+ Me.Label35.Name = "Label35"
+ Me.Label35.Size = New System.Drawing.Size(11, 12)
+ Me.Label35.TabIndex = 18
+ Me.Label35.Text = "s"
+ '
+ 'Label25
+ '
+ Me.Label25.AutoSize = True
+ Me.Label25.Location = New System.Drawing.Point(315, 296)
+ Me.Label25.Name = "Label25"
+ Me.Label25.Size = New System.Drawing.Size(11, 12)
+ Me.Label25.TabIndex = 18
+ Me.Label25.Text = "s"
+ '
+ 'Label32
+ '
+ Me.Label32.AutoSize = True
+ Me.Label32.Location = New System.Drawing.Point(321, 546)
+ Me.Label32.Name = "Label32"
+ Me.Label32.Size = New System.Drawing.Size(23, 12)
+ Me.Label32.TabIndex = 18
+ Me.Label32.Text = "min"
+ '
+ 'Label24
+ '
+ Me.Label24.AutoSize = True
+ Me.Label24.Location = New System.Drawing.Point(315, 269)
+ Me.Label24.Name = "Label24"
+ Me.Label24.Size = New System.Drawing.Size(23, 12)
+ Me.Label24.TabIndex = 18
+ Me.Label24.Text = "min"
+ '
+ 'Label12
+ '
+ Me.Label12.AutoSize = True
+ Me.Label12.Location = New System.Drawing.Point(175, 380)
+ Me.Label12.Name = "Label12"
+ Me.Label12.Size = New System.Drawing.Size(59, 12)
+ Me.Label12.TabIndex = 18
+ Me.Label12.Text = "恢复消抖:"
+ '
+ 'Label11
+ '
+ Me.Label11.AutoSize = True
+ Me.Label11.Location = New System.Drawing.Point(14, 380)
+ Me.Label11.Name = "Label11"
+ Me.Label11.Size = New System.Drawing.Size(59, 12)
+ Me.Label11.TabIndex = 18
+ Me.Label11.Text = "报警消抖:"
+ '
+ 'Label7
+ '
+ Me.Label7.AutoSize = True
+ Me.Label7.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label7.Location = New System.Drawing.Point(175, 350)
+ Me.Label7.Name = "Label7"
+ Me.Label7.Size = New System.Drawing.Size(56, 14)
+ Me.Label7.TabIndex = 18
+ Me.Label7.Text = "10%LEV:"
+ '
+ 'Label3
+ '
+ Me.Label3.AutoSize = True
+ Me.Label3.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label3.Location = New System.Drawing.Point(14, 57)
+ Me.Label3.Name = "Label3"
+ Me.Label3.Size = New System.Drawing.Size(49, 14)
+ Me.Label3.TabIndex = 14
+ Me.Label3.Text = "浓度:"
+ '
+ 'Label5
+ '
+ Me.Label5.AutoSize = True
+ Me.Label5.Location = New System.Drawing.Point(14, 238)
+ Me.Label5.Name = "Label5"
+ Me.Label5.Size = New System.Drawing.Size(53, 12)
+ Me.Label5.TabIndex = 18
+ Me.Label5.Text = "出厂时间"
+ '
+ 'Label2
+ '
+ Me.Label2.AutoSize = True
+ Me.Label2.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label2.Location = New System.Drawing.Point(14, 86)
+ Me.Label2.Name = "Label2"
+ Me.Label2.Size = New System.Drawing.Size(77, 14)
+ Me.Label2.TabIndex = 14
+ Me.Label2.Text = "工作天数:"
+ '
+ 'Label4
+ '
+ Me.Label4.AutoSize = True
+ Me.Label4.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label4.Location = New System.Drawing.Point(14, 115)
+ Me.Label4.Name = "Label4"
+ Me.Label4.Size = New System.Drawing.Size(77, 14)
+ Me.Label4.TabIndex = 14
+ Me.Label4.Text = "设备时间:"
+ '
+ 'DateTimePicker1
+ '
+ Me.DateTimePicker1.CustomFormat = "yyyy-MM-dd HH:mm"
+ Me.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom
+ Me.DateTimePicker1.Location = New System.Drawing.Point(17, 191)
+ Me.DateTimePicker1.Name = "DateTimePicker1"
+ Me.DateTimePicker1.Size = New System.Drawing.Size(136, 21)
+ Me.DateTimePicker1.TabIndex = 17
+ '
+ 'DateTimeP_RelDate
+ '
+ Me.DateTimeP_RelDate.CustomFormat = "yyyy-MM-dd HH:mm"
+ Me.DateTimeP_RelDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom
+ Me.DateTimeP_RelDate.Location = New System.Drawing.Point(97, 232)
+ Me.DateTimeP_RelDate.Name = "DateTimeP_RelDate"
+ Me.DateTimeP_RelDate.Size = New System.Drawing.Size(136, 21)
+ Me.DateTimeP_RelDate.TabIndex = 17
+ '
+ 'Lab_DeviceState
+ '
+ Me.Lab_DeviceState.AutoSize = True
+ Me.Lab_DeviceState.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Lab_DeviceState.Location = New System.Drawing.Point(97, 28)
+ Me.Lab_DeviceState.Name = "Lab_DeviceState"
+ Me.Lab_DeviceState.Size = New System.Drawing.Size(42, 14)
+ Me.Lab_DeviceState.TabIndex = 15
+ Me.Lab_DeviceState.Text = "XXXXX"
+ '
+ 'Lab_mol
+ '
+ Me.Lab_mol.AutoSize = True
+ Me.Lab_mol.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Lab_mol.Location = New System.Drawing.Point(97, 57)
+ Me.Lab_mol.Name = "Lab_mol"
+ Me.Lab_mol.Size = New System.Drawing.Size(42, 14)
+ Me.Lab_mol.TabIndex = 15
+ Me.Lab_mol.Text = "XXXXX"
+ '
+ 'Button7
+ '
+ Me.Button7.Location = New System.Drawing.Point(231, 619)
+ Me.Button7.Name = "Button7"
+ Me.Button7.Size = New System.Drawing.Size(100, 33)
+ Me.Button7.TabIndex = 16
+ Me.Button7.Text = "复位"
+ Me.Button7.UseVisualStyleBackColor = True
+ '
+ 'But_ReleaseDate
+ '
+ Me.But_ReleaseDate.Location = New System.Drawing.Point(229, 570)
+ Me.But_ReleaseDate.Name = "But_ReleaseDate"
+ Me.But_ReleaseDate.Size = New System.Drawing.Size(100, 33)
+ Me.But_ReleaseDate.TabIndex = 16
+ Me.But_ReleaseDate.Text = "下发设置参数"
+ Me.But_ReleaseDate.UseVisualStyleBackColor = True
+ '
+ 'Lab_WorkTime
+ '
+ Me.Lab_WorkTime.AutoSize = True
+ Me.Lab_WorkTime.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Lab_WorkTime.Location = New System.Drawing.Point(97, 86)
+ Me.Lab_WorkTime.Name = "Lab_WorkTime"
+ Me.Lab_WorkTime.Size = New System.Drawing.Size(42, 14)
+ Me.Lab_WorkTime.TabIndex = 15
+ Me.Lab_WorkTime.Text = "XXXXX"
+ '
+ 'Button3
+ '
+ Me.Button3.Location = New System.Drawing.Point(235, 150)
+ Me.Button3.Name = "Button3"
+ Me.Button3.Size = New System.Drawing.Size(100, 33)
+ Me.Button3.TabIndex = 16
+ Me.Button3.Text = "读取RTC时间"
+ Me.Button3.UseVisualStyleBackColor = True
+ '
+ 'But_SetRTCTime
+ '
+ Me.But_SetRTCTime.Location = New System.Drawing.Point(235, 185)
+ Me.But_SetRTCTime.Name = "But_SetRTCTime"
+ Me.But_SetRTCTime.Size = New System.Drawing.Size(100, 33)
+ Me.But_SetRTCTime.TabIndex = 16
+ Me.But_SetRTCTime.Text = "设置RTC时间"
+ Me.But_SetRTCTime.UseVisualStyleBackColor = True
+ '
+ 'Lab_DeviceTime
+ '
+ Me.Lab_DeviceTime.AutoSize = True
+ Me.Lab_DeviceTime.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Lab_DeviceTime.Location = New System.Drawing.Point(97, 115)
+ Me.Lab_DeviceTime.Name = "Lab_DeviceTime"
+ Me.Lab_DeviceTime.Size = New System.Drawing.Size(42, 14)
+ Me.Lab_DeviceTime.TabIndex = 15
+ Me.Lab_DeviceTime.Text = "XXXXX"
+ '
+ 'TabPage2
+ '
+ Me.TabPage2.Controls.Add(Me.Grid1)
+ Me.TabPage2.Controls.Add(Me.TextBox10)
+ Me.TabPage2.Controls.Add(Me.TextBox9)
+ Me.TabPage2.Controls.Add(Me.Label18)
+ Me.TabPage2.Controls.Add(Me.Button8)
+ Me.TabPage2.Controls.Add(Me.Button6)
+ Me.TabPage2.Controls.Add(Me.Button5)
+ Me.TabPage2.Controls.Add(Me.But_QueryLogInfo)
+ Me.TabPage2.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage2.Name = "TabPage2"
+ Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage2.Size = New System.Drawing.Size(703, 763)
+ Me.TabPage2.TabIndex = 1
+ Me.TabPage2.Text = "日志信息查询"
+ Me.TabPage2.UseVisualStyleBackColor = True
+ '
+ 'Grid1
+ '
+ Me.Grid1.CheckedImage = Nothing
+ Me.Grid1.Cols = 4
+ Me.Grid1.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
+ Me.Grid1.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Grid1.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.Grid1.Location = New System.Drawing.Point(3, 99)
+ Me.Grid1.Name = "Grid1"
+ Me.Grid1.Rows = 10
+ Me.Grid1.Size = New System.Drawing.Size(361, 284)
+ Me.Grid1.TabIndex = 21
+ Me.Grid1.UncheckedImage = Nothing
+ '
+ 'TextBox10
+ '
+ Me.TextBox10.Location = New System.Drawing.Point(14, 57)
+ Me.TextBox10.Name = "TextBox10"
+ Me.TextBox10.Size = New System.Drawing.Size(60, 21)
+ Me.TextBox10.TabIndex = 20
+ Me.TextBox10.Text = "0"
+ Me.TextBox10.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'TextBox9
+ '
+ Me.TextBox9.Location = New System.Drawing.Point(112, 14)
+ Me.TextBox9.Name = "TextBox9"
+ Me.TextBox9.Size = New System.Drawing.Size(81, 21)
+ Me.TextBox9.TabIndex = 20
+ Me.TextBox9.Text = "0"
+ Me.TextBox9.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'Label18
+ '
+ Me.Label18.AutoSize = True
+ Me.Label18.Font = New System.Drawing.Font("宋体", 10.5!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Label18.Location = New System.Drawing.Point(8, 18)
+ Me.Label18.Name = "Label18"
+ Me.Label18.Size = New System.Drawing.Size(105, 14)
+ Me.Label18.TabIndex = 19
+ Me.Label18.Text = "当前日志数量:"
+ '
+ 'Button8
+ '
+ Me.Button8.Location = New System.Drawing.Point(256, 50)
+ Me.Button8.Name = "Button8"
+ Me.Button8.Size = New System.Drawing.Size(80, 33)
+ Me.Button8.TabIndex = 17
+ Me.Button8.Text = "清楚日志"
+ Me.Button8.UseVisualStyleBackColor = True
+ '
+ 'Button6
+ '
+ Me.Button6.Location = New System.Drawing.Point(170, 50)
+ Me.Button6.Name = "Button6"
+ Me.Button6.Size = New System.Drawing.Size(80, 33)
+ Me.Button6.TabIndex = 17
+ Me.Button6.Text = "一键查询"
+ Me.Button6.UseVisualStyleBackColor = True
+ '
+ 'Button5
+ '
+ Me.Button5.Location = New System.Drawing.Point(91, 50)
+ Me.Button5.Name = "Button5"
+ Me.Button5.Size = New System.Drawing.Size(73, 33)
+ Me.Button5.TabIndex = 17
+ Me.Button5.Text = "查询日志"
+ Me.Button5.UseVisualStyleBackColor = True
+ '
+ 'But_QueryLogInfo
+ '
+ Me.But_QueryLogInfo.Location = New System.Drawing.Point(225, 10)
+ Me.But_QueryLogInfo.Name = "But_QueryLogInfo"
+ Me.But_QueryLogInfo.Size = New System.Drawing.Size(100, 33)
+ Me.But_QueryLogInfo.TabIndex = 17
+ Me.But_QueryLogInfo.Text = "查询日志信息"
+ Me.But_QueryLogInfo.UseVisualStyleBackColor = True
+ '
+ 'TabPage3
+ '
+ Me.TabPage3.Controls.Add(Me.SplitContainer4)
+ Me.TabPage3.Controls.Add(Me.ToolStrip1)
+ Me.TabPage3.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage3.Name = "TabPage3"
+ Me.TabPage3.Size = New System.Drawing.Size(703, 763)
+ Me.TabPage3.TabIndex = 2
+ Me.TabPage3.Text = "数据校验"
+ Me.TabPage3.UseVisualStyleBackColor = True
+ '
+ 'SplitContainer4
+ '
+ Me.SplitContainer4.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.SplitContainer4.Location = New System.Drawing.Point(0, 45)
+ Me.SplitContainer4.Name = "SplitContainer4"
+ Me.SplitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal
+ '
+ 'SplitContainer4.Panel1
+ '
+ Me.SplitContainer4.Panel1.Controls.Add(Me.ProcessTable)
+ '
+ 'SplitContainer4.Panel2
+ '
+ Me.SplitContainer4.Panel2.Controls.Add(Me.Grid_table)
+ Me.SplitContainer4.Size = New System.Drawing.Size(703, 718)
+ Me.SplitContainer4.SplitterDistance = 186
+ Me.SplitContainer4.TabIndex = 1
+ '
+ 'ProcessTable
+ '
+ Me.ProcessTable.CheckedImage = Nothing
+ Me.ProcessTable.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
+ Me.ProcessTable.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.ProcessTable.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.ProcessTable.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.ProcessTable.Location = New System.Drawing.Point(0, 0)
+ Me.ProcessTable.Name = "ProcessTable"
+ Me.ProcessTable.Size = New System.Drawing.Size(703, 186)
+ Me.ProcessTable.TabIndex = 0
+ Me.ProcessTable.UncheckedImage = Nothing
+ '
+ 'Grid_table
+ '
+ Me.Grid_table.CheckedImage = Nothing
+ Me.Grid_table.DefaultFont = New System.Drawing.Font("宋体", 9.0!)
+ Me.Grid_table.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.Grid_table.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.Grid_table.GridColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer), CType(CType(192, Byte), Integer))
+ Me.Grid_table.Location = New System.Drawing.Point(0, 0)
+ Me.Grid_table.Name = "Grid_table"
+ Me.Grid_table.Size = New System.Drawing.Size(703, 528)
+ Me.Grid_table.TabIndex = 1
+ Me.Grid_table.UncheckedImage = Nothing
+ '
+ 'ToolStrip1
+ '
+ Me.ToolStrip1.AutoSize = False
+ Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripSeparator4, Me.ToolStripButton3, Me.ToolStripSeparator2, Me.ToolStripLabel3, Me.ToolStripTextBox1, Me.ToolStripLabel1, Me.T_CommandAlias, Me.ToolStripLabel2, Me.ToolStripTextBox2, Me.ToolStripButton1, Me.ToolStripComboBox1, Me.ToolStripButton5, Me.ToolStripButton6, Me.ToolStripButton4, Me.ToolStripSeparator1, Me.ToolStripButton2, Me.ToolStripSeparator3})
+ Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStrip1.Name = "ToolStrip1"
+ Me.ToolStrip1.Size = New System.Drawing.Size(703, 45)
+ Me.ToolStrip1.TabIndex = 0
+ Me.ToolStrip1.Text = "ToolStrip1"
+ '
+ 'ToolStripSeparator4
+ '
+ Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
+ Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 45)
+ '
+ 'ToolStripButton3
+ '
+ Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
+ Me.ToolStripButton3.Font = New System.Drawing.Font("Microsoft YaHei UI", 15.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
+ Me.ToolStripButton3.Image = CType(resources.GetObject("ToolStripButton3.Image"), System.Drawing.Image)
+ Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButton3.Name = "ToolStripButton3"
+ Me.ToolStripButton3.Size = New System.Drawing.Size(100, 42)
+ Me.ToolStripButton3.Text = "开始校时"
+ '
+ 'ToolStripSeparator2
+ '
+ Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
+ Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 45)
+ '
+ 'ToolStripLabel3
+ '
+ Me.ToolStripLabel3.Name = "ToolStripLabel3"
+ Me.ToolStripLabel3.Size = New System.Drawing.Size(71, 42)
+ Me.ToolStripLabel3.Text = "时间误差(S)"
+ '
+ 'ToolStripTextBox1
+ '
+ Me.ToolStripTextBox1.Name = "ToolStripTextBox1"
+ Me.ToolStripTextBox1.Size = New System.Drawing.Size(100, 45)
+ Me.ToolStripTextBox1.Text = "3"
+ '
+ 'ToolStripLabel1
+ '
+ Me.ToolStripLabel1.Name = "ToolStripLabel1"
+ Me.ToolStripLabel1.Size = New System.Drawing.Size(44, 42)
+ Me.ToolStripLabel1.Text = "别名:"
+ '
+ 'T_CommandAlias
+ '
+ Me.T_CommandAlias.Name = "T_CommandAlias"
+ Me.T_CommandAlias.Size = New System.Drawing.Size(100, 45)
+ '
+ 'ToolStripLabel2
+ '
+ Me.ToolStripLabel2.Name = "ToolStripLabel2"
+ Me.ToolStripLabel2.Size = New System.Drawing.Size(68, 42)
+ Me.ToolStripLabel2.Text = "命令数据:"
+ '
+ 'ToolStripTextBox2
+ '
+ Me.ToolStripTextBox2.Name = "ToolStripTextBox2"
+ Me.ToolStripTextBox2.Size = New System.Drawing.Size(200, 23)
+ '
+ '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(108, 21)
+ Me.ToolStripButton1.Text = "添加到表格下拉框"
+ '
+ 'ToolStripComboBox1
+ '
+ Me.ToolStripComboBox1.Name = "ToolStripComboBox1"
+ Me.ToolStripComboBox1.Size = New System.Drawing.Size(121, 25)
+ '
+ 'ToolStripButton5
+ '
+ Me.ToolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
+ Me.ToolStripButton5.Image = CType(resources.GetObject("ToolStripButton5.Image"), System.Drawing.Image)
+ Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButton5.Name = "ToolStripButton5"
+ Me.ToolStripButton5.Size = New System.Drawing.Size(48, 21)
+ Me.ToolStripButton5.Text = "添加行"
+ '
+ 'ToolStripButton6
+ '
+ Me.ToolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
+ Me.ToolStripButton6.Image = CType(resources.GetObject("ToolStripButton6.Image"), System.Drawing.Image)
+ Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButton6.Name = "ToolStripButton6"
+ Me.ToolStripButton6.Size = New System.Drawing.Size(48, 21)
+ Me.ToolStripButton6.Text = "删除行"
+ '
+ 'ToolStripButton4
+ '
+ Me.ToolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
+ Me.ToolStripButton4.Image = CType(resources.GetObject("ToolStripButton4.Image"), System.Drawing.Image)
+ Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButton4.Name = "ToolStripButton4"
+ Me.ToolStripButton4.Size = New System.Drawing.Size(60, 21)
+ Me.ToolStripButton4.Text = "重在表格"
+ '
+ 'ToolStripSeparator1
+ '
+ Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
+ Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 45)
+ '
+ '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(30, 21)
+ Me.ToolStripButton2.Text = "<<"
+ '
+ 'ToolStripSeparator3
+ '
+ Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
+ Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 45)
+ '
+ 'FileSystemWatcher1
+ '
+ Me.FileSystemWatcher1.EnableRaisingEvents = True
+ Me.FileSystemWatcher1.SynchronizingObject = Me
+ '
+ 'FileSystemWatcher2
+ '
+ Me.FileSystemWatcher2.EnableRaisingEvents = True
+ Me.FileSystemWatcher2.SynchronizingObject = Me
+ '
+ 'Timer1
+ '
+ '
+ 'Timer2
+ '
+ Me.Timer2.Interval = 900
+ '
+ 'Form1
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(1093, 789)
+ Me.Controls.Add(Me.SplitContainer1)
+ Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+ Me.Name = "Form1"
+ Me.Text = "NT318校时工具"
+ Me.SplitContainer1.Panel1.ResumeLayout(False)
+ Me.SplitContainer1.Panel2.ResumeLayout(False)
+ CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitContainer1.ResumeLayout(False)
+ Me.SplitContainer2.Panel1.ResumeLayout(False)
+ Me.SplitContainer2.Panel2.ResumeLayout(False)
+ CType(Me.SplitContainer2, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitContainer2.ResumeLayout(False)
+ Me.SplitContainer3.Panel1.ResumeLayout(False)
+ Me.SplitContainer3.Panel1.PerformLayout()
+ Me.SplitContainer3.Panel2.ResumeLayout(False)
+ CType(Me.SplitContainer3, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitContainer3.ResumeLayout(False)
+ Me.GroupBox1.ResumeLayout(False)
+ Me.TabControl1.ResumeLayout(False)
+ Me.TabPage1.ResumeLayout(False)
+ Me.GroupBox2.ResumeLayout(False)
+ Me.GroupBox2.PerformLayout()
+ Me.TabPage2.ResumeLayout(False)
+ Me.TabPage2.PerformLayout()
+ Me.TabPage3.ResumeLayout(False)
+ Me.SplitContainer4.Panel1.ResumeLayout(False)
+ Me.SplitContainer4.Panel2.ResumeLayout(False)
+ CType(Me.SplitContainer4, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.SplitContainer4.ResumeLayout(False)
+ Me.ToolStrip1.ResumeLayout(False)
+ Me.ToolStrip1.PerformLayout()
+ CType(Me.FileSystemWatcher1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.FileSystemWatcher2, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Friend WithEvents LblSerialPortName As Label
+ Friend WithEvents LblSerialPortBaud As Label
+ Friend WithEvents ComboBox8 As ComboBox
+ Friend WithEvents ComboBox9 As ComboBox
+ Friend WithEvents Button19 As Button
+ Friend WithEvents Label1 As Label
+ Friend WithEvents SerialPort As IO.Ports.SerialPort
+ Friend WithEvents SplitContainer1 As SplitContainer
+ Friend WithEvents Label2 As Label
+ Friend WithEvents Label3 As Label
+ Friend WithEvents Lab_DeviceTime As Label
+ Friend WithEvents Lab_WorkTime As Label
+ Friend WithEvents Lab_mol As Label
+ Friend WithEvents Lab_DeviceState As Label
+ Friend WithEvents Label4 As Label
+ Friend WithEvents But_SetRTCTime As Button
+ Friend WithEvents DateTimeP_RelDate As DateTimePicker
+ Friend WithEvents But_ReleaseDate As Button
+ Friend WithEvents Label5 As Label
+ Friend WithEvents GroupBox2 As GroupBox
+ Friend WithEvents Label8 As Label
+ Friend WithEvents Label7 As Label
+ Friend WithEvents TextBox2 As TextBox
+ Friend WithEvents TextBox3 As TextBox
+ Friend WithEvents TextBox1 As TextBox
+ Friend WithEvents Label12 As Label
+ Friend WithEvents Label11 As Label
+ Friend WithEvents TextBox6 As TextBox
+ Friend WithEvents TextBox4 As TextBox
+ Friend WithEvents TextBox5 As TextBox
+ Friend WithEvents Label14 As Label
+ Friend WithEvents Label13 As Label
+ Friend WithEvents TabControl1 As TabControl
+ Friend WithEvents TabPage1 As TabPage
+ Friend WithEvents TabPage2 As TabPage
+ Friend WithEvents Button1 As Button
+ Friend WithEvents DateTimePicker1 As DateTimePicker
+ Friend WithEvents CheckBox2 As CheckBox
+ Friend WithEvents CheckBox1 As CheckBox
+ Friend WithEvents Label17 As Label
+ Friend WithEvents Label16 As Label
+ Friend WithEvents But_QueryLogInfo As Button
+ Friend WithEvents Button2 As Button
+ Friend WithEvents Button3 As Button
+ Friend WithEvents Button4 As Button
+ Friend WithEvents TextBox10 As TextBox
+ Friend WithEvents TextBox9 As TextBox
+ Friend WithEvents Label18 As Label
+ Friend WithEvents Button5 As Button
+ Friend WithEvents Button6 As Button
+ Friend WithEvents FileSystemWatcher1 As IO.FileSystemWatcher
+ Friend WithEvents FileSystemWatcher2 As IO.FileSystemWatcher
+ Friend WithEvents Grid1 As FlexCell.Grid
+ Friend WithEvents TextBox11 As TextBox
+ Friend WithEvents Label19 As Label
+ Friend WithEvents TextBox13 As TextBox
+ Friend WithEvents TextBox12 As TextBox
+ Friend WithEvents Label21 As Label
+ Friend WithEvents Label20 As Label
+ Friend WithEvents Label22 As Label
+ Friend WithEvents CheckBox3 As CheckBox
+ Friend WithEvents Button7 As Button
+ Friend WithEvents TextBox8 As TextBox
+ Friend WithEvents TextBox14 As TextBox
+ Friend WithEvents TextBox7 As TextBox
+ Friend WithEvents Label15 As Label
+ Friend WithEvents Label6 As Label
+ Friend WithEvents Label23 As Label
+ Friend WithEvents Label28 As Label
+ Friend WithEvents Label25 As Label
+ Friend WithEvents Label24 As Label
+ Friend WithEvents TextBox20 As TextBox
+ Friend WithEvents TextBox18 As TextBox
+ Friend WithEvents TextBox16 As TextBox
+ Friend WithEvents TextBox19 As TextBox
+ Friend WithEvents TextBox17 As TextBox
+ Friend WithEvents TextBox15 As TextBox
+ Friend WithEvents Label37 As Label
+ Friend WithEvents Label34 As Label
+ Friend WithEvents Label31 As Label
+ Friend WithEvents Label36 As Label
+ Friend WithEvents Label33 As Label
+ Friend WithEvents Label30 As Label
+ Friend WithEvents CheckBox4 As CheckBox
+ Friend WithEvents TextBox21 As TextBox
+ Friend WithEvents Label10 As Label
+ Friend WithEvents Label9 As Label
+ Friend WithEvents TextBox24 As TextBox
+ Friend WithEvents TextBox22 As TextBox
+ Friend WithEvents TextBox23 As TextBox
+ Friend WithEvents Label29 As Label
+ Friend WithEvents Label26 As Label
+ Friend WithEvents Label27 As Label
+ Friend WithEvents Label35 As Label
+ Friend WithEvents Label32 As Label
+ Friend WithEvents Timer1 As Timer
+ Friend WithEvents Button8 As Button
+ Friend WithEvents SplitContainer2 As SplitContainer
+ Friend WithEvents SplitContainer3 As SplitContainer
+ Friend WithEvents Label38 As Label
+ Friend WithEvents TabPage3 As TabPage
+ Friend WithEvents SplitContainer4 As SplitContainer
+ Friend WithEvents ToolStrip1 As ToolStrip
+ Friend WithEvents ProcessTable As FlexCell.Grid
+ Friend WithEvents Grid_table As FlexCell.Grid
+ Friend WithEvents ToolStripLabel1 As ToolStripLabel
+ Friend WithEvents T_CommandAlias As ToolStripTextBox
+ Friend WithEvents ToolStripLabel2 As ToolStripLabel
+ Friend WithEvents ToolStripTextBox2 As ToolStripTextBox
+ Friend WithEvents ToolStripButton1 As ToolStripButton
+ Friend WithEvents ToolStripButton2 As ToolStripButton
+ Friend WithEvents ToolStripButton3 As ToolStripButton
+ Friend WithEvents ToolStripComboBox1 As ToolStripComboBox
+ Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
+ Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
+ Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
+ Friend WithEvents ToolStripButton5 As ToolStripButton
+ Friend WithEvents ToolStripButton6 As ToolStripButton
+ Friend WithEvents ToolStripButton4 As ToolStripButton
+ Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
+ Friend WithEvents Label39 As Label
+ Friend WithEvents Timer2 As Timer
+ Friend WithEvents GroupBox1 As GroupBox
+ Friend WithEvents Button24 As Button
+ Friend WithEvents RichTextBox1 As RichTextBox
+ Friend WithEvents Label40 As Label
+ Friend WithEvents Label41 As Label
+ Friend WithEvents ToolStripLabel3 As ToolStripLabel
+ Friend WithEvents ToolStripTextBox1 As ToolStripTextBox
+ Friend WithEvents CheckBox5 As CheckBox
+End Class
diff --git a/Form1.resx b/Form1.resx
new file mode 100644
index 0000000..4b5073f
--- /dev/null
+++ b/Form1.resx
@@ -0,0 +1,1898 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 561, 17
+
+
+
+
+ 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==
+
+
+
+
+ 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==
+
+
+
+
+ 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==
+
+
+
+
+ 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==
+
+
+
+
+ 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==
+
+
+
+
+ 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==
+
+
+
+ 128, 17
+
+
+ 43
+
+
+
+ AAABAAUAgIAAAAEAIAAoCAEAVgAAAEBAAAABACAAKEIAAH4IAQAwMAAAAQAgAKglAACmSgEAICAAAAEA
+ IACoEAAATnABABAQAAABACAAaAQAAPaAAQAoAAAAgAAAAAABAAABACAAAAAAAAAAAQAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA
+ AAIAAAACAAAAAgAAAAIAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAQAAAAGAAAACAAA
+ AAsAAAANAAAAEAAAABEAAAASAAAAEwAAABMAAAATAAAAEwAAABIAAAARAAAAEAAAAA4AAAAMAAAACQAA
+ AAcAAAAFAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAIAAAAEAAAABwAAAAwAAAARAAAAFgAAABwAAAAhAAAAJQAAACkAAAAsAAAALgAAAC8AAAAvAAAAMAAA
+ ADAAAAAwAAAALgAAACwAAAAqAAAAJgAAACMAAAAfAAAAGwAAABYAAAASAAAADQAAAAkAAAAFAAAAAwAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAQAAAAJAAAAEAAAABgAAAAgAAAAKQAAADIAAAA5AAAAQAAA
+ AEYAAABLAAAAUAAAAFQAAABXAAAAWAAAAFkAAABZAAAAWAAAAFgAAABVAAAAUgAAAE4AAABJAAAAQwAA
+ AD0AAAA3AAAAMQAAACsAAAAkAAAAHgAAABcAAAARAAAACwAAAAYAAAADAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAPAAAAGQAA
+ ACUAAAAxAAAAPAAAAEgAAABTAAAAXgAAAGgAAABxAAAAegAAAIEAAACHAAAAjAAAAI8AAACRAAAAkgAA
+ AJIAAACSAAAAkAAAAI0AAACJAAAAhAAAAH0AAAB1AAAAbAAAAGIAAABXAAAATQAAAEMAAAA5AAAAMAAA
+ ACgAAAAgAAAAGAAAABAAAAAJAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAABAAAAAwAAAAoAAAAUAAAAIwAAADEAAABAAAAATwAAAF4AAABtAAAAfAAAAIoAAACVAAAAnwMD
+ A6cJCQmwDQ0Ltg8PD7oaGhnBIB8dxRcVFcIUExPBFRUVwh0dHMUNDQ2/BAQEuQYGBrgBAQGyAAAArgAA
+ AKgAAAChAAAAmAAAAI4AAACBAAAAdAAAAGQAAABVAAAARwAAADsAAAAwAAAAJwAAAB0AAAAUAAAACwAA
+ AAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAoAAAAXAAAAKAAAADoAAABMAAAAXwAA
+ AHIAAACEAAAAlAMDA6QjIyG9RUJC0V5cWeFqZ2Tsfnl2942IhP6OiYT/h4J+/4SAfP+FgHv/hIB7/4F9
+ eP+Cf3n/h4J+/4uGgf+RjIj/hoJ++3BsafJoZWPrTUxJ3i0sLNINDQ3CAwMDuAAAALAAAACmAAAAmgAA
+ AIsAAAB4AAAAZgAAAFQAAABEAAAANgAAACsAAAAgAAAAFgAAAAwAAAAFAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA
+ AAkAAAAWAAAAKQAAAD8AAABVAAAAawAAAIEAAACVFxcVsFBNTNRpZWLoiYWC/IaCf/+AfHj/fXl2/315
+ dP9+eXb/f3t3/4B8eP+AfHj/gXx4/4B8ef+AfHn/gHx4/4F9ef+BfHj/gHx4/4B7d/99eXX/fHhz/3x3
+ c/9+enb/g397/46Jhf94dHD0YF5c6DIwL9QBAQG9AAAAtQAAAKkAAACbAAAAiAAAAHMAAABdAAAASQAA
+ ADkAAAAsAAAAIQAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAATAAAAKAAAAD4AAABYAAAAcQAAAIkXFxaqVlRR1nl2
+ c/KIhYH/f3t4/315dv9/fHj/gX15/4J+e/+EgHz/hIF9/4WCf/+Hg4D/h4SB/4mGgv+KhoP/i4iE/4yI
+ hf+MiYX/jImF/4yIhf+LiIT/ioaD/4iFgf+IhIH/h4OA/4WBfv+DgHv/gX15/315df99enb/hoJ+/42K
+ hv1eXFnoLi4s0wgICMAAAACzAAAApQAAAJEAAAB6AAAAYQAAAEsAAAA5AAAAKwAAAB4AAAARAAAABwAA
+ AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAANAAAAIAAA
+ ADkAAABVAAAAcAQEBI4yMDC7cnBt64iFgf9/e3j/fnt4/4F+e/+DgH3/hYF+/4aCf/+JhYL/jIiF/5CM
+ iP+Tj4z/lpGN/5eTkP+alZD/nJeS/52Xk/+emZX/npmV/5+alv+gm5f/oJuW/6Gbl/+fmpb/nZmU/5uX
+ k/+ZlJH/lZGN/5GNiv+Niob/ioeE/4iFgf+EgH3/gX57/397eP+Hg4D/h4N/+lRQTuMMDAvFAQEBtwAA
+ AKkAAACUAAAAegAAAGAAAABIAAAANgAAACcAAAAZAAAADQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAEAAAAGAAAAFgAAADAAAABNAAAAawICAolJSEXHgHx49YJ+e/98eXb/gH17/4SB
+ fv+GgoD/iISC/4yIhf+RjYn/lJGN/5iUkP+blpL/nZiT/6Calf+jnZj/pZ+Z/6ehm/+pop3/qaKd/6mk
+ nv+qpJ7/q6Se/6qknv+po57/qKOe/6iinf+ooZz/pqGb/6Wfm/+loJv/paCb/6Ofmv+fm5b/mpaS/5OP
+ jP+Oi4j/ioeE/4eEgP+Cfnr/gn57/4uIhP5bWlfnFBQUyQAAALkAAACpAAAAkgAAAHYAAABaAAAAQwAA
+ ADEAAAAhAAAAEgAAAAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACwAAACAAAABAAAAAYgUF
+ BYNCQD/Bfnp49H57eP98eXb/gn98/4eEgf+JhoL/jYqG/5OQjP+Xk4//mZWR/5yXk/+hm5b/pqCb/6qk
+ nv+up6L/sKqk/7Kspv+zraf/tK6o/7Wwqv+2sKv/t7Gr/7eyrP+3sqz/uLOt/7izrf+4sqz/uLKs/7ax
+ qv+1r6n/sq2o/7Cqpf+sp6L/qaOf/6einv+moZ3/paCd/6Kdmv+cmJT/lZGP/5CMif+Kh4T/g4B9/4F9
+ ev+MiIT+YV5b6RUUFMkAAAC3AAAApQAAAIsAAABuAAAAUQAAADkAAAAoAAAAGAAAAAoAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAABAAAAAwAAABAAAAArAAAATwAAAHMpKCerfHh28H97d/98eXX/gn98/4iFg/+Oi4f/lJCN/5eU
+ kP+ZlpL/nJeT/6Gcl/+oo53/r6mi/7Kspv+0rqj/ta+p/7Wwq/+3sav/uLKt/7m0rv+7trD/vbex/724
+ s/+/urT/wLu1/8G7tv/BvLb/wby2/8C8tv/AvLb/wLy2/7+7tf++ubT/vrm0/723s/+6tbD/trKt/7Gt
+ qP+tqKT/qaSg/6einv+loZ7/oJyY/5mVkf+Sj4z/jYqG/4WBfv+CfXr/iYWB/FJOTeMAAADAAAAAswAA
+ AJ0AAACAAAAAYAAAAEMAAAAuAAAAHAAAAAwAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAUAAAANAAAAFwLCwuJZWRg24aC
+ ff96d3P/gX16/4iFgv+Sj4z/mZaT/5yZlv+bl5T/npmW/6ahnP+vqaP/s62n/7SuqP+1r6n/trCq/7iy
+ rf+6ta//vriy/8C6tf/Evrj/x8G8/8nEvv/LxsH/zcjD/8/KxP/PysX/z8rF/8/Kxf/Qysb/z8rF/87J
+ xf/OyMP/zMfC/8vGwP/KxMD/x8O9/8XAu//Evrr/wry4/7+6tf+7tbH/s6+q/66ppf+opaH/pqKe/6Gd
+ mf+ZlZL/lJCN/46Khv+EgX3/hIB8/4SAfPgwLy7VAAAAvAAAAKsAAACOAAAAbAAAAEsAAAA0AAAAIAAA
+ AA8AAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAEAAAAGAAAAGQAAADwAAABnMC4uqYSBffd8d3P/fnp3/4aCf/+Sj4z/n5uZ/6KfnP+fm5f/oZuX/6mj
+ nv+xrKb/tK6o/7Svqf+2sKr/uLOt/7u1r/+/urT/xL65/8nDvv/NyMP/0cvH/9TOyv/W0cz/19LN/9jT
+ zv/Y08//2NTP/9jUz//Y1ND/2dTQ/9jTz//X0s7/19LN/9fRzP/W0Mz/1M/K/9LNyP/QzMf/z8rF/83J
+ xP/Mx8L/ycTA/8fCvv/FwLv/wLu2/7i0sP+xq6b/qaWg/6ainv+hnJj/mJSR/5OQi/+NiYT/g356/46J
+ hP9bWVfnBAQEwwAAALMAAACZAAAAdwAAAFMAAAA4AAAAIwAAABEAAAAEAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAAABoAAABCBgYGc19bWtCFgX7/enZy/4J/
+ e/+MiIX/n5yZ/6mmo/+kop7/op2Z/6qln/+yraf/tK+p/7Wvqf+3sav/urSu/7+4s//Evrj/ysW//9DK
+ xf/Uz8r/19LN/9nUz//a1tD/29fS/9vY0//c2NP/3djU/97Z1f/f2tX/39rV/9/a1f/f2tX/39rV/97Z
+ 1P/d2NP/3djT/9zY0v/b19H/2tXQ/9jTzv/W0cz/1M/K/9LNyP/QzMb/zsrE/8zHwv/KxcH/yMK//8S+
+ uv+8trH/saun/6mkoP+loJz/npqW/5aSjv+Rjor/iYSA/4aBff+BfXr2GxoazQAAALkAAACiAAAAfwAA
+ AFkAAAA7AAAAJAAAABEAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA
+ AAYAAAAbAAAARBEREYB7eHbpfHd0/315df+FgX3/lpKP/6uopv+vq6n/pqKf/6einv+xrKb/tK+p/7Wv
+ qf+3sav/u7Wv/8C6tf/Hwbz/zsjD/9TPyv/Y087/2tXQ/9vX0f/c2NP/3dnU/97a1f/f2tb/4dvX/+Hb
+ 1//h3Nj/4t3Y/+Ld2P/i3dj/4t3Y/+Ld2P/i3dj/4t3Y/+Ld2P/i3dj/4t3Y/+Hc1//g29b/3trU/93Y
+ 0//b19H/2dTP/9fSzf/Uz8r/0c3H/87Lxf/Nx8P/y8XB/8nDv//Fv7v/vLaw/7Cqpf+po57/pJ+a/5qW
+ kv+TkIv/jomF/4WAe/+MiIP9NTQz2AAAALwAAACnAAAAhAAAAFwAAAA8AAAAJQAAABEAAAAEAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAGgAAAEUhISCMgX169Hl1cf9/fHf/h4OA/6Ge
+ nP+0sa//sK2q/6ijn/+uqaT/tK+q/7Wvqf+2sKr/u7Wv/8G7tf/Iwr3/0MrF/9bRzP/Z1M//29fR/9zY
+ 0//d2dT/3trV/+Db1//h29f/4tzZ/+Ld2f/j3tr/5N/a/+Tf2v/l4Nv/5eDb/+Xg2//m4dz/5uHc/+bh
+ 3P/m4dz/5uHc/+bh3P/m4dz/5eDb/+Xg2//k39r/497Z/+Hc2P/g29b/3tnU/9vX0f/Z1M//1dDM/9HO
+ yP/PysX/zcfC/8vFwf/Jw7//xL+5/7izrf+tp6L/p6Kd/5+bl/+VkY3/kIyI/4eCff+Piob/UE5K4gEB
+ Ab8AAACqAAAAhgAAAF4AAAA8AAAAJAAAAA8AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA
+ ABgAAABDLy4sl4N+fPh5dHH/gX15/4uIhf+pp6T/uLWz/7Ctqv+sp6P/s66o/7Svqv+1sKn/ubOt/7+5
+ s//Iwrz/0MrF/9fRzP/a1c//29fR/9zZ0//d2tX/4NvX/+Hb2P/i3dn/497a/+Tf2v/l4Nv/5uHc/+fi
+ 3f/n4t3/6OPe/+nk3//p5N//6uXg/+rl4P/q5eD/6uXg/+rl4P/q5eD/6uXg/+rl4P/p5eD/6eTf/+jj
+ 3v/o497/5+Ld/+bh2//k39r/4t3Y/9/b1v/c2NP/2dTQ/9bRzP/Rzcj/zsnE/8zHwv/KxMD/yMO9/8G7
+ tf+zraf/qaSf/6Oemv+YlJD/ko6K/4qFgf+NiIT/YF1b6AAAAMAAAACrAAAAhwAAAF4AAAA7AAAAIgAA
+ AA0AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAUAAAAPjAuLpaAfXr6eXVx/4J+ev+PjIn/sa6s/7q4
+ tv+xran/rqmk/7Svqv+1r6n/t7Gr/722sP/Ev7n/zcfC/9XPyv/a1M//29bR/93Z0//f2tb/4dvY/+Lc
+ 2f/j3tr/5N/a/+Xg2//n4t3/6OPe/+nk3//q5eD/6ubh/+vn4v/s5+P/7Ojj/+3o5P/t6OT/7ejk/+3o
+ 5P/u6eT/7unk/+7p5P/t6OT/7ejk/+3o5P/s6OP/7Ojj/+vn4v/q5uH/6uXg/+nk3//n4t3/5eDb/+Pe
+ 2f/h3Nf/3djT/9nV0P/V0Mz/0czH/83Iw//LxcD/ycO+/8bAuv+5sq3/raei/6ahnf+blpP/ko+L/4uH
+ gv+Lh4L/aGVj6wAAAMAAAACrAAAAhgAAAFsAAAA5AAAAHwAAAAoAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAEAAA
+ ADYwMC+ShIB+/Hl1cf+Cf3r/k4+M/7WysP+7uLb/sq6q/7Ksp/+1sKr/tbCp/7mzrf/AurT/yMO9/9PN
+ yP/Y1M7/29bQ/9zY0//e2tX/4NvX/+Lc2f/k3tr/5eDb/+fi3f/o497/6eTf/+rm4f/r5+L/7Ojj/+3o
+ 5P/u6eX/7+rm/+/q5v/w6+f/8Ovn//Hs6P/x7Oj/8ezo//Hs6P/x7Oj/8ezo//Hs5//x7Of/8Ovn//Dr
+ 5v/w6+b/7+rl/+7p5f/t6OT/7Ojj/+vn4v/q5uH/6eTf/+fi3P/k39r/4dzX/93Y0//Y08//1M/K/8/K
+ xf/MxsH/ycO+/8fCu/++uLL/sKql/6ijn/+dmZX/lJCM/4yHgv+OiIT/ZWFf6gEBAcAAAACpAAAAggAA
+ AFcAAAA1AAAAGgAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAsAAAAsKyophoJ+fPp5dXH/gn96/5ORjv+3tbP/vLq3/7Kv
+ q/+zraj/ta+q/7ewq/+7ta//w763/83Hwf/W0cv/2tXQ/9vX0v/d2tT/4NvW/+Lc2f/k3tr/5eDb/+fi
+ 3f/p5N//6uXg/+vn4v/s6OP/7unl/+/q5v/w6+f/8Ovn//Hs6P/y7en/8u3p//Pt6f/z7en/9O7q//Tu
+ 6v/07ur/8+7q//Pu6v/z7ur/8+7q//Pu6v/y7en/8u3p//Lt6f/y7ej/8ezn//Hs5//w6+b/7+rl/+7p
+ 5f/t6OT/6+fi/+nl4P/n4tz/5N/Z/+Db1v/b19L/19HN/9HMx//Nx8L/ysS+/8jDvP/BurX/s62n/6ul
+ oP+fmpb/lJCM/4yHg/+NiYT/ZGFe6QAAAL4AAAClAAAAfAAAAFAAAAAuAAAAFAAAAAUAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAIh4d
+ HXCFgX33eXVx/4J/e/+SkIz/t7Wz/7y5t/+0sa3/ta+q/7Wvqv+3sav/vLew/8bAuv/Ry8b/2NPN/9rW
+ 0P/c2NL/39rV/+Lc2P/j3dr/5d/b/+fi3f/p5N//6ubh/+zn4//t6OX/7+rm//Dr5//x7Oj/8uzo//Pt
+ 6f/z7un/8+7p//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tu
+ 6v/07ur/9O7q//Pu6v/y7en/8u3p//Lt6P/x7Of/8ezn//Dr5v/v6uX/7unk/+zn4//p5N//5+Lc/+Pe
+ 2f/d2dX/2dTP/9POyf/OyMP/ysS//8jDvP/DvLX/tq+p/6ynov+gnJf/lZCM/4yHg/+RjIf/T01K4QAA
+ ALwAAACfAAAAcgAAAEgAAAAnAAAADgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABcSEhJYf3t563l1cf+BfXr/kI2J/7azsf+8ubf/tLCs/7Wv
+ qf+1r6r/t7Gr/764sv/Iwrz/083I/9nUzv/b19H/3dnU/+Hb1//j3dn/5d/b/+fh3f/o497/6ubh/+zn
+ 4//t6OX/7+rm//Dr5//y7Oj/8u3o//Pu6f/z7un/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv
+ 6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tu6v/07ur/8+7q//Lt
+ 6f/y7en/8u3o//Hs5//w6+b/7+rl/+7p5P/r5uL/6OTe/+Xf2v/f29b/2tXQ/9XQy//PysX/ysS//8fC
+ u//CvLX/t7Cq/62oo/+gnJj/lI+M/4uHg/+Tj4v/PDo42QAAALcAAACWAAAAZwAAAD4AAAAeAAAACAAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAANBgYGOXFt
+ a9N6dnL/gHx5/4yJhv+yr6z/vLm3/7Wxrf+1sKr/ta+q/7iyq/+/ubP/ycO+/9TOyf/a1c//3NjS/97a
+ 1f/i3Nj/5N7a/+bg3P/o4t7/6uXg/+vn4//t6OX/7+rm//Dr5//y7Oj/8+3p//Pu6f/z7un/9O/q//Tv
+ 6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6//07+v/9O/r//Tv6//07+v/9O/q//Tv6v/07+r/9O/q//Tv
+ 6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07ur/9O7q//Pu6v/y7en/8u3p//Lt6P/x7Of/8Ovm/+/q
+ 5f/t6OP/6uXg/+fi3f/h3dj/3dfS/9bRzP/PysX/ysS//8fCu//Cu7X/t7Cq/66ppP+em5f/lI+L/4qG
+ gf+UkIz9GxsazQAAALEAAACKAAAAWgAAADMAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAABgEBASFPTUuif3p3/356dv+JhYH/raqo/7q4tv+0r6z/tLCp/7Ww
+ qv+4sqv/v7mz/8nEvv/Vz8r/2tXP/9zY0v/f2tX/4tzY/+Te2v/m4Nz/6eTf/+rm4f/s6OT/7unl//Dr
+ 5//y7Oj/8u3o//Pu6f/z7un/9O/q//Tv6v/07+r/9O/q//Tv6//08Ov/9PDr//Tw6//08Ov/9PDr//Tw
+ 6//08Ov/9PDr//Tw6//08Ov/9PDr//Tw6//08Ov/9O/r//Tv6//07+r/9O/q//Tv6v/07+r/9O/q//Tv
+ 6v/07+r/9O7q//Tu6v/z7ur/8u3p//Lt6P/y7ej/8ezn//Dr5v/u6eX/6+bi/+jj3v/j3tn/3djT/9fS
+ zf/Qy8X/ysS//8fCuv/BubP/tq+q/66ppP+dmZX/ko6K/4uGgv+MiIT4AQEBwAAAAKcAAAB6AAAASwAA
+ ACYAAAAMAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAASMjEwcIaC
+ f/58eHT/hYF+/6Shnv+5trT/tLGt/7Ouqv+1sKr/t7Gr/7+4sv/JxL7/1c/K/9rVz//c2NL/39rV/+Pd
+ 2f/l39v/5+Hd/+nk3//r5+P/7ejl/+/q5v/x6+f/8u3o//Pu6f/z7un/9O/q//Tv6v/07+r/9O/r//Tw
+ 6//08Ov/9fDr//Xw6//18Ov/9fDr//Xw6//18Ov/9fDr//Xw6//18Ov/9fDr//Xw6//18Ov/9fDr//Xw
+ 6//18Ov/9PDr//Tw6//08Ov/9O/r//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tu6v/z7ur/8+7q//Lt
+ 6f/y7ej/8ezn//Hs5//v6uX/7Ofi/+jj3v/k39r/3tnU/9fSzP/QysT/ysS+/8fBuv+/uLL/ta+p/62p
+ pP+alpL/kI2I/42Jhf9lZGHpAAAAugAAAJcAAABmAAAAOwAAABkAAAAFAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAACAAAACmHhH7reXVx/4N/e/+alpP/tbKw/7Wxrv+zr6r/trCr/7ex
+ q/+9t7H/yMK8/9XPyv/a1M//3NjS/+Db1v/j3dn/5d/b/+ji3v/q5eD/7Ofj/+7p5f/w6+f/8uzo//Lt
+ 6P/z7un/8+7p//Tv6v/07+v/9PDr//Tw6//18Ov/9fDr//Xw6//18Ov/9fDr//Xw7P/18Oz/9fDs//Xw
+ 7P/18Oz/9fDs//Xw7P/18Oz/9fDs//Xw7P/18Oz/9fDs//Xw6//18Ov/9fDr//Xw6//08Ov/9PDr//Tv
+ 6//07+r/9O/q//Tv6v/07+r/9O/q//Tu6v/07ur/8+7q//Pu6f/y7ej/8u3o//Hs5//v6uX/7efj/+nk
+ 3//l4Nr/3tnU/9fRzP/QycT/ysO9/8XAuf+9tq//tK6p/6qlof+YlJD/joqG/5WRjf8qKSfRAAAArwAA
+ AIQAAABTAAAAKwAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAWWVdVpHt2
+ c/+AfHj/j4uI/6+tqv+0sa7/sayn/7axq/+3sKr/vbaw/8fBuv/Uzsj/2tTO/9zY0f/f2tb/493Z/+Xf
+ 2//o4t7/6uXg/+zo5P/u6eX/8Ovn//Lt6P/z7un/8+7p//Tv6v/07+v/9PDr//Tw6//18Ov/9fDr//Xw
+ 6//18Oz/9fDs//Xw7P/18Oz/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18Oz/9fDs//Xw7P/18Oz/9fDr//Xw6//18Ov/9fDr//Tw6//07+v/9O/q//Tv6v/07+r/9O/q//Tv
+ 6v/07ur/8+7q//Pu6v/y7ej/8u3o//Hs5//w6+b/7efj/+nk3//k4Nr/3djT/9bRyv/OyML/ycK8/8W+
+ t/+5sq3/tK+q/6WhnP+Wko7/i4iE/46Kh/kBAQG9AAAAngAAAG4AAABAAAAAHAAAAAYAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAACicmJVaIg3/8fHh0/4eDgP+mo6D/sq+s/6+qp/+2sav/trCr/7u0
+ rv/Evrj/0czG/9nUzv/c19H/39rV/+Pd2f/l39v/6OLe/+rm4f/s6OT/7+rm//Hr5//y7ej/8+7p//Pu
+ 6f/07+r/9O/r//Tw6//18Ov/9fDr//Xw6//18Oz/9fDs//Xw7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xw7P/18Oz/9fDs//Xw
+ 7P/18Ov/9fDr//Tw6//08Ov/9O/r//Tv6v/07+r/9O/q//Tv6v/07ur/8+7q//Pu6v/y7ej/8u3o//Hs
+ 5//w6+b/7ejj/+nk3//k39r/3NfS/9XPyf/Nx8H/yMK7/8K7tP+3sav/s66q/56al/+Tj4v/joqG/1dV
+ U+MAAACzAAAAigAAAFcAAAAtAAAADgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAXcW1qxnl1
+ cv+Dfnr/mJaS/66rqP+uqqf/tK+q/7awq/+5s6z/wru0/87Iw//Y083/29fR/9/a1f/j3dn/5d/b/+ji
+ 3v/q5uH/7ejk/+/q5v/x7Of/8u3o//Pu6f/z7un/9O/q//Tw6//18Ov/9fDr//Xw6//w6+f/6eTg/+Ld
+ 2v/f29j/29jU/9nW0v/c2db/3drW/9nW0//c2dX/4N3Z/+Pg3P/r5+L/8+7q//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fDs//Xw7P/18Ov/9fDr//Xw6//08Ov/9O/r//Tv
+ 6v/07+r/9O/q//Tv6v/07ur/8+7q//Pu6v/z7un/8u3o//Lt6P/w6+b/7ejj/+jk3//k3tj/29bR/9LN
+ x//Lxb7/x8G6/763sf+2r6v/raml/5qWk/+Pi4j/lZGO/hERD8UAAACiAAAAcQAAAEEAAAAaAAAABQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAACS0tK1yDf3v/fnp3/4yIhf+npaH/rKmm/7Crp/+2sav/t7Gr/7+4
+ sv/Kxb//19HL/9vW0P/d2dT/4tzY/+Xf2//o4t7/6uXg/+zo5P/v6ub/8ezn//Lt6P/z7un/8+7p//Pu
+ 6v/l4d3/2tfU/9DNy//Gw8H/wL69/7y7u/+8u7v/v76+/8C/v/++vr7/v76+/728vP+8u7v/vr6+/8HA
+ wP/BwMD/wsHB/769vf+/vr7/wsHA/8zKyP/Y1tP/4NzY//Dr5//18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHs//Xw7P/18Oz/9fDr//Xw6//08Ov/9PDr//Tv6v/07+r/9O/q//Tv6v/07ur/8+7q//Pu
+ 6v/z7un/8u3o//Lt6P/w6ub/7Ofj/+jj3v/i3df/2dPN/9DKxP/Kw73/xb+4/7mzrf+1sKz/paGd/5eT
+ kP+Oiob/bWpn6wAAALQAAACKAAAAVwAAACsAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEBAQZenZy03l1
+ cf+FgXz/m5eU/6mmo/+qpqL/trGs/7awq/+8ta//xsC5/9TOyf/a1c//3dnS/+Hb1//k3tr/5+Hd/+rl
+ 4P/s6OP/7+rm//Hr5//y7ej/7+rl/9vX0//Mycf/v729/7++vf+8u7v/u7u7/7u6uv+/vr7/vr6+/76+
+ vv/CwcH/v76//8HBwv+/v8D/v77A/8HAwv/AwMH/wMDB/8LCw//CwcH/wcDB/8HAwP/BwMD/v7+//8C/
+ v//BwMD/wL++/8nHxv/Z1tP/5+Pf//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xw7P/18Oz/9fDr//Xw
+ 6//18Ov/9PDr//Tv6v/07+r/9O/q//Tv6v/07ur/8+7q//Pu6v/z7un/8u3o//Lt6P/v6uX/6+fi/+bi
+ 3P/f2dT/1tDK/87Hwf/Iwrz/wbq0/7ewrP+xran/nZqW/5KOi/+Wko//GBgYyAAAAKAAAABvAAAAPgAA
+ ABYAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAABz08O2mFgXz/f3t3/4yJhf+joJ3/p6Oh/7Ouqf+2sav/uLKs/8K7
+ tf/QysT/2dPN/9vX0f/g2tb/493Z/+bg3P/p5N//7Ofj/+7p5f/x6+f/39rW/8rIxv+7urn/vby8/7m4
+ uP+7u7v/v76+/8DAwf/BwcL/x8bF/83Jwv/Ryr3/08iu/9PFm//SwYz/1MGF/9S/ff/Uvnv/1L98/9W/
+ ff/UwYX/08KN/9THoP/TybX/z8m//8zJxf/IyMf/xMTG/8PCw//CwcH/wsLC/8TExP/FxMT/xsTD/9rX
+ 1P/u6uX/9fHs//Xx7P/18ez/9fHs//Xx7P/18Oz/9fDs//Xw6//18Ov/9PDr//Tv6v/07+r/9O/q//Tv
+ 6v/07ur/8+7q//Pu6v/z7un/8u3o//Ls6P/u6eT/6ubh/+Xg2v/c1tH/083G/8vFvv/Hwbr/u7Wv/7Ww
+ rf+opKD/mZWS/46Kh/9saGbrAAAAsgAAAIYAAABRAAAAJAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAPfnp20Hp1
+ cf+FgX3/l5WR/6Whnv+qpqL/t7Ks/7exq/++t7D/ysS9/9fRy//b1tD/3tnU/+Lc2P/l39v/6OPe/+vn
+ 4v/t6OT/2NTR/8C+vP+5uLj/ubi4/7u6uv+/vr7/wMDB/8jGwv/QxrL/0b6I/9CwZv/NqUb/yqYy/8mj
+ Kf/IoCf/yqUp/8yoLP/OrC7/z6ww/86uL//QrjD/zq0v/86tLP/MqSj/y6Ql/8qjJP/MqSn/zaw3/9Gw
+ Vf/UvHb/1Mej/9HLw//Kysn/yMjJ/8fHx//Av7//v7+//8C/v//Rz8z/5+Pf//Xx7P/18ez/9fHs//Xx
+ 7P/18Oz/9fDs//Xw6//18Ov/9PDr//Tv6v/07+r/9O/q//Tv6v/07ur/8+7q//Pu6f/z7un/8u3o//Hr
+ 5//t6eT/6eTf/+Ld1//Y08z/0MnC/8nDvP/DvLb/t7Kt/7Kuqv+fnJn/k4+M/5iUkP8SEhLEAAAAmwAA
+ AGYAAAA1AAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABCcnJkmLhoL/f3t3/4qGg/+em5j/pKCd/7Ouqv+2sKv/urOt/8S9
+ t//SzMb/2tTP/9zY0v/h29f/5N7a/+fi3f/q5uH/2dXS/727uv+3trb/uLe3/7i4uP+9vb3/yMXC/8/C
+ pP/LrGr/xp44/8KWJP/Gnyf/y6cs/82rL//RrzL/07Ez/9OyM//VszT/1bQ1/9a0Nf/WtTb/1rQ0/9e2
+ Nv/XtjT/1rQx/9W0Mf/VszD/1LMw/9SzMP/TsjD/0bAv/8+tK//KpCT/yqcq/9CvU//Ww4v/1M3C/8jH
+ x//CwcL/wcDA/729vf/Av7//zszK/+fj3//18ez/9fHs//Xx7P/18Oz/9fDs//Xw6//18Ov/9PDr//Tv
+ 6v/07+r/9O/q//Tu6v/z7ur/8+7q//Pu6f/z7un/8u3o//Dr5v/s5+L/5uLc/97Y0//Vzsj/zMW//8jC
+ u/+8tbD/trGt/6ikof+bl5P/j4yI/15aWeQAAACrAAAAfAAAAEYAAAAaAAAAAwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAJa2dlqXp2
+ cv+Df3v/ko+L/6Gdmv+ppKH/t7Kt/7exq/+/uLH/zMa//9jRzP/b1tD/39rV/+Pd2f/m4Nz/4NvX/8PA
+ vv+0tLP/trW1/7e2t/+5urr/xb62/8mwe/++kjf/u4of/8KXJ//Fnir/yqcs/82qLv/PrTD/07Ay/9Sy
+ M//WtDT/2LY3/9i2Nv/auDf/2rg4/9u5Of/buTj/27k3/9u4Nf/auDT/2rgz/9q3M//auDT/2bcz/9i3
+ Mv/YtzP/1rQx/9W0MP/TszD/0K8u/8yoKP/KpSj/0LBZ/9TGoP/LyMX/w8LD/8HAwP+8vLz/vr69/9DN
+ zP/t6eT/9fHs//Xx7P/18Oz/9fDs//Xw6//08Ov/9O/r//Tv6v/07+r/9O/q//Tu6v/z7ur/8+7q//Pu
+ 6f/y7ej/8u3o/+7q5f/q5d//5N7Z/9rTzf/QycL/ysO9/8O9tv+3sq7/sa2o/6Gdmf+Sjov/j4uH+gYG
+ BLoAAACPAAAAWQAAACcAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAARAPDyOQi4f0fXl1/4eDf/+ZlZL/oZ2a/7Gtqf+2sav/urOt/8W+
+ t//Tzcf/2tTP/93Z0//i29f/5d/b/87KyP+2tLT/srGx/7e2tv+8vLz/xsC5/8GjbP+zgSX/tIIf/7uP
+ Jf+/kyb/w5op/8afKv/Kpiz/zKsu/8+uMP/SsDL/1bIz/9e1Nf/Ztzf/27g3/9y5Of/euzr/3rs6/967
+ Of/cujX/3bo1/926Nv/euzb/3bo2/926Nv/cujX/3Lo0/9y6NP/buTT/2rgz/9m3M//XtTH/1bQx/9Oy
+ L//Pri3/yaMk/86qQP/UwI3/zcrG/8TExf/Av7//v76+/8LBwf/Y1dL/8+/q//Xx7P/18Oz/9fDr//Xw
+ 6//08Ov/9O/r//Tv6v/07+r/9O/q//Tu6v/z7ur/8+7p//Pu6f/y7ej/8evn/+3o4v/n4t3/39nT/9TN
+ x//Mxr//yMG7/7u1sP+2sa3/pqKe/5mVkv+Sjor/ODc20wAAAKAAAABqAAAANgAAAA0AAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQkE/aIB8
+ d/+BfXn/jIiF/52Zlv+nop7/t7Ks/7exq/+9t7D/zMW//9fRzP/b19H/39rV/+Da1v++u7n/sbCw/7Oz
+ s/+3trf/wsC+/76nf/+ndyT/q3ca/7KAIf+1hSP/uIsj/7yRJf/AlSf/wpko/8WgKv/Jpi3/y6ku/8+u
+ L//RsDL/1LM0/9e1Nf/Ztzf/3Lo5/925OP/euzn/3rs4/9+7N//fvDf/37w3/9+8N//evDf/3703/9+9
+ N//dujX/3rw2/927Nf/cujT/3Lo0/9u4M//auDP/2LYx/9a1Mf/Tsi//0K4t/8qlJf/Lpjv/1cKS/8vI
+ xv/DwsP/wcDA/7+/v//HxcX/5eLd//Xx7P/18Oz/9fDr//Xw6//08Ov/9O/q//Tv6v/07+r/9O7q//Pu
+ 6v/z7ur/8+7p//Pu6f/y7Oj/7+rl/+vl4P/j3tj/2dLN/8/Jwv/Kw73/wbu1/7eyrf+uqqb/oJyY/5CM
+ iP9vbGjtAQEBrQAAAHwAAABEAAAAFgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdvbWi1e3Zz/4SBff+Sj4v/npqX/6+ppv+2saz/ubKt/8O8
+ tv/Sy8b/2dTO/93Y0//Y0s7/trSy/66trf+ysbH/ubi5/8C2pv+hejr/lWQV/6JvG/+pdB3/rHgf/698
+ IP+0gyH/toYj/7iKJP+7jyX/vpMm/8KaKP/Gnyr/yqct/8yrLv/RsDL/07Iz/9a1Nf/Ztzb/27k4/926
+ OP/dujT/3rs1/968Nv/evDX/37w3/+C9OP/gvTf/4L04/968Nv/fvDf/37w3/968Nv/evDb/3bs1/926
+ NP/buDP/2bgz/9e2Mf/VszD/07Ev/86sLP/IoCP/zKdF/9LFpf/IyMf/w8LC/769vf/Av7//1dLP//Tv
+ 6//18Oz/9fDr//Tw6//07+v/9O/q//Tv6v/07+r/9O7q//Pu6v/z7un/8+7p//Pt6f/y7Oj/7ejj/+fi
+ 3P/e2NH/083G/8zFvv/HwLr/ubSv/7Ouq/+jn5z/lpKO/5aSjf4PDw+8AAAAjAAAAFMAAAAgAAAABAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQUEEZGL
+ h/V9eXX/hoJ//5eTkP+inpv/tK+r/7axq/+8trD/ysK8/9bRy//b1tD/0c3I/62sq/+sq6v/srKy/7q5
+ uf+wnX3/hloW/4tfFf+TYxb/k18S/41aD/+LWRP/ilkY/41cG/+SXxn/mmUV/6ZvFv+0fx3/uIoi/72R
+ Jv/CmCj/x6Ms/8upLv/PrTD/07Iz/9e2Nf/auTX/27k0/9y6NP/euzX/3703/9+8N//evDb/3703/+C+
+ N//fvTf/3702/9+9N//fvTf/37w2/968Nv/fvDf/3rs1/926Nf/dujX/27k0/9q3Mv/XtDH/1bIw/9Kv
+ Lf/Nqyv/xpwi/8+wYf/OyL7/w8PE/7++vv++vb3/zcrJ/+/q5v/18Ov/9fDr//Tw6//07+r/9O/q//Tv
+ 6v/07ur/8+7q//Pu6v/z7un/8+7p//Ls6P/v6+X/6+Xf/+Lc1v/X0Mr/zsfA/8rEvf+9uLL/trGt/6ik
+ n/+cmJT/k4+L/zo3NtIAAACZAAAAYgAAACsAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMC9OhoF9/4B8ef+JhYL/m5iU/6ijoP+3sqz/t7Gs/8C5
+ s//PycP/2NPN/8zIwv+pqKf/qqmp/7GwsP+3tbP/mHpS/3RICv9sRAz/cE8o/4VwWv+YjYT/sKmo/769
+ vf/BwMH/wcHC/8DAwf+8urr/rKSf/5yId/+bdkv/m2cd/7eCHf/AlSb/xZ8r/8qoLP/PrzL/1LQy/9e2
+ Mf/ZuDL/27oz/927Nf/fvDf/3703/9++N//fvTf/3703/+G/N//fvTf/3703/9++N//evDb/37w2/9+8
+ N//evDb/3bs1/9+7Nv/dujX/3Lkz/9q3Mv/YtTH/1rMx/9OxLv/PrCz/yaQn/8WaLf/Pvpf/x8fH/8LB
+ wf+/v7//yMbF/+3o5P/18Ov/9fDr//Tv6//07+r/9O/q//Tv6v/07ur/8+7q//Pu6f/z7un/8+3p//Hs
+ 5//t6OL/5uDa/9vVzv/Ry8P/y8W+/8O8tv+3sq7/rqqm/6Gdmf+SjYn/ZGJg5gAAAKUAAABwAAAANgAA
+ AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dk
+ Ypt8eHT/g357/46Kh/+dmpf/rqql/7axq/+5s63/xb64/9TOx//Iwr3/pKOj/6WkpP+ura3/sa2n/3ha
+ Nv9WORz/e25j/6upqv/ExcX/xMPD/8XFxf/DwsL/w8LC/8TExP/Ew8P/w8LC/8XExP/Ix8f/ysrK/8vL
+ y//FxMX/qJOE/6BuNP+7hx//x6Mr/8yqLf/Rry3/1rMw/9i3Mf/buTP/3bw1/968Nf/evDb/3702/9+9
+ Nv/fvTb/4L43/968Nf/fvTb/3702/9+9Nv/fvDb/3rw2/+C9N//evDb/3bs0/927Nf/dujT/27gz/9q3
+ Mv/atjH/1rIv/9SxLv/Qqyz/y6cp/8KWIP/MsG7/ysnH/8PDwv/Av7//xsTD/+3p5P/18Ov/9PDr//Tv
+ 6v/07+r/9O/q//Tu6v/z7ur/8+7p//Pu6f/z7un/8uzo/+/q5P/o493/39nS/9TMxv/Nxr//x8G7/7m0
+ sP+yran/op6a/5WRjf+OiYX4AwMDrwAAAH0AAABCAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFb2xpwHx4dP+Df3z/k5CM/6Gdmf+zrqn/trGr/722
+ sP/KxL3/xL+5/5+env+ko6P/rKys/6SemP9jUUD/hH58/76+vv++vb3/vr29/7++vv/JyMj/zczL/9HQ
+ z//a2Nb/4d7c/+Dd2//h39z/2djX/9TT0v/T09P/zc3N/8vKyv/My8v/x8fI/7SdkP+xeCz/x54j/86t
+ K//VtC//2Lcx/9u6M//cuzT/3bs0/969Nf/evDX/3702/9+9N//evTb/3703/9++N//fvTb/4L43/9+9
+ Nv/evDb/3rw1/968Nf/euzT/3rs1/967Nf/dujT/3Lg0/9q3Mf/XtDD/17Mw/9OvLv/QrS3/yqUo/8GU
+ IP/Ip1j/ysfF/8XExP/Av7//xcLB//Lt6P/08Ov/9O/r//Tv6v/07+r/9O/q//Pu6v/z7ur/8+7p//Pu
+ 6f/z7en/8Ozm/+vm4P/j3df/2NHK/8/Iwf/KxL7/vLey/7axrf+loZ3/m5aS/5qVkf8ODAy6AAAAiQAA
+ AE0AAAAYAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgI
+ CBGWkY37fnp2/4WCf/+XlJD/paGe/7Wwq/+3sav/v7my/8/Iwf+XlpT/lpWV/6Oiov+empf/iYR+/7i4
+ uP+7urr/wL+//8LCwv/My8r/3tvZ/+Tg3f/w6+b/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs/+vn
+ 4//m5OH/2djX/9DPz//Pz8//0dHR/87Nzf+7j2b/yJgf/9OxL//XtjH/2bgy/9y6NP/evDb/3r01/9++
+ N//gvjf/3743/9++N//evTX/3742/9++N//gvjf/4L43/969Nf/evDT/3rw0/967Nf/evDb/3rs0/926
+ NP/buDL/27cx/9u3Mv/YtTD/2LQw/9SwLv/QrCz/yqQo/8CRH//GpVX/xsTD/8LCwv/AwMD/z8zK//Xw
+ 6//08Ov/9O/q//Tv6v/07+r/9O7q//Pu6v/z7un/8+7p//Pt6f/y7Of/7eji/+Xf2v/b083/0crC/8zG
+ wP/AurX/t7Ku/6ikoP+empX/lI+L/zs6N9AAAACTAAAAVwAAAB8AAAACAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKCcmPImEgP+Ae3j/h4SA/5uXlP+qpaH/t7Ks/7iy
+ rf/Evbb/zMbA/5GRkP+amZn/paSk/6impf+3trf/t7a2/8C/v//T0dD/49/b//Hs5//07+v/9fDr//Xw
+ 6//18Oz/9fHs//Xx7P/18ez/9fHs//Xx7P/18e3/9fHt//Xx7f/o5OH/0dDQ/9HQ0P/Qz8//0dHR/9TV
+ 1v/GsJ//zaQu/9i3Mf/auTP/3Lsz/928NP/evjb/3742/9++Nf/fvjb/4L83/9++Nv/evTX/3741/9++
+ N//fvTb/3r00/968NP/evDX/3bs0/927NP/dujP/3boz/9u4Mv/cuDP/27cx/9u2Mf/ZtDH/1rEu/9Ou
+ Lf/Qqyv/yaMn/76NHv/FqGT/x8bG/8XExP/CwsH/3NjV//Tw6//07+r/9O/q//Tv6v/07ur/8+7q//Pu
+ 6f/z7un/8+7p//Lt6P/v6uT/6OPc/97W0P/TzMX/zcbA/8S+uP+4s6//rKil/6Gcl/+Uj4v/Yl5d4QAA
+ AJoAAABgAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAFIRkRngHt3/4F9ef+LiIT/nZmV/62opf+2sqz/urSt/8bAuv/Vz8n/s7Gv/6Ojo/+mpaX/rq2t/7Kx
+ sf/Mysn/4NzZ//Lt6P/07+r/9O/q//Tw6//18Ov/9fDs//Xw7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7f/18e3/8e3p/87NzP/Ly8v/zs7O/9bSz//XyKT/1713/9q8bf/YuEj/17Uv/9u5M//duzP/3r01/969
+ Nf/evTX/3701/+C+Nv/evTX/3741/969NP/fvjX/3r01/969NP/fvjT/37w1/927M//euzP/3bsz/926
+ M//cuTL/3Lgy/9y4Mv/btzH/2rUx/9m0MP/Xsi//1rAv/9GrK//NqSn/xpwl/7yJHP/Hsor/xcXG/8LC
+ wv/FxMP/6+fj//Tv6//07+r/9O/q//Tu6v/z7ur/8+7q//Pu6f/z7un/8+3p//Dr5f/q5N7/4NrT/9XO
+ x//PyMH/yMK8/7q1sf+xrKj/op2Y/5aRjf9ybWvsAAAAoAAAAGcAAAApAAAABAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWhlYpd9eHT/g397/46Kh/+gnJj/sKun/7ey
+ rP+8tq//y8S9/9bQy//W0cv/yMXD/7m4t/+9vLv/1dLQ/+nk4P/y7en/8+7p//Tv6v/07+r/9PDr//Xw
+ 6//18Oz/9fHs//Xx7P/18ez/9fHs//Xx7P/18e3/9fHt//Xx7f/f3Nn/zMvL/8vLy//MyL//wpI5/8KQ
+ G//LpCX/0a0q/9a0L//auTL/3Loy/927M//duzP/3bs0/968NP/evTT/3r00/969NP/gvzX/3rw0/969
+ NP/evDP/3r00/968NP/dvDP/3bsz/927M//dujP/3rs0/966NP/cuDL/27cx/9m2MP/ZtC//2bQw/9iy
+ Lv/WsC3/060t/9CrKv/Joif/wpYj/7qFIf/Gvq7/wcDA/8DAwP/OzMr/9O/r//Tv6v/07+r/9O/q//Pu
+ 6v/z7ur/8+7p//Pu6f/z7en/8ezm/+zm4P/h29X/18/I/9DJwv/KxL7/u7ey/7Ovqv+inpr/mJOP/5CK
+ hvgCAgKlAAAAbAAAAC0AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAABZmJho3x3dP+Df3z/ko6L/6Kem/+yraj/t7Ks/763sf/NxsD/2NHM/9zY0v/h29f/5d/b/+nk
+ 3//s6OP/8Ovn//Pt6f/07+r/9O/q//Tv6//08Ov/9fDr//Xw7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7f/18e3/9fHt/9rX1f/Jycn/zs3N/7+fdv/AjRz/yKEl/86qKP/Tryz/1rMu/9m3MP/buDD/3bs0/927
+ M//evjT/3700/9++NP/fvTT/3rwz/928M//evTT/3740/968M//evTT/3rw0/928M//duzP/3Lky/9y5
+ Mf/cuDH/27gw/9u3MP/btzH/2rUv/9u2MP/ZtC//2bMw/9exLv/UrS3/0Koq/82nKP/IniX/wI8h/72U
+ SP/Hx8f/wcDA/8TDw//k39v/9O/q//Tv6v/07+r/9O7q//Pu6v/z7un/8+7p//Pt6f/y7ef/7efh/+Pd
+ 1//Z0sr/0MrD/8zGwP+9uLT/tbCs/6Sfm/+blpH/opyZ/wcHB6oAAABvAAAALgAAAAYAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFnZGCsfHd0/4OAff+UkY3/pKCd/7Ou
+ qf+4s6z/wLmz/8/Jwv/Z083/3tnT/+Lc2P/m4Nz/6uXg/+3o5P/x7Oj/8+3p//Tv6v/07+r/9O/r//Xw
+ 6//18Ov/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHt//Xx7f/q5uP/1dPR/87Nzf/Qz9D/w6iR/8GJ
+ F//Mpyj/0awq/9WyLf/YtS//27gw/9y5MP/duzP/3bsz/967M//evDP/370z/9+9NP/evTP/3rwz/969
+ M//evDP/3rwz/967M//duzP/3rsz/927Mv/dujL/3Lkx/9y5Mv/cuDH/27cw/9u2L//ZtC//2rQv/9mz
+ L//ZszD/17At/9avLf/TrCv/z6go/8uiJv/FmST/uoIZ/8W1k//Hx8f/xMPD/87Lyv/07+r/9O/q//Tv
+ 6v/07ur/8+7q//Pu6f/z7un/8+3p//Pt5//u6OL/5N7Y/9rTzP/Ry8T/zcfB/7+6tf+3s67/pKCb/5yX
+ kv+emZT/EA4OrwAAAHEAAAAvAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAXFtart9eHX/hIB9/5aSjv+mop7/tK+q/7mzrP/DvLX/0cvF/9nUzv/e2dP/493Z/+fh
+ 3f/q5uH/7unl//Hs6P/z7un/9O/q//Tv6v/08Ov/9fDr//Xw6//18Oz/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/u6ub/1tTS/8/Ozv/Qz8//0dDQ/9TS0v/V1db/vI1l/8mYIv/Uryv/1rIt/9q2MP/buDD/3bky/926
+ Mv/euzL/3bsy/968Mv/fvTP/3r0z/9+9M//evTP/370z/9+9M//evDL/3bsz/926Mv/cuC//3roy/926
+ Mf/btzD/3Lky/9u3MP/btTD/27Yv/9q1L//Ysi7/2bMv/9iyLv/Ysi7/1q8t/9WtK//Sqir/zqYo/8ib
+ JP/BkCH/u4k2/8/Nzf/JyMj/xsXF/+Pe2v/z7un/9O/q//Tu6v/z7ur/8+7p//Pu6f/z7en/8+3n/+/p
+ 4//n4Nn/29TN/9LLxP/PycL/wby3/7ezrv+loZ3/nJeS/52Xk/8QEA6vAAAAcQAAADAAAAAGAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABc29sxH15df+FgX7/mJSQ/6ej
+ n/+1sKr/ubOt/8S9t//SzMX/2dTO/9/a1P/j3dn/5+Ld/+vm4v/v6uX/8u3p//Tu6v/07+r/9O/q//Tw
+ 6//18Ov/9fDr//Xw7P/18ez/9fHs//Xx7P/18ez/6OXh/83My//Ly8v/zs7O/9HR0v/Z19X/29HE/9vL
+ nv/dyYf/17pd/9SvKv/Ysy7/2rYw/9y3MP/cuDD/3boy/9y4Mf/euzL/3box/926Mf/dujD/3r0y/968
+ Mv/evDH/3rsx/967Mv/euzP/3boy/925Mv/bty//3Lgw/9u3L//cuDD/2rUv/9q0L//atC//2LIs/9mz
+ Lv/XsC3/17As/9avLP/Wry3/1a0r/9KpKv/Ppyj/zKEm/8aZJP+7ghn/yrqd/87Nzv/Gxsb/x8bG/8TD
+ wv/IxcT/1tLP/+Hd2f/z7un/8+7p//Pt6f/z7ef/8Ork/+fh2v/c1c7/08zF/9DKw//Cvbj/uLSw/6ei
+ nv+cmJP/nJeS/w0NDa4AAABxAAAAMAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAFvbWrBfnl1/4WBfv+ZlZL/qaSh/7Wwqv+5tK7/xb64/9PMxv/a1c//39rU/+Te
+ 2v/o4t7/6+fi/+/q5v/y7en/9O7q//Tv6v/07+r/9PDr//Xw6//18Oz/9fDs//Xx7P/18ez/9fHs/+nk
+ 4f/Ozcz/y8vL/8/Ozv/U0c//z7aH/8SVOP/Cjhr/yp0f/9CpJv/UrSn/1rEt/9m0Lv/atS//27cv/9u3
+ L//cuDD/3box/926Mf/cuTD/3box/926Mf/evDH/3rwy/927Mf/duzH/3bkw/925Mf/dujH/3boy/9y3
+ MP/btzD/27Yv/9u2MP/ZtC7/2bQu/9mzLv/Zsy3/2LAt/9ewLf/XsC3/1q4r/9auLP/UrCr/06kp/9Cn
+ KP/MoCb/yZwl/8ORIf/Al03/0dLU/8nJyv/Ix8f/xsXF/8LBwf/DwsL/xcXE/8XDwv/f29f/9O7q//Tu
+ 6f/x6+b/6ePd/97X0P/Uzcb/0cvE/8K+uf+4tLD/p6Oe/52Yk/+blpH/CwoKrgAAAHEAAAAvAAAABgAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFua8J+eXb/hoN//5qX
+ k/+ppaL/tbCr/7q0rv/GwLn/08zG/9rVz//f2tX/5N7a/+jj3v/s5+P/7+rm//Lt6f/07+r/9O/q//Tv
+ 6v/08Ov/9fDr//Xw7P/18Oz/9fHs//Xx7P/y7un/zMvK/8nJyf/Nzc3/z8m7/7yJOv+7ghj/xJUh/8ui
+ Jv/OqCf/06wq/9awLP/XsSz/2bUu/9q1L//cuC//27gw/9y4MP/duTD/3bkw/925MP/cuTD/3rwx/926
+ MP/dujD/37wy/926MP/dujD/3bow/9y4MP/duDD/3Lcw/9u1Lv/ctzD/2rQu/9q1Lv/Zsy3/2bIt/9my
+ LP/YsS3/1q8r/9auK//Xryz/1awr/9WsK//Uqyr/0ago/8+kJ//Mnyb/xpYj/8KPJv/UvIn/0b6W/9HE
+ q//QycH/0M7M/8jIyf/ExMT/wcHB/8XExP/Qzcv/7+nk//Hs5v/q5N7/4NnT/9jRy//Uzsj/xMC7/7m0
+ sP+npJ//nZiU/5yWkv8RERGxAAAAcQAAAC8AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABd3Nwx355dv+Gg3//m5eU/6mlov+1sKv/u7Wv/8fBuv/TzMb/2tXP/+Da
+ 1v/k3tr/6OTf/+zo4//w6+b/8u3p//Tv6v/07+r/9O/q//Tw6//18Ov/9fDs//Xw7P/18ez/9fHs/93a
+ 1v/JyMj/y8vL/8zIwv+xeCv/uIAa/8COH//HmyP/zKQm/9GpKf/UrSr/17As/9izLf/atC7/27Yv/9u3
+ L//atS7/2rUu/9u3L//cuDD/3bkw/9y5MP/cuTD/3bkw/9y5L//dujD/3bkw/9y4MP/cuDD/27cw/9y3
+ MP/cty//27Yu/9u2L//btS//2rMu/9exLf/XsCv/17Ar/9ewLP/XsCz/1a4r/9atKv/Uqyr/1Kop/9Op
+ Kf/SqCn/z6Im/82gKP/Jmij/xZQo/8CKJf+5gCT/tXol/7B1Kv+rfkD/t5l2/8vDuP/Kycr/xsbG/8LB
+ wf/Ix8b/7unj/+rl3//g2tP/2NPL/9bQyv/JxcD/vLez/6ekn/+dmJT/nJeS/xMTE7EAAABxAAAALgAA
+ AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2cnHJfnl2/4aD
+ f/+cmJX/qaWh/7Wwq/+7ta//yMG7/9PMxv/a1c//4NrW/+Xf2//o5N//7Ojj//Dr5v/z7en/9O/q//Tv
+ 6v/07+r/9PDr//Xw6//18Oz/9fDs//Xx7P/18ez/29jV/8vKyv/NzMz/xLq2/5NeM/+ycBD/w5Ad/8ib
+ I//Opif/0qoo/9SuKv/Wryv/2LIt/9m0Lv/ZtC7/2rUu/9q1Lv/btS//27cv/9y4L//bty7/27Yv/9y4
+ L//cuC//2rUu/9y4L//bty//27Yv/9u2L//bti7/27Uu/9q0Lv/bti7/2rQu/9myLP/Zsy7/2LEs/9my
+ Lf/XsCv/168s/9auK//VrSr/1a0q/9WrKv/SqSj/06go/9CkJ//Poyr/zJ8s/8qbLv/ImDH/w5I0/7+M
+ M/+3fiz/pGsm/5FgJ/9/VSj/d1Et/5qEcf/HxcT/xcXF/8LBwf/Uz8v/6+Xf/+Ha1P/a1M3/1tHL/8rG
+ wv/Bvbn/qqei/52YlP+dl5L/DQ0NrQAAAHAAAAAtAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAXNwbcd+eXX/hoJ//5yYlP+ppKH/tbCq/7u1r//Iwbv/08zG/9rW
+ z//g29b/5d/b/+nk3//s6OP/8Ovm//Pt6f/07+r/9O/q//Tv6v/08Ov/9fDr//Xw7P/18Oz/9fHs//Xx
+ 7P/s6OT/09LS/8/Ozv/R0dH/09TU/8Cxq/+7j23/x5pP/9CnJv/Sqij/1q8r/9auKv/XsCz/17Er/9my
+ LP/Zsy7/2LEr/9iyLP/Ysiz/2LIr/9mzLf/atS3/2bUu/9q1Lv/Zsy3/2rUu/9q1Lf/atS3/27Yv/9q0
+ Lv/atC7/2bIt/9myLP/Ysiz/2LEs/9ixLf/Vrir/164r/9atKv/VrSr/1q4s/9atKv/Uqyr/06op/9Gn
+ KP/TqSz/0aYt/8+jL//NoTX/zJ85/8iYOP/Bjjb/uI9l/7afkf/Du7n/zs3O/9LS0//R0dL/y8zM/8jG
+ xf/Lysr/w8LC/9DNyv/r5eD/4tvV/9vUzv/Y0s3/y8fC/8K+u/+xran/npmU/52Xk/8ICAipAAAAbAAA
+ ACkAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb2tpvH15
+ df+Ggn//nJeU/6ikoP+1sKr/u7Wv/8fBuv/SzMb/2tbP/+Db1v/l39v/6eTf/+zo4//w6+f/8u3p//Tv
+ 6v/07+r/9O/q//Tw6//18Ov/9fDr//Xw7P/18ez/8e3o/9TS0f/Q0ND/0dDQ/9PT1P/X1dP/2Mqu/9az
+ bf/SqT//z6Ym/9SsKf/UrSr/1a0p/9avK//Zsiz/2LEr/9avKv/XsCv/1rAq/9exK//WsCv/1K0p/9Wv
+ K//XsSv/17Er/9axK//Ysiv/2bMs/9iyK//Zsy3/2bQt/9myLP/Ysiv/2bIs/9ixLP/YsSz/168q/9ev
+ Kv/Wryr/1q4q/9WtKv/Tqij/1Ksp/9SrKv/TqSv/0qgt/9GoMP/RpjL/z6M5/86jPP/Kmzr/xJQ4/8GO
+ Ov/Fm1H/wJlj/8WlgP/TxbH/3NnY/9jY2f/X1tb/0tHR/83MzP/S0dH/5eHb/+vm3//i3Nb/3NXP/9nU
+ zv/MyMT/w7+8/7SwrP+hnZj/nZeT/xAQD6oAAABnAAAAJQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0cW7CfXh1/4aCf/+bl5P/qKSg/7Svqf+7tbD/x8G6/9LL
+ xf/a1c//4NvW/+Xf2//p5N//7Ojj//Dr5//y7en/9O/q//Tv6v/07+r/9O/r//Xw6//18Ov/9fDs//Pv
+ 6//T0tD/z8/P/9HQ0P/V1dX/0sCj/8KPO//Ahhf/yJgh/8ygJP/Qpib/0qko/9SsKf/UrCn/1a0p/9av
+ K//UrSr/06wp/9OrJ//Sqif/0qsn/9GqJ//Sqif/0akn/9GqJ//UrSn/1Kwo/9WuKv/XsCv/1q8q/9ew
+ Kv/YsSz/2LEs/9evKv/Ysiz/17Ar/9avK//VrSn/1awp/9WsKv/VrCr/1Ksp/9SrKf/SqSj/06or/9Ss
+ L//RqTL/0qg3/9CnPP/NoTv/ypw8/8aXOv/Bjjr/u4Y5/7eCOP+qdzT/nG0w/4xfKv+TbUL/vKuX/9jX
+ 1//T09P/zs7O/9TS0P/y7ef/6+Xf/+Lc1v/c1tD/2dXP/8zIxP/Ewb3/tLCs/6Sgm/+gmpX/DAwMpQAA
+ AGAAAAAgAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXdz
+ cb18eHT/hoJ+/5mWkv+oo6D/tK+p/7u1sP/HwLr/0crE/9rVzv/g29b/5d/b/+nk3//s6OP/8Ovm//Lt
+ 6f/07ur/9O/q//Tv6v/07+v/9PDr//Xw6//18Oz/2NXT/8/Ozv/R0ND/09LR/8GdZ/+zchP/vIUb/8OR
+ IP/ImSL/zaMm/8+mJv/Qpyb/0qoo/9SsKf/SqSf/06sn/9GpJ//PpiX/zqQk/86kJP/LniP/yp0i/8qe
+ Iv/KnSL/zJ8i/82jJP/OpCT/0akn/9OrJ//UrSj/1K0p/9WuKf/XsSv/168r/9avKv/Wrir/1a0o/9Oq
+ KP/Uqyj/1Ksp/9GnJ//SqSj/0ago/9KpLf/SqjD/06o0/9GoOv/Qpz7/zqM+/8ueP//Glj7/wY46/7iD
+ Of+ebz7/mntf/56Jef+ilIn/npOL/5eJfv99a2P/koJ2/9TT0//Ozc3/yMfG/+nk3//r5d//4tzW/93X
+ 0v/a1dD/zMjF/8XBvv+1sa7/op6a/6KdmP8FBQWbAAAAVgAAABoAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb2tpp3x4dP+Fgn7/mJSR/6ejn/+yraj/urWv/8a/
+ uf/QycP/2NLN/9/a1f/l39r/6OPf/+zo4//w6+b/8u3p//Tu6v/07+r/9O/q//Tv6v/08Ov/9fDr/+/r
+ 5v/Lysn/zc3N/9PU1P+5mGr/rGkR/7d7Gf+/iB3/xJMg/8mZIv/OoiX/zqMl/9CmJv/OpCX/zqQl/8+l
+ Jv/OpCX/zqUk/8ufI//JmiL/x5Qf/8ONHv/Djh3/w4sd/7l1E/+/ikz/xYwb/8qbIf/NoSP/z6Yl/9Or
+ J//Tqyj/1K0o/9SsKP/UrSn/1awp/9auKv/VrSj/1Kwo/9OqKP/SqSf/z6Ul/9GoKf/Rpy7/0qow/9Go
+ Nv/Sqj3/0ac//86jPv/Mn0D/yZpA/8STP/+8hzz/rYRl/9ra2//a2tr/2dnZ/9jY2P/Y19f/1tbW/9jY
+ 2P/Kycn/z87O/8/Pz//My8v/3dnU/+rl3//i3Nf/3djS/9rW0P/Oysf/xsK+/7ayr/+gmpb/paCb/wUF
+ BZIAAABKAAAAEwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABjYF6LfXl1/4WBff+VkY7/pqKf/7Crpv+6ta//xL63/9DJwv/X0cz/39rU/+Te2f/o497/7Ojj//Dr
+ 5v/y7en/9O7q//Tv6v/07+r/9O/q//Tw6//18Ov/3dnV/87Ozv/My8v/yL+0/6FeDv+xcxf/uoAb/76G
+ HP/DjyD/yZki/8udJP/OoyX/zJ8k/8yeI//KniP/ypwj/8mbIv/HlyD/xJAf/8CHG/++hBv/vIEZ/7l7
+ Ff+jXhj/wa2j/9rV1P+0aRL/wosd/8iXIP/MnyP/0KYl/9KqJ//Sqif/06on/9OrKP/Uqyf/1Kwo/9Kq
+ KP/Tqij/0KUm/9ClJv/SqSv/0agv/9OrMf/Tqzn/1a1B/9GnQP/Oo0D/zaJC/8qcQf/GmEL/wI1A/693
+ Nv+/rKL/3dzc/9jX1//d3d3/3t3d/9/f3//c3Nz/1dXV/8/Ozv/Pz8//y8rK/9bV1P/t6OP/6eTe/+Lc
+ 1//e2dP/2dbR/87Kx//Fwr//trOv/5uWkv+Tj4r2BAMDhgAAAD0AAAANAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERDQV2BfHn/g398/5GNiv+mop7/ramk/7q0
+ rv/Dvbb/zsfB/9bQy//c2NL/497Z/+jj3v/r5+L/7+rl//Lt6P/07ur/9O/q//Tv6v/07+r/9PDr//Xw
+ 6//W09H/zMvL/9HR0f+jiHL/i0kG/6ljDP+3dxT/v4Yb/8KNH//GkyD/yJki/8iXIf/ImCH/xZIf/8aU
+ IP/Djh//wYsd/7+IHP+9ghr/tnkX/7NzFf+gWwz/lWdF/9HLy//g4OD/4uPj/7OAXv+9gBj/wooc/8iW
+ IP/MniP/zqMk/9CmJv/QpiX/06on/9GoJv/SqSf/0qkn/9KoJ//PpCX/0agr/9GoL//SqTL/06w7/9Kq
+ P//RqUH/0alC/86jQv/Jm0L/x5hD/8KQQ/+7h0D/nGtB/9fV1f/Z2dn/3Nvb/+bj4P/t6eb/7urm/+nl
+ 4v/n5eP/29ra/9nZ2P/h397/6+jk//Dr5f/p497/4tzY/9/a1f/Z1dL/zsrH/8XCv/+1sa7/l5KO/3Vw
+ beMAAAB1AAAAMAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAJyYmNI+Khf+BfXr/joqH/6Whnf+rpqL/ubOu/8K7tP/Mxr//1c7J/9zX0v/j3tn/6OLe/+vn
+ 4v/v6uX/8u3o//Pu6v/07+r/9O/q//Tv6v/07+v/9PDr/9rX1P/Pz8//0tLS/9HR0v/Hw8P/uKmi/7ud
+ i/++iz//v4cc/8KLHv/Djx//wYwe/8OPHv/AiR3/vYQb/7uBGv+4exj/tXcX/65tE/+dWgv/ilgv/7Oo
+ ov/e3t7/3d3d/97e3v/e3t7/0cfF/6NaDf+7fxn/w4we/8eWIP/KnCL/zqMk/9CmJf/PpSb/0acm/9Cn
+ Jv/Qpib/z6Ql/8+lKv/Qpy7/0acy/9GpO//SqUD/0KdA/9GnQv/Mn0L/zJ9D/8aWQ//DkkP/vIlC/69+
+ P/+ulor/3d3d/9jY2P/e3Nv/9vLv//fz8P/28u//9vLv//by7v/28e7/9fHt//Xx7f/z7+r/7+rl/+jj
+ 3f/i3df/4NvW/9jV0f/Py8j/xcK+/7Gtqf+XkY3/X1tZ0AAAAGUAAAAjAAAABAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBAQHlI+L9YB8eP+Lh4T/op6a/6mk
+ oP+3sav/wLqz/8vEvf/SzMb/29bQ/+Hc2P/n4d3/6ubh/+7p5f/y7ej/8+7q//Tu6v/07+r/9O/q//Tv
+ 6v/08Ov/7Ofj/9HPz//Q0ND/1dTU/9na2v/TxrL/vYhB/7h7F/+6fxr/vIEb/7p/Gf+7gRv/un8Z/7d5
+ F/+zdBf/sG8V/6tpEv+XVQr/h1cv/6malP/Z2Nn/2dnZ/9jX1//i4eH/4uHh/9vb2//f39//pndZ/7Jv
+ Ev+8gBn/wYgc/8eVH//KmSH/y54j/82gJP/OoiX/zqMl/8+lJ//RqSz/zqQu/86kMf/QpTz/zqM//8+k
+ Qf/Oo0L/zJ9D/8qcRP/HmET/wpBD/72IRP+0gUP/mGxJ/9TT0//Z2Nj/3d3d/+jl4//38/D/9/Pv//fy
+ 7//28u//9vPv//by7//28u7/9vHt//Pu6v/u6eT/5+Hc/+Ld2P/h3dn/19PQ/8/Myv/DwLz/qaSg/5uW
+ kf8/PTy2AAAAUgAAABcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABzcW64fnp2/4mGgv+empf/p6Of/7Suqf++ubL/ysK8/9DKxP/Y0s7/4NvW/+bg
+ 3P/q5uH/7unl//Hs5//y7en/9O7q//Tv6v/07+r/9O/q//Tw6//W09H/zc3N/9PS0v/X1tb/waWC/6Vh
+ EP+tbRT/sXIX/7N0F/+2eRj/s3QW/7N0F/+wbxT/rGwU/6NhD/+HSQj/g1xA/6+mov/Y2Nj/19fX/9TT
+ 0//a2tr/4+Lh/+zp5v/l4+D/3Nzc/9rZ2f/Nx8b/kk0N/7d4Fv+9ghr/wowd/8eWH//JmSH/zJ4j/8uc
+ I//MniT/zZ8p/8yfLP/OojH/0KY9/86iPv/PpEH/zaBC/8yfQ//JmkP/xpVE/8GORP++i0X/toRE/59v
+ P/+8saz/29vb/9bW1v/i4OD/9/Pv//fz7//38/D/9vPw//bz8P/28+//9/Lv//fy7//18e3/8u7p/+3o
+ 4//m4dz/497Z/+Dd2P/W09D/0M3L/8G+u/+hnJj/oZuX/wgICIkAAAA+AAAADgAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1bWIN+enf/h4N//5mV
+ kf+mop7/sKql/723sP/HwLn/zsjC/9fRy//e2dT/5ODa/+rk4P/t6OT/8ezn//Lt6f/z7ur/9O7q//Tv
+ 6v/07+r/5ODc/83MzP/Pzs7/0tPT/7GWcf+RVAr/pWUS/6RlEv+rahP/q2sU/6poE/+nZhP/pGMR/5RT
+ Cv97RBD/jXJg/8K+vv/a2dn/2dnZ/9TU1P/Z2Nj/4N7d/+nn5P/08ez/9vPu//Pw6//g3t7/2NjY/97d
+ 3v+igXL/p2MN/7d5F/+9ghr/wowe/8aUH//IlyH/ypoi/8ydKP/Mnyz/zaEw/8+kPf/OoT3/zKBA/8ud
+ Qf/Jm0P/yJpD/8SSRP/CkET/vYlF/7SDRf+idUL/o4+G/97e3v/b29v/4N/f/+7r6P/38/D/9/Pw//fz
+ 8P/38/D/9/Pw//fz8P/38/D/9/Pv//Tw7P/x7Oj/6+bi/+bh3P/j4Nv/4NzY/9bT0f/PzMn/vbm2/5iT
+ j/+SjojzBQUFcwAAACwAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKyopOYmFgf+DgHz/ko+M/6Whnv+rpqL/u7Wv/8S+t//NxcD/1M7J/9zX
+ 0f/j39n/6OPf/+zo4//w6+b/8u3o//Pu6v/07ur/9O/q//Tv6v/Rz83/y8rK/9HS0v+6qpv/e0QG/49X
+ D/+UWQ//ml0Q/5tdEP+cXQ//llcM/3xBB/97VTn/oZOM/9XV1f/e3t7/19fX/9TU1P/e3t7/4N/e/+nm
+ 5P/08Oz/9vPu//bz7v/28+7/9vPu/+fl4f/c29v/2dnZ/9jY2P+MTyD/rm0T/7d4Fv+8gBr/v4Ub/8WQ
+ H//IlSX/yJUo/8ueL//NoDv/zKA+/8yeP//LnUH/x5dB/8eXRP/EkUT/wY5F/7yIRf+ygkX/onVE/52I
+ fv/f3+D/3dzc/+Hh4f/q5+b/9/Pw//f08P/39PD/9/Pw//fz8f/38/D/9/Pw//fz8P/28u//8+/r//Dr
+ 5//q5eH/5uHd/+Th3P/e2tj/19XS/87Lyf+yrqv/l5KN/2lmYtEAAABZAAAAHAAAAAQAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYIko6K8YB8
+ ef+Niof/op6b/6ikoP+3sav/wru1/8rDvf/Ry8X/2dXP/+Hc1//n4t3/6+bi/+/q5f/x7Of/8u3p//Pu
+ 6v/07+r/7Ofi/8rIyP/NzMz/0NDP/3tRJf93Rgn/fUkK/4FMC/+GTgr/dT4G/29GIv+OeW7/xMLC/9rb
+ 2//a2tr/2dnZ/9vb2//e3d3/4uDf/+nm4//28u7/9vLu//by7v/28u7/9vLu//bz7v/28+7/9vLu/+Hf
+ 3v/X19f/3Nvb/7appf+TTgj/sG8U/7Z3F/+7fxr/vYEe/8SPJv/FkSn/zJ05/8qaO//Kmj7/yZpA/8aT
+ QP/Fk0H/wItD/76JQ/+3g0P/sIFG/5VrQf+ompb/4uLi/97e3v/h4OD/6efm//f08P/39PD/9/Tx//fz
+ 8f/39PH/9/Tw//f08f/38/H/9/Pw//Xy7v/z7+v/7+rl/+rl4P/m4t7/5eLe/93a1//Y1dP/y8jG/6Wg
+ nP+blpH/NjY0pwAAAEEAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0cW2ofnp3/4qHg/+dmJb/pqKe/7Krp//AurP/yMK6/87I
+ wv/X0cz/39rV/+Xg2//q5eH/7unl//Hs5//y7ej/8+7q//Tu6v/c19T/zMzM/8/Ozv+9tK3/Wy4D/2k7
+ Bv9hMgT/XzkY/4BrX/+2sbD/19fX/9rZ2f/Y2Nj/19bW/9/e3v/f3dz/5+Ti/+zo5f/18e7/9fLu//by
+ 7v/28u7/9vLu//by7v/28u7/9vLu//by7v/28u7/7Onm/9/f3//Z2dn/3t7e/4xsXP+dWQz/r20U/7h4
+ Gv+8fyH/v4Yl/8WSNf/HlTr/xpI6/8aTPv/EkT//w49C/7+KQf+7hkL/tIFE/59wQP+TdmH/xsHA/+Pj
+ 4//g39//4+Li/+ro5v/28+//9/Tw//f08f/49PH/9/Tx//f08f/39PH/9/Px//j08f/38/D/9fHt//Lu
+ 6v/t6OT/6OTg/+fj3//k4d7/3tvZ/9jW0//Cv7z/m5WQ/6mjnf8GBgZyAAAAKgAAAAgAAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk3
+ NkyGg3//hoJ//5WRjv+loZ3/rKai/7y2sP/Gv7j/zMW//9PNyP/c19H/497Z/+nk3//t6OT/8Ovm//Lt
+ 6P/z7un/8+7q/9rW0//NzMz/zMvL/5mLhf9EJhb/dGRa/62pp//T1NT/2NjY/9XV1f/T0tL/2djY/93c
+ 3P/i4N//5+Tg//Pv6//18e3/9fHt//Xx7f/18e7/9fLu//Xy7v/28u7/9vLu//by7v/28u7/9vLu//by
+ 7v/28u7/5ePg/9vb2//a2tr/2NjZ/31NLf+fXhD/sHAc/7V3H/+8gS3/wow2/8KMOf/Djjz/wYw+/8CL
+ Pv+9hT//sXo8/5lrPv+egm3/vba0/+Li4v/h4eH/397e/+bm5v/q6Of/9/Tx//f08f/49PH/+PTx//j0
+ 8f/39PH/9/Tx//j08f/49PL/+PTx//bz7//08Oz/8Ozo/+zn4//p5eH/6OTh/+Ph3f/e3Nr/1tTR/7Sw
+ rP+WkYz/dHFu1wICAlEAAAAZAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQQEBo+LieqBfXr/j4yI/6Gdmf+no5//t7Gr/8O9
+ tv/Jw7z/0MrE/9jTzv/g3Nb/5+Ld/+zn4//v6uX/8ezn//Lt6P/z7ur/2dbT/87Nzf/Nzc3/x8fH/87N
+ zv/V1NT/0dHR/9LR0f/V1dX/29ra/93b2v/m5OD/7url//Xx7P/18ez/9fHs//Xx7f/18e3/9fHt//Xx
+ 7f/18e3/9fHu//Xx7v/18u7/9fLu//Xy7v/18u7/9vLu//by7v/08e3/4+Lg/9jX1//b2tr/yMPD/3dC
+ HP+fYxj/r3Im/7d9Mf+7gzf/vYY6/7yFPf+1iF7/rIty/6yWhP+9s63/2tna/+bl5v/i4uL/4eHh/+Xk
+ 5P/o5+f/7+3q//f08f/39PH/+PTx//j18f/49PH/9/Ty//j08v/49fL/+PTy//j08f/39PH/9vPv//Pv
+ 6//u6ub/6+fi/+nl4f/n5eH/4+Hf/9/d2//OzMn/op6Z/52Xkv82NTOcAAAANQAAAA0AAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAZWNgj398ef+LiIT/mpaT/6ainv+vqaT/wLqz/8fBuv/NxsD/1c/K/93Y0//k39r/6eXg/+7p
+ 5P/x7Of/8u3o//Pu6f/s5+T/2trY/8zLy//Pzs7/ysrK/9LS0v/a2tn/2tjX/+bi4P/q5uL/9fHs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7f/18e3/9fHt//Xx7f/18e3/9fHt//Xx7f/18e3/9fHu//Xx
+ 7v/18e7/9fHu//Xx7v/u6+f/4eDg/9fW1v/b2tr/urOy/3dFHf+daiv/q3Qx/7B4M/+xezf/tIA7/76b
+ bf/St5n/3tXK/+Xj4v/l5eX/4uLi/+Li4v/j4+L/6efl//fz8P/39fH/+PTx//j08f/49fH/+PXy//j0
+ 8v/49fL/+PXy//j18v/49fL/+PXy//b08P/18u7/8e7q/+3p5f/q5uP/6ebj/+jl4v/k4+H/3tza/726
+ tv+Yko7/mJOO8wgICF8AAAAfAAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIB8rk4+L/YWCfv+TkIz/o5+b/6ql
+ oP+6tK7/xb+4/8rDvf/Qy8X/2dTO/+Hc1//n497/7Ofj//Dr5v/x7Of/8u3o//Pu6v/q5eH/4d7c/9LR
+ 0P/b2dj/4+Dd/+nk4P/18Ov/9fDr//Xw7P/18Oz/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18e3/9fHt//Xx7f/18e3/9fHt//Xx7f/18e3/9fHt//Xx7f/18e3/9fHt//Xx7f/t6eb/39/f/9jY
+ 2P/d3Nz/vLe3/3dPNP+UZC7/kmI1/59uNP+jczn/m247/5NnOP+TaTz/nHdS/7mlkv/e3dz/4ODg/+Dg
+ 4P/n5OL/9/Xx//j08f/49PH/+PXx//j18v/49PL/+PXy//j18v/49fL/+PXy//j18v/39PL/9vPw//Tw
+ 7f/w7Oj/7ejl/+rn5P/r5+X/6efl/+bk4v/W09H/p6Oe/5iTjv9cWVe4AAAAOwAAABAAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABxbmusgH16/46LiP+bmJT/pqKe/7Krpv/DvLX/x8G6/83Gwf/Vz8n/3djT/+Tf
+ 2v/q5eD/7unl//Hs5//y7ej/8u3p//Pu6v/07ur/9O/q//Tv6v/07+r/9O/q//Tw6//18Ov/9fDr//Xw
+ 7P/18Oz/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7f/18e3/9fHt//Xx
+ 7f/18e3/9fHt//Xx7f/18e3/9fHt//Xx7f/r6OX/3t3d/9nY2P/e3t7/zszN/3xjVv+zpZr/kHlt/39X
+ NP+eeVH/vLOq/6OVjP+SfnT/gnJu/8G8uv/g4OD/3t3d/+bk4v/49PH/+PXx//j18v/49fL/+PXy//j1
+ 8v/49fP/+PXy//j18//49fP/+PXy//f08f/18u//8u7r/+/r5//s6OX/6+nl/+zq5//q6ef/4+Lg/8G+
+ u/+alZD/oJuW/BUVFGoAAAAhAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0sKzyPi4j/iISB/5SR
+ jf+jn5v/qqWg/7u1rv/GwLn/ysO9/9DLxf/Z1M7/4NvX/+fi3f/s5+P/8Ovm//Hs5//y7ej/8+7p//Pu
+ 6v/07ur/9O/q//Tv6v/07+r/9O/q//Tw6//18Ov/9fDr//Xw7P/18Oz/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7f/18e3/9fHt//Xx7f/18e3/9fLt//Xy
+ 7f/s6eb/5OPj/9jY2P/c3Nz/3Nzc/83Ly//k5OT/zszN/5uQi/+UgXz/4eDg/+fn5//l5eX/4+Pj/97e
+ 3v/l5eX/7+zp//j18f/49fH/+PXy//j18v/49fL/+PXz//j18//49fP/+fXz//n18//49fL/9vPw//Tx
+ 7f/w7en/7urm/+zp5v/t6+f/7uzr/+rp5//Z1tT/qKOf/5eSjf9yb2zHAAAAOAAAAA8AAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHt4dbqCfnv/kIyI/5uYlP+no57/saql/8O9tv/Hwbr/zMbA/9TO
+ yf/d2NP/497Z/+nl4P/u6eT/8Ovm//Lt6P/y7ej/8+7q//Pu6v/07ur/9O/q//Tv6v/07+r/9O/q//Tw
+ 6//18Ov/9fDr//Xw6//18Oz/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18u3/9fLt//bz7//v7On/5OLh/+Df3//b2tr/3Nvb/+Dg
+ 4P/g4OD/5OPj/+bm5v/i4uL/4uLi/+Lh4f/k5OT/5+bm/+7s6f/49fH/+PXy//j18v/49fL/+PXz//j1
+ 8//49fP/+Pbz//n28//59vP/+Pbz//f08f/18u//8u/s/+/s6P/t6uf/7evo//Dv7P/v7u3/5uTi/8C8
+ uf+alJD/opyX/BkYF2cAAAAfAAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyopOJKO
+ iv+IhYH/lJCN/6Kfm/+qpaD/u7Su/8bAuf/Jw7z/z8nE/9jSzf/f29X/5uHc/+rm4f/v6uX/8ezn//Lt
+ 6P/y7ej/8+7q//Pu6v/07ur/9O/q//Tv6v/07+r/9O/q//Tw6//08Ov/9fDr//Xw6//18Oz/9fDs//Xw
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHt//Xy
+ 7f/28u7/9vLv//bz7//18u7/6ujm/+Hg4P/i4uL/4uLh/+Tk5P/j4+P/39/f/+Hh4f/n5+f/6ejm/+zq
+ 6P/08O3/+PXx//j18v/49fL/+PXy//j18//49fP/+Pbz//n28//59vP/+fb0//n28//39fL/9vPw//Pw
+ 7f/x7er/7+vo/+3r6P/x7+3/8vHw/+3r6v/W09L/pKCb/5mTj/9kYF22AQEBMgAAAA0AAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcG1rpYN/fP+Qi4j/mJWR/6ainv+wqaT/wru1/8fB
+ uv/LxL7/0s3H/9vV0P/i3df/6OPe/+zn4//w6+b/8ezn//Lt6P/z7un/8+7q//Pu6v/07ur/9O/q//Tv
+ 6v/07+r/9O/q//Tv6//08Ov/9fDr//Xw6//18Ov/9fDs//Xw7P/18Oz/9fHs//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18e3/9fHt//bz7//28+//9vPv//bz8P/28/D/9vLv//Ht
+ 6v/28u7/8e3q/+rn5f/s6uj/7Oro/+3q6P/39PH/+PTx//j08f/49fH/+PXy//j18v/49fP/+PXz//j2
+ 8//59vP/+fb0//n28//59vT/+PXz//f08f/18u//8u/r//Ds6f/u6+n/8O7r//X08v/x8fD/5OPh/7az
+ r/+Yk47/o56Z+Q4ODlQAAAAZAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAeHh0ok4+K84eDgP+Tj4z/n5uY/6mkn/+3sKr/xr+4/8jCvP/Nx8L/1c/K/93Y0//j3tn/6eTf/+3o
+ 4//w6+b/8u3o//Lt6P/z7un/8+7q//Pu6v/07ur/9O/q//Tv6v/07+r/9O/q//Tv6v/08Ov/9PDr//Xw
+ 6//18Ov/9fDr//Xw7P/18Oz/9fDs//Xw7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHt//Xx
+ 7f/28u7/9vLv//by7//28+//9vPw//fy8P/38/D/9/Pw//fz7//38/D/9/Tw//f08P/39PH/9/Tx//j0
+ 8f/49PH/+PXy//j18v/49fL/+PXz//j18//49vP/+fbz//n29P/59vT/+fb0//j18//39fH/9vPw//Pw
+ 7f/x7er/7+zp//Dt6//29PP/9fTz/+vq6f/LyMX/npmU/5yXkv9YVFKjAAAAKAAAAAoAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXVVN6i4eD/42Jhv+Vko7/pKCc/6ym
+ of++trD/xsC5/8nDvf/PycT/19LN/97Z1P/l4Nv/6uXg/+7p5P/x7Of/8u3o//Lt6P/z7un/8+7q//Pu
+ 6v/07ur/9O/q//Tv6v/07+r/9O/q//Tv6v/07+v/9PDr//Tw6//18Ov/9fDr//Xw6//18Ov/9fDs//Xw
+ 7P/18Oz/9fDs//Xw7P/18Oz/9fDs//Xw7P/18O3/9fDt//bx7//28u//9vLv//by7//38u//9/Pv//fz
+ 7//38+//9/Pv//f08P/39PD/9/Pw//f08P/39PH/+PTx//j18f/49fL/+PXy//j18//49fP/+Pbz//n2
+ 8//59vT/+fb0//n29P/49vP/+PXy//b08f/08e7/8u7r//Ds6v/w7ev/9fTz//j39v/w7+7/3NrX/6ej
+ n/+Xko3/iIR/2gcGBkAAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAcHBgmGhIDMhYJ+/5GNif+ZlZH/qKKe/7Cqpf/Cu7X/x8G6/8rEv//Ry8b/2dTO/+Db
+ 1v/m4dz/6+bh/+7p5P/x7Of/8u3o//Lt6P/z7un/8+7q//Pu6v/07ur/9O7q//Tv6v/07+r/9O/q//Tv
+ 6v/07+r/9O/r//Tw6//08Ov/9PDr//Xw6//18Ov/9fDr//Xw6//18Ov/9fDr//Xw7P/18Oz/9fDs//Xw
+ 7P/28e3/9vHu//by7f/28u7/9vLu//fy7v/38+7/9/Pv//bz7//38/D/9/Pw//fz8P/39PD/9/Tw//j0
+ 8f/49PH/+PXy//j18v/49fP/+PXz//j28//59vP/+fb0//n29P/59vT/+Pbz//j18//29PH/9PHv//Lv
+ 7P/w7er/8O3r//Xz8f/4+Pf/8/Ly/+Xj4f+1sq7/mZSQ/6agm/0xMC5xAAAAHAAAAAYAAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACspKTiXk474iYWA/5KP
+ i/+dmZX/qaSg/7WvqP/Fvrf/x8K7/8zGwP/Szcf/2tXP/+Hc1//n4t3/6+bh/+7p5P/x7Of/8u3o//Lt
+ 6P/z7un/8+7q//Pu6v/z7ur/9O7q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+v/9PDr//Tw
+ 6//08Ov/9PDr//Xw6//18Ov/9fDr//Xw6//18Ov/9fDr//bx7f/28e3/9vLt//by7v/28u7/9vLu//bz
+ 7//28u//9vPv//fz7//38+//9/Pw//f08P/39PH/+PTx//j08v/49PL/+PXy//j18//49fP/+fbz//n2
+ 8//59vT/+fb0//j28//39fL/9/Tx//Xy7//z8O3/8O3q//Dt6//08/H/+fn4//b19P/r6ej/wsC8/56Z
+ k/+clpL/aWdlrAAAACUAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRSUHKQi4f/jIiE/5SQjP+hnZj/rKag/7myrP/Fv7j/yMK7/8zH
+ wf/Tzsj/29bQ/+Lc2P/n4t3/7Obh/+/q5P/x7Of/8u3o//Lt6P/z7un/8+7p//Pu6v/z7ur/8+7q//Tu
+ 6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+v/9O/r//Tw6//08Ov/9PDr//Tw
+ 6//08Oz/9fHt//Xy7f/18u7/9vHu//by7v/28u7/9vLu//by7v/38+//9/Pv//fz8P/39PD/9/Tx//j0
+ 8f/49PH/+PTy//j18v/49fL/+PXy//j28//59fP/+fb0//n29P/49vP/+PXy//b08f/18u//8/Dt//Hu
+ 6//w7ev/9PPx//r6+f/39/b/7ezr/87Myf+hnJf/l5KN/5KNiNgCAgIwAAAADgAAAAMAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDBHJw
+ baSJg4D/joqG/5WRjv+jn5v/rqij/7u1rv/GwLn/yMO8/83Hwv/Tzsn/29bQ/+Ld2P/n4t3/7Obh/+7p
+ 5P/x7Of/8u3o//Lt6P/z7un/8+7p//Pu6f/z7ur/8+7q//Pu6v/07ur/9O7q//Tv6v/07+r/9O/q//Tv
+ 6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Xw6//18ez/9fHs//Xx7f/28e3/9vLt//by
+ 7v/28u7/9vLv//fz7//38/D/9/Pw//fz8P/38/H/9/Tx//f08f/49PL/+PXy//j18v/49fP/+fXz//n2
+ 8//59vP/+Pbz//f18v/28/H/9fLv//Pw7f/x7uv/8O3r//Tz8f/6+vn/+fj3/+/u7P/X1dL/p6Ke/5eS
+ jf+lnprzFBMTRgAAABIAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKDIqGgsyIhID/kIuH/5eSj/+mop3/sKql/7y2
+ r//GwLn/ycO9/87Hwv/Uzsr/29bQ/+Hc1//n4t3/6+bh/+7p5P/x7Ob/8u3o//Lt6P/z7un/8+7p//Pu
+ 6f/z7un/8+7q//Pu6v/z7ur/9O7q//Tu6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv
+ 6v/07+r/9fDs//Xx7P/18e3/9fHt//bx7f/28u7/9vLu//by7v/28+//9/Lv//fy8P/38/D/9/Px//f0
+ 8f/39PH/9/Tx//j18v/49fL/+PXz//j18//59vP/+Pbz//j28//39fL/9vPw//Tx7v/y7+z/8e3r//Du
+ 6//08/D/+/r5//n4+P/w7u3/3dva/6mloP+Yk47/pJ+b+y8uLWQAAAAWAAAABQAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGBgXH5SQi+SIg3//kIyH/5iUkP+nop7/saul/721r//GwLn/ycS+/87Iw//Tzsn/2tXP/+Db
+ 1//m4dz/6uXg/+3o4//w6+X/8u3o//Lt6P/z7un/8+7p//Pu6f/z7un/8+7p//Pu6v/z7ur/8+7q//Pu
+ 6v/07ur/9O7q//Tu6v/07ur/9O/q//Tv6v/07+r/9O/q//Tv6v/18Oz/9fHs//Xx7f/28e3/9vHt//bx
+ 7v/28e7/9vLv//by7//28u//9vPw//fz8P/38/D/9/Tw//f08f/49PH/+PXy//j18v/49fP/+PXz//j1
+ 8v/39PL/9vTx//Xy7//z8O3/8u/s//Dt6v/w7ev/9PLw//r6+f/5+Pj/8O7t/97c2/+rqKT/mZWQ/6Wg
+ mv9QTkyFAQEBGAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiUkMpKMiOiJhH//kIyI/5mU
+ kf+opJ7/sqyn/7y1r//Gv7n/ycS+/83Iwv/Szcj/2dTO/9/a1P/l4Nv/6eTf/+3o4v/v6uX/8ezm//Lt
+ 6P/y7ej/8+7p//Pu6f/z7un/8+7p//Pu6f/z7un/8+7q//Pu6v/z7ur/8+7q//Pu6v/z7ur/8+7q//Tu
+ 6v/07ur/9O/r//Xw7P/18Oz/9fDt//Xw7f/18e3/9fHu//Xx7v/28u//9vLv//by7//28+//9/Pw//f0
+ 8P/39PH/9/Tx//j08v/49PL/+PXy//j18v/39fL/9/Tx//bz8P/08e7/8u/s//Hu6//w7er/7+3q//Xz
+ 8f/6+fn/+Pj3/+/u7v/d3Nr/rKik/5qVkf+inZj/WFVTjgEBARgAAAAHAAAAAQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAALCopOpiUkPCJg3//kY2I/5iUkf+oo57/sqyn/7qzrv/Evrj/ycS9/8zH
+ wf/RzMf/19LM/93Y0//j3tn/6OPe/+vm4f/u6eP/8Ovm//Lt5//y7ej/8+7p//Pu6f/z7un/8+7p//Pu
+ 6f/z7un/8+7p//Pu6f/z7un/8+7q//Pu6v/z7ur/8+7q//Pu6v/07+v/9PDs//Tw7P/18O3/9fDt//Xx
+ 7f/18e3/9fHt//by7v/28u7/9vPv//bz7//38/D/9/Tw//f08f/49PH/+PTy//f18v/39PH/9/Tx//bz
+ 8P/08e7/8/Ds//Hu6//v7On/7+zp//Dt6v/18/H/+fj4//b29f/u7ez/2dfW/6mkof+alZH/oZyX/2Fe
+ XJcAAAAYAAAABwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCcmNJeT
+ je2Ig3//kIyH/5iTkP+mop3/sqyn/7iyrP/Cu7b/ycO9/8vGwf/Py8X/1dDL/9rV0P/g29X/5eDb/+nk
+ 3//s5+H/7+rk//Dr5v/y7ef/8u3o//Pu6f/z7un/8+7p//Pu6f/z7un/8+7p//Pu6f/z7un/8+7p//Pu
+ 6f/z7un/8+7p//Tv6v/08Ov/9PDs//Xw7P/18ez/9fHt//Xx7f/28u7/9vLu//by7//28+//9/Pw//fz
+ 8P/38/D/9/Tx//f08f/29PD/9vPw//Xz7//08e7/8+/s//Hu6v/v7On/7+vo/+7r6P/w7ev/9vTz//f2
+ 9v/z8/L/7ezr/9DOy/+moZ3/mZSQ/6Kdmf9gXVuUAQEBFwAAAAYAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycmNJSRi+SKhYD/j4qG/5aTj/+kn5v/sayn/7aw
+ q/++uLL/x8G8/8vGwP/OyMP/0s3I/9fSzf/c2NL/4t3Y/+fi3P/q5d//7eji/+/q5P/x7Ob/8u3n//Pu
+ 6P/z7un/8+7p//Pu6f/z7un/8+7p//Pu6f/z7un/8+7p//Pu6f/z7un/9O/q//Tw6//18Oz/9fDs//Xx
+ 7f/18e3/9fHt//by7v/28u7/9vLv//bz7//38/D/9/Pv//bz8P/28+//9vLv//Xy7v/08O3/8u/r//Dt
+ 6f/v6+j/7erm/+3q5v/t6uf/8O3r//Xz8f/19PP/8fDv/+no5v/Gw8D/o56Z/5iTjv+loJz/U1FOgQAA
+ ABMAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAGRkYIZaSjNmNiIP/jYiD/5aSjv+fm5j/r6ql/7Suqv+6tK//w724/8vFv//NyMP/0MvG/9TP
+ yv/Y1M7/3tnT/+Ld1//n4dz/6uTg/+zn4f/u6eT/8Ovl//Hs5//z7uj/8+7o//Pu6f/z7un/8+7p//Pu
+ 6f/z7un/8+7p//Pu6f/07+r/9PDr//Xw7P/18Oz/9fHt//Xx7f/18e3/9vLu//by7v/28u7/9vLv//by
+ 7//18u7/9fHu//Tw7f/z7+z/8e3q/+/s6P/u6uf/7enl/+zo5f/s6eX/7ern//Dt6//y8fD/8vDw/+3r
+ 6v/f3t3/trOw/5+alv+Yk4//pKCc+EtJSHQAAAAPAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFBoJ/e7iSjYj/i4aB/5SQ
+ jP+cmJT/qqWg/7Svqf+2saz/vbiy/8fBvP/MxsL/zsnE/9HMx//U0Mr/2dTP/97Y0//i3dj/5eDb/+jj
+ 3v/r5eD/7unj/+/q5f/w6+X/8ezn//Lt5//z7uj/8+7o//Pu6P/z7uj/8+7o//Tv6f/08Ov/9fDr//Xx
+ 6//18ez/9fHs//Xx7f/18e3/9fHt//Tw7P/08Oz/8+/r//Lu6//x7en/7+vo/+7q5v/s6OT/6+fj/+rn
+ 4//q5+P/6ufk/+vp5v/v7Or/7+3s/+3s6//p5+b/zszK/6mlof+dl5P/mpSQ/5qUkuEnJyZHAAAACwAA
+ AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdUUnOdmJP7ioWB/5CMiP+ZlZH/o5+b/7Csp/+1sKz/uLOv/7+6
+ tf/Iw77/zcjD/8/Kxf/RzMf/1M/K/9jTzv/c1tH/4NrV/+Pe2P/m4Nv/6OLd/+rl4P/s5+H/7unk/+/q
+ 5f/v6uX/8ezm//Lt5//y7ef/8u3o//Tv6v/07+r/8+7q//Pu6v/y7ur/8u7q//Lu6f/x7en/8ezo/+/r
+ 5v/u6uX/7Ojk/+vn4//q5eL/6eTg/+jk4P/o5OD/6OTh/+nl4v/p5+T/6ujm/+rp5//p5+b/29nY/7m2
+ s/+inZn/mZSQ/6Cblv+DgH27ExMTKAAAAAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAv
+ Lj6NiYXRjoiE/4yIhP+Wko3/nZmW/6mloP+zrqn/trGt/7q0sP/Aurb/x8O9/83IxP/PysX/0czH/9PO
+ yf/V0Mv/2NPO/9vW0f/e2dT/4NvW/+Pe2P/l4Nr/5+Lc/+fi3f/p5N7/6uXf/+rl4P/r5uH/7ejj/+3p
+ 5P/u6OT/7ejk/+3o5P/s6OP/6+bi/+rm4f/p5OD/6OPf/+fj3v/m4t3/5uLd/+Xh3f/m4d3/5uLe/+Xi
+ 3v/k4N7/5OLf/+Xj4f/m4+L/393c/8PAvv+no5//nZiU/5mTj/+inZj0WllWfwICAg0AAAADAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwlhXlyEmpWR+YyHgv+QjYj/mpWS/6Cc
+ mf+rp6P/s6+q/7ayrv+5tLD/vrm1/8S/u//KxcD/zsjE/9DKxf/Ry8f/083I/9TPyv/X0cz/2dPO/9vV
+ 0P/d1tL/3djT/9/Z1P/f2tT/39rV/+Db1f/h3Nf/5d/b/+Tf2v/k4Nr/5N/a/+Tf2v/j3tn/5N7a/+Le
+ 2f/i3dn/4t7Z/+Pe2f/j3tr/4t7a/+Hc2f/f29j/3tvZ/9/d2//g393/3NrY/8bEwf+tqab/n5qX/5mU
+ j/+inZj/h4SBwRwbGi8AAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAcGxokgHt4uJmUkP+Mh4T/lI+M/5yYlf+inpr/q6ai/7Ktqf+3sq3/t7Ou/7q1
+ sf++ubT/xL65/8nDvv/MxsH/z8nE/9DKxf/Ry8X/0s3H/9POyP/Tz8j/1M/J/9bQyv/W0Mv/19HL/9fR
+ yv/Z087/3NfS/93X0v/c19L/3tjT/97Z1P/d2NT/3tnU/97Z1P/d2NT/3NfT/9rW0f/Y1NH/2dbT/9rY
+ 1f/b2df/1tPR/8K/vP+rp6T/oJyY/5mVkf+cmJP/m5iS4T48O1oCAgIJAAAAAgAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMENzY1SJKO
+ idKYk4//joqH/5WRjf+cmZX/op6b/6ejn/+uqab/sq6q/7axrf+2saz/uLOu/7u2sP+/ubT/w723/8fB
+ u//Jw73/zMW//83HwP/PyMH/z8nD/8/Kw//QysP/0MrD/9DKw//Uzcf/1tHL/9fRzP/W0cz/1tHL/9XP
+ y//Tzsn/0s7K/9LOyf/Sz8v/1NHO/9XT0P/U0c//ycfE/7e0sf+opKD/n5uX/5mVkf+bl5P/o52Z7WJf
+ XYUCAgIKAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD49PFKHg4DEnZiU/5GMif+UkIz/m5eT/6Cd
+ mf+koJv/p6Of/6yopP+xq6f/s66p/7Wwqv+2sav/trCs/7izrf+6tK7/u7Wv/722sf++t7L/v7ix/8C4
+ sf+/uLH/vrix/764sf/AurP/xr+5/8nDv//KxsL/zMfD/83Jxf/Oy8f/zszI/83Jxv/Ewb7/uLWy/6un
+ o/+hnpr/npqW/5mVkf+fmpb/op+a6lVTUXUMDAwWAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAEBAQEkIyIvbGlml6KemfaXko7/kY2J/5eSjv+cmJT/oZ2Z/6Kemv+koJz/p6Kf/6qm
+ ov+uqaX/saum/7GsqP+zrqn/ta+q/7Svqv+1sKr/ta+q/7awq/+2sKv/tbCr/7Wwq/+1r6v/trCs/7ez
+ r/+3tLD/trKu/7Ctqv+tqaX/pqKe/6Cdmf+dmZT/mpWS/5uXk/+ppaD/jYmGxklHRWIKCgkRAAAAAgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFB05M
+ SmaHhIHBop6Z+paRjP+Tjor/lZCM/5uVkP+dmJT/oJuX/6KdmP+inpn/o5+b/6SgnP+loZz/pqGd/6ai
+ nv+mo57/pqOe/6ajnv+moZ3/paCc/6Sfm/+inpr/op6Z/6GcmP+empX/nZiT/5uWkv+YlJD/nJeT/6ik
+ oP+WkY3VaWZkiiAfHisAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGRkhQ0JBWWpnZJSVkI3bpJ+Z/pqV
+ kP+VkIr/lZCL/5aRjP+Zk4//m5WR/5uWkf+cl5L/nZiS/5yXkv+cl5L/nJeS/5yXkv+blpH/m5WR/5mT
+ j/+Yk47/mZSP/52Yk/+ppJ//op6Z6oOAfbZcWVd3Hx8eKwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEWFhUcNDIxQ2ViX4RzbmyhjoqG0qSemfOoo53/o56Y/5+a
+ lP+emZP/npiT/56Ykv+hm5b/pp+b/6uloP+rpqH7lpOP2398d7BtamePR0VDWxwcGyYAAAABAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAACAgICBQUFBhcXFh4bGxokGhoZIiUlJDEyMTBCKCcmNB0dHCYaGhkiFhUVHAoK
+ Cg0AAAABAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////4AAf/////////////////gAAAP///////////////+AAAAAf//////////////8AAAAA
+ A//////////////8AAAAAAD/////////////8AAAAAAAP////////////8AAAAAAAA////////////8A
+ AAAAAAAD///////////+AAAAAAAAAf///////////AAAAAAAAAB///////////AAAAAAAAAAP///////
+ ///gAAAAAAAAAB//////////gAAAAAAAAAAH/////////wAAAAAAAAAAA/////////4AAAAAAAAAAAH/
+ ///////8AAAAAAAAAAAA////////+AAAAAAAAAAAAH////////AAAAAAAAAAAAB////////gAAAAAAAA
+ AAAAP///////wAAAAAAAAAAAAB///////8AAAAAAAAAAAAAP//////+AAAAAAAAAAAAAD///////AAAA
+ AAAAAAAAAAf//////wAAAAAAAAAAAAAD//////4AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAH/////
+ /AAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAAP/////4AAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAA
+ f/////AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAA/////4AAAAAAAAAAAAAAAP////8AAAAAAAAAA
+ AAAAAD/////AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAH////4AAAAAAAAAAAAAAAB////+AAAAA
+ AAAAAAAAAAAP////gAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP////
+ AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAA
+ B////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////gAAAAAAAAAA
+ AAAAAAf///4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAA
+ AAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///+
+ AAAAAAAAAAAAAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAA
+ B////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAD////wAAAAAAAAAA
+ AAAAAA////8AAAAAAAAAAAAAAAAP////gAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAA////+AAAAA
+ AAAAAAAAAAAf////gAAAAAAAAAAAAAAAH////8AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAA/////
+ wAAAAAAAAAAAAAAAP////+AAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAAB/////8AAAAAAAAAAAAAAA
+ f/////AAAAAAAAAAAAAAAP/////4AAAAAAAAAAAAAAD/////+AAAAAAAAAAAAAAB//////wAAAAAAAAA
+ AAAAAf/////8AAAAAAAAAAAAAAP//////gAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAB///////AAAA
+ AAAAAAAAAA///////4AAAAAAAAAAAAAf//////+AAAAAAAAAAAAAH///////wAAAAAAAAAAAAD//////
+ /+AAAAAAAAAAAAB////////wAAAAAAAAAAAA////////+AAAAAAAAAAAAf////////wAAAAAAAAAAAP/
+ ///////+AAAAAAAAAAAH/////////wAAAAAAAAAAD/////////+AAAAAAAAAAB//////////4AAAAAAA
+ AAB///////////AAAAAAAAAA///////////4AAAAAAAAA////////////gAAAAAAAAf///////////8A
+ AAAAAAAf////////////4AAAAAAAf/////////////AAAAAAAf/////////////+AAAAAA//////////
+ /////8AAAAB////////////////4AAAH/////////////////8AA////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAABgAAAAkAAAAKAAAACwAAAAoAAAAJAAAABwAA
+ AAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACwAAABcAAAAkAAAAMAAAADoAAABBAAAARAAA
+ AEQAAABCAAAAPQAAADUAAAArAAAAIQAAABYAAAAMAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAaAAAAMwAAAE4AAABoAAAAfgMD
+ A5AHBweeDg4OqAsKCqoNDQurBAQEpQICAp0AAACSAAAAgQAAAGwAAABVAAAAPQAAACgAAAAXAAAACQAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACAAAACIAAABIAAAAcBkZ
+ GJ49OzrHW1hV429tavOCfXn9hYB8/4J+ev+BfXn/gn56/4eCfv96d3P7a2dl8lJQTuQ3NDPRDQsLtAAA
+ AJgAAAB3AAAAUgAAADMAAAAbAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAA
+ AEoODQ2EREJBx3JvbfGDf3z/gX57/4aCfv+Lh4P/joqH/5GNif+Uj4v/lZGN/5aRjf+VkY3/ko6K/46K
+ h/+IhIH/g398/4aCf/9lYV7uOTc11AMDA6wAAACGAAAAVwAAADIAAAAWAAAABAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAEAAAAMAAAAORIREX9SUE7RgHt4/YOAff+Kh4T/kY2K/5iUkP+gm5b/p6Gb/6uln/+uqKP/sKqk/7Gr
+ pf+xq6X/sKqk/66oo/+rpaD/p6Kd/6Gdmf+alpL/kI2J/4eEgP96d3P5Pz492gUFBa4AAACAAAAATAAA
+ ACUAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAEAAAAXAwMDV0VCQb58eXX7hoOA/5OPjP+ZlZL/op2Z/6ymoP+yrKf/t7Gr/7q0
+ r/+/ubT/w724/8bBu//Iwr3/yMO+/8fDvf/Gwbz/xL+6/8G8tv+7trL/tK+q/6umo/+inpr/lpOP/4qG
+ gv94dHH3LSsq0AAAAKEAAABnAAAAMgAAAA8AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAeGRgYeW1qZeeCfnr/mJWS/6Kem/+moZ3/sKul/7aw
+ q/+8trD/xb+6/87Iw//Uz8r/2NPO/9rV0P/b19L/29fS/9zX0v/a1dH/2dTP/9fSzf/Tz8n/0MvG/8vH
+ wv/Hwr3/vbi0/6+ppf+hnZn/lZGN/4uGgv9ZVlToBgYGtAAAAHoAAAA7AAAAEgAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAgLSwrkXx4dPqKh4P/qaaj/6qm
+ o/+wq6X/trGr/7+5s//LxsD/1tDL/9vW0f/d2NT/39rW/+Hc1//i3dn/497a/+Tf2v/k39r/5N/a/+Tf
+ 2v/j3tj/4dzW/93Y0//Z1M//08/J/87JxP/JxL//vriz/6ynov+cmJT/jYmF/3VxbvUUFBPBAAAAhAAA
+ AD4AAAASAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAcODc1mn14
+ df2TkIz/s7Ct/6+rpv+1r6n/vLaw/8rEvv/W0cz/3NfS/9/a1v/i3Nj/5N/b/+bh3P/o497/6uXg/+rm
+ 4f/r5+L/7Ofi/+zn4v/r5+L/6+bh/+rl4P/o5N7/5eHb/+Hc1//b1tH/087J/83Hw//Hwbz/trGr/6Oe
+ mv+Sjor/gXt3+RkZGcUAAACFAAAAPAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAASNzY1kn56dv6XlZH/t7Sy/7Otqf+3sav/wry2/9LNyP/b1tH/39rV/+Pd2f/m4dz/6eTf/+vn
+ 4v/t6eT/7+rm//Hr5//x7Oj/8u3p//Lt6f/y7en/8u3o//Hs6P/w6+f/7+rm/+7p5P/r5uL/6OPe/+Ld
+ 2P/Z1dD/0cvG/8nEvv++t7L/qaSe/5SQjP+Cfnr6GRkYxAAAAH4AAAAzAAAACAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAILCsqdX14df2WlJD/ubaz/7Swqv+4sqz/x8G7/9fSzP/d2NP/4tzY/+bg
+ 3P/p5eD/7Ojj/+/q5v/x7Oj/8+3p//Tu6v/07+r/9O/q//Tv6v/07+r/9O/q//Tv6v/07+r/9O7q//Pu
+ 6v/y7ej/8ezn/+/q5v/s5+P/5+Ld/9/Z1f/Uz8r/ysW//8C6s/+sp6H/lZGM/357ePgPDw66AAAAbgAA
+ ACQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFRUUQnp2cvSQjYr/trSx/7Swqv+5s63/ycO+/9nU
+ zv/f2tX/5N7a/+jj3v/r5+P/7+rm//Ls6P/z7un/9O/q//Tv6v/07+v/9PDr//Tw6//08Ov/9PDr//Tv
+ 6//07+r/9O/q//Tv6v/07+r/9O/q//Pu6v/y7en/8ezn/+/q5f/q5eH/4t3Y/9bRzP/Lxb//wLmz/6yn
+ ov+Tjor/cm5q8AAAAKgAAABUAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEW5rZ9aHg4D/sa6s/7Sv
+ qv+4sqz/ycO9/9nUzv/f2tX/5d/b/+nk3//t6OT/8evn//Pt6f/07+r/9O/r//Tw6//18Ov/9fDr//Xw
+ 6//18Oz/9fDs//Xw7P/18Ov/9fDr//Xw6//08Ov/9O/r//Tv6v/07+r/9O7q//Pu6v/y7ej/8Ovm/+zn
+ 4v/k39r/19LM/8rEvv+9t7D/qaWg/5GNif9IR0TcAAAAjAAAADQAAAAFAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0JA
+ P4N/e3f/paKf/7Kuqv+3sav/xsC6/9jTzf/f2tX/5d/b/+rl4f/u6eX/8u3o//Pu6f/07+r/9fDr//Xw
+ 6//18Oz/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18Oz/9fDs//Xw6//08Ov/9O/q//Tv
+ 6v/07+r/8+7q//Lt6f/x7Of/7Ofj/+Pf2f/Vz8r/yMK8/7qzrf+jnpv/jYmG/hUVFbwAAABkAAAAFwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAsLCyB7dnLxk5CM/66qpv+2sKv/wbq0/9bQyv/e2dT/5d/b/+rl4f/v6uX/8u3o//Pu
+ 6f/q5uH/4NzZ/9jV0v/Rzs3/zszK/8zKyP/Mysj/z83L/9PRz//a19T/4+Dd/+7q5v/18ez/9fHs//Xx
+ 7P/18Oz/9fDs//Xw6//08Ov/9O/q//Tv6v/z7ur/8+7p//Hs5//s5+L/4t3X/9HLxf/Fvrj/tK6q/5mV
+ kv9nZGPrAAAAlAAAADcAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJPTkuVgn56/6Ognf+yraj/u7Wu/9DLxf/c2NL/493Z/+nk
+ 4P/u6eX/497a/9DNy/+/vr3/vr2+/7+/v//Hw7//ycOy/8nApP/Jvp7/yr+e/8rBpf/KxLX/x8TB/8LC
+ w//BwMD/ysnI/9rX1P/s6eT/9fHs//Xx7P/18Oz/9fDr//Tw6//07+r/9O/q//Pu6v/z7un/8ezn/+rm
+ 4f/e2NL/zcfA/764sv+rpqP/lJCM/yEgIMEAAABhAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoXgHx385GNiv+ppaH/t7Gr/8fB
+ u//a1c//4dzX/+ji3v/b19T/wsC+/7m5uf/EwLj/xrSJ/8quYf/Nq0L/zqow/86qLf/RrzH/0rEy/9Ox
+ Mv/Rry3/z6sq/9CuMP/Rskn/zrdt/87BnP/JxsT/wL/A/83Lyv/o5OD/9fHs//Xw7P/18Ov/9PDr//Tv
+ 6v/07+r/8+7q//Pu6f/w6+b/5+Ld/9bQyv/Iwbr/trGt/52Zlv9lY2HpAAAAigAAACkAAAABAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQkE+cn98
+ eP+bmJT/sq2o/722sP/Uzsj/3tnU/9/a1v/CwL7/t7a2/720pf+9nF3/vI8o/8ObKf/LqC3/0a8x/9Wz
+ NP/Ztjf/27k5/9y6Of/cuTX/27k1/9u5NP/auDT/2bcz/9a1Mf/SsC7/zq03/823cv/Jw7X/v7+//8/N
+ y//t6eX/9fDs//Xw6//07+v/9O/q//Tu6v/z7un/8u3o/+3o4//h29X/zsfB/7+5s/+rp6P/ko6K/g4O
+ Dq4AAABIAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAmtoZMeIhYH/pJ+c/7exq//Hwbv/2tXP/9POy/+0srL/ubay/62RY/+ndB3/sX4g/7iJ
+ I/+9kSb/xJ0p/8qnLf/RrzH/1rU1/9u4N//dujf/3rs2/9+8Nv/fvDf/3rs2/968N//duzX/27k0/9i2
+ Mv/Usi//zaov/820cP/HxLz/wcDA/9zZ1v/18Oz/9fDr//Tv6v/07+r/8+7q//Pu6f/x7Of/6OPd/9bQ
+ yf/Hwbr/tK+r/5qWkv9FQ0LVAAAAZwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDRiFgXz9kIyJ/62opP+6tK7/0szF/8jEwP+sq6z/r6ac/4Vg
+ Kv+EYCv/mnxT/6SLav+oj23/qoxg/6mBQP+0hCL/xaAq/8+uMP/XtjP/27kz/967Nv/fvDf/3703/9+9
+ N//fvTf/37w2/968Nv/dujX/27gz/9e0Mf/Sry7/y6c1/8m4kf/BwMH/0M7N//Pu6f/08Ov/9O/q//Tu
+ 6v/z7un/8+3p/+7p4//e2NL/zcbA/7u2sf+koJz/b2xp7gAAAIQAAAAdAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2NDNZf3t3/5iUkP+zrqn/wbq0/7+7
+ tv+mpaX/mZKL/4R0Y/+ppKH/xMPE/8nIyP/Qzs3/0dDP/87Nzf/Nzc3/wbq3/7WWav/CmSn/0rAu/9m4
+ Mv/duzT/3rw1/9+9Nv/fvTb/3702/9+9Nv/evDb/3rs1/966Nf/buDP/2LQx/9OwLv/Koyf/yK1r/8TD
+ wv/Oy8r/9O/q//Tv6v/07+r/8+7q//Pu6f/x7Of/5d/Z/9LKxP/BvLb/q6ej/5aRjf0FBASbAAAALgAA
+ AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUlFOkoJ+
+ e/+gnJj/t7Gs/8fAuv+WlZT/o6Gg/6yqqP/DwsL/2NbT/+vn4//07+r/9fHs//Xx7P/18ez/7+vo/9jW
+ 1f/Q0ND/y8C2/8unRv/YtzH/3bs0/9++Nv/fvjb/3742/9+9Nv/fvTf/3rw0/967Nf/dujT/3Lkz/9u3
+ Mv/ZtDD/068t/8igJv/Dp2b/w8PD/9jV0//07+v/9O/q//Pu6v/z7un/8+3o/+rk3//W0Mn/x8G7/7Gs
+ qP+ZlZD/JyUltwAAAD4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAGpnZL+HhH//pqKe/7mzrf/PyML/vbq4/7Kxsf/PzMr/7unl//Tv6v/18Ov/9fDs//Xx
+ 7P/18ez/9fHt/+/r5//My8v/zL6l/86uV//WtUP/2rgx/927M//evDT/3700/9++NP/evTT/3r00/968
+ NP/duzP/3boz/9y5Mv/btzH/2bQw/9exLv/Qqyv/w5ci/8Ouh//CwcH/6OXg//Tv6v/07ur/8+7p//Pu
+ 6f/t6OL/29TO/8zFv/+2sq3/nJeT/0E/PcoAAABKAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxbGrTi4eE/6umov+7ta//083G/9/a1f/n4t3/7+rm//Pu
+ 6f/07+r/9fDr//Xw7P/18ez/9fHs//Xx7f/j4N7/zc3N/8CXTv/Mpyj/1rIt/9q4MP/duzP/3rwz/9+9
+ NP/evDP/3r0z/968M//dvDP/3bsy/9y5Mf/btzD/2rUv/9m0L//Ysi//06ws/8ujJ/+/jyr/xcC4/87M
+ y//07+r/9O7q//Pu6v/z7un/7+rk/9/Y0f/OyMH/urWx/5+blv9VUlDWAAAATwAAAAMAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3Nw342Khv+tqaX/vrix/9XQ
+ yf/h29b/6eTf/+/q5v/07+r/9O/q//Xw6//18ez/9fHs//Lu6f/X1dP/z8/P/9bSzv/SvZj/0qw1/9i0
+ Lv/cuDD/3boy/927Mv/euzH/3rwz/968Mv/duzP/3bkx/9y4MP/btzD/2rUv/9q0Lv/Ysi7/17At/9Wu
+ LP/QqCn/x5kk/8Okbv/JyMj/2NXS/+Hd2v/v6ub/8+7p//Hr5f/h2tT/0crE/7y4s/+hnJj/VFJP1wAA
+ AFAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd0
+ cOCQjIj/r6qm/7+5s//W0Mr/4tzX/+rl4P/x6+f/9O/q//Tv6//18Ov/9fHs//Tw6//T0dD/zcvI/8ak
+ av/Flib/z6Yl/9WwLP/ZtC7/27cv/9y5MP/duTD/3bow/966Mf/euzH/3bkw/9y5MP/bti//27Yv/9m0
+ Lv/Ysi3/17At/9avK//VrCv/0qkp/8ygJv/Cky7/z8Wv/8vGvv/Hxsb/xMPD/9rW1P/x6+b/5N3X/9TN
+ x/++ubX/op6Z/1NST9cAAABQAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAB7dnPjkY2K/6+qpv/Bu7T/1tHK/+Ld2P/q5uH/8ezn//Tv6v/07+v/9fDr//Xx
+ 7P/p5eH/y8rK/7WWdf+7gxn/yqAk/9KrKf/XsSz/2bQu/9q1Lv/ati//27gv/9u4L//cuC//3Lgv/9u3
+ L//bti//27Uv/9q0Lv/Ysi3/17Ar/9evLP/VrSr/06op/9GnKP/NoSn/yJgr/7+KK/+wdij/nHNB/6mY
+ iP/FxMT/0tDN/+bf2f/X0sv/xMC7/6Ofmv9VU1HXAAAATgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3Jw4JGNiv+vqqX/wbu1/9bRy//j3dj/6ubh//Hs
+ 6P/07+r/9O/q//Xw6//18ez/6ebi/9HQ0P/T09L/yq+N/86kNv/TrCn/1q8q/9ixLP/XsSv/17Er/9ew
+ K//Ysiz/2LIs/9mzLP/ZtC3/2bMt/9iyLP/YsSv/1q8r/9auKv/UrCr/1asq/9KoKv/Rpy//zqM2/8iZ
+ Of+/kkn/wKaL/9PPyv/T0tP/zMvL/9LQzv/m4Nr/2tTO/8fDv/+ppKD/VFBP1QAAAEgAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHl0ct+QjIj/rqmk/8G6
+ tf/W0Mr/493Y/+rm4f/x7Oj/9O/q//Tv6v/18Ov/7unl/9DPz//Oxbf/wZFD/8WSHv/OoyX/0qkn/9Or
+ KP/TrCj/0Kgm/8+mJf/OoyT/zqMk/9CoJv/UrSn/1a4p/9ewK//Wryr/1q4q/9SrKf/Tqin/06op/9Kp
+ LP/SqTP/0KY8/8qcPf/AjTr/q3xD/6GAWf+VeV3/qJuR/9DQ0P/e2tf/5uDb/9vV0P/IxMH/rKik/1RS
+ T88AAAA8AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABybmzMjoqG/6yno/+/urP/083H/+Hc1//q5eH/8ezn//Tv6v/07+r/9fDr/9nW1P/My8j/rnQo/7uC
+ G//GlSH/zaEk/82iJP/MoCT/y54j/8aUH//Bihz/uXwa/8Sgdv/Bhxr/zKAj/9GqJv/Tqyj/1Kwo/9Ss
+ Kf/SqSj/0acn/9GpLf/Sqzj/0Kc//8ygQP/ElED/tYte/9ra2v/b2tr/2tra/9HR0f/Ozc3/29jV/+Xg
+ 2v/b19H/ycbD/6qlov9QTUvDAAAAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAXltZpImFgf+ppKD/vrex/9HLxf/g29X/6uTg//Dr5//07ur/9O/q//Tw
+ 6//T0dD/xr66/6yGXv+7iT7/wo0e/8WTIP/EkB//wIod/7uBGv+vcBT/pHQ8/8i7s//g39//uYhS/8KL
+ Hf/KnSL/z6Ul/9GoJv/RqCf/0KUn/9GnLv/Sqjr/0ahA/82iQv/GlkP/uodB/7+sn//b2tr/8Ozp//Ht
+ 6v/s6eb/6efk/+/q5v/l39r/3NfT/8nGw/+loJz/NDIyowAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENBP22EgX3/pKCc/7q0rv/Nx8H/3djT/+jj
+ 3v/v6ub/8+7q//Tv6v/07+v/2NbU/9TT0//EqYf/tXgh/7d7Gf+3ehj/s3QW/6NjEP+dcD//uKic/9jX
+ 1//i4N//39/e/8u9tf+ubRP/wosc/8mZIf/MnyT/zaEm/86jLf/PpDr/zqJA/8ufQv/GlkT/vYlE/6mD
+ Xv/X19f/5+Xk//fz7//28u//9vLv//Xx7f/w6+b/5N/a/9zY1P/JxsP/oZyY/xIREXMAAAAKAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiISAvhIF9/52Z
+ lv+1r6n/ycK8/9nTzv/m4dz/7unl//Lt6f/07+r/6OPf/87Nzf+ulXn/lloO/6FiEf+hYhD/kFgZ/6GA
+ X//BubT/2dnZ/93c2//t6uf/9vPu/+zq5v/b2tr/q4Je/7Z4Fv/BiRz/x5Ui/8qcKv/NoTn/zJ8//8iZ
+ Qv/EkkT/u4hE/6V9Uv/Pysj/4eDg//Xx7v/38/D/9/Pw//fz8P/18e3/7ejk/+Xg3P/b19T/w8C8/4qF
+ gfEBAQFFAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAgEBAoB9eeWVko//rqik/8W+uP/Uzsj/497Z/+zn4//x7Oj/9O7q/9fV0v/Kx8b/bUAN/29A
+ DP+Makj/q5yQ/9PS0v/c29v/4+Hg/+3q5//28u7/9vLu//by7v/28u7/4d/e/9LPzf+aYCH/tncX/7+F
+ Iv/HlTT/yJY8/8WTQP/Ai0L/sn9D/6eJav/Tz87/4+Lh//Pw7f/39PH/9/Tx//f08f/38/D/8/Dr/+vn
+ 4v/l4t7/2tjV/7Ovq/9gXVrFAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVUlCPi4eE/6ahnf+/uLL/zsjC/93Z0//q5eD/8ezn//Pu
+ 6f/U0c//vrq5/5aLhP/Jx8f/19fX/9va2f/o5uP/8e3p//Xx7f/18e3/9fHu//Xy7v/28u7/9vLu//Hu
+ 6v/c29v/vrCo/5ldGP+2eSj/v4g4/72KRf+1jF3/uJyA/8i/uv/i4uL/5+bl//Tx7v/49PH/+PTx//j0
+ 8f/49PH/9vPw//Ht6f/q5uL/5eLf/9jW0/+inZj/KyopfgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEgL4eEgP6dmZb/ta+p/8nC
+ vP/X0cz/5eDb/+7p5P/y7ej/6eXi/9PS0f/W1dT/5OLf/+/q5v/18ez/9fHs//Xx7P/18ez/9fHt//Xx
+ 7f/18e3/9fHt//Xx7f/18e3/7Onm/9ra2f+yopj/lWQv/6RwNf+rf0f/tpd1/8e5q//g4OD/5OPi//f0
+ 8f/49PH/+PXy//j18v/49fL/+PXy//Xy7v/u6uf/6ufj/+bk4v/Fw7//iYOA6gICAjIAAAACAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABraGW5kY6K/6mkn//DvLX/z8nD/97Z1P/q5eH/8ezn//Pu6f/07ur/9O/q//Tv6v/18Ov/9fDs//Xx
+ 7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7f/18e3/9fHt//Xx7f/q6OX/3Nzc/8C5tv+9s63/oYt3/7Wq
+ pP+4rqv/2NfW/+bk4//49fH/+PXy//j18v/49fL/+PXz//f08f/z7+z/7enm/+zq5//k4uD/pqGd/0pH
+ RJkAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKSgoPYqHhP+empb/trCq/8jCvP/W0Mv/5N/a/+7p5P/y7ej/8+7q//Tu
+ 6v/07+r/9O/q//Tw6//18Ov/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHs//Xx7P/18e3/9vLu//Dt
+ 6v/h4OD/4ODf/+Pi4v/i4uL/5eTk/+vp6P/28u//+PXy//j18//49fP/+fbz//j18//18u//8Ozp/+7r
+ 6P/v7uz/yMXC/46JhOwGBgYxAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpZWOwkIyJ/6einv/BurT/zMbA/9vW
+ 0f/o497/7+rl//Lt6P/z7ur/9O7q//Tv6v/07+r/9PDr//Xw6//18Oz/9fDs//Xx7P/18ez/9fHs//Xx
+ 7P/18ez/9fHt//by7//28+//9/Pw//Xx7v/y7+z/8u/s//Xy7//49PH/+PXy//j18//49vP/+fbz//n2
+ 8//39PH/8u/s/+/s6f/08vH/4+Hg/6Kdmf9CQD+GAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcWIImF
+ gPKZlZH/sKql/8bAuf/QysX/39rV/+rl4P/w6+b/8u3o//Pu6v/07ur/9O/q//Tv6v/07+r/9PDr//Xw
+ 6//18Ov/9fDs//Xw7P/18Oz/9fDs//bx7v/28u7/9vLu//fz7//38+//9/Pw//f08P/49PH/+PXy//j1
+ 8//49vP/+fb0//n29P/39fL/9PHu//Dt6v/08/H/8O7t/7Sxrf99eHXRAgICHQAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABFQ0JojomF/56alv+3sav/yMK7/9PNyP/h3Nf/6+bh//Hs5//y7ej/8+7p//Pu
+ 6v/07ur/9O/q//Tv6v/07+r/9O/r//Tw6//08Ov/9PDr//Tw6//18e3/9fLu//by7v/28u7/9/Pv//fz
+ 8P/39PH/+PTx//j18v/49fP/+fbz//n29P/39PL/9fLv//Hu6//18/H/9fTz/8fEwf+Yko71GxoaQwAA
+ AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAWRfXp+Piob/o5+a/7u1rv/Jw73/1M7J/+Hc
+ 1//r5eD/8Ovm//Lt6P/z7un/8+7q//Pu6v/07ur/9O/q//Tv6v/07+r/9O/q//Tv6v/08Ov/9fHs//bx
+ 7f/28u7/9vLu//fz7//38/D/9/Tx//j08f/49fL/+fXz//j28//39PH/9PHu//Hu6//18/H/9/b1/9LQ
+ zv+emJT+Ojg3bQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYIdXBtv5CM
+ h/+moZz/vLWv/8nEvf/Tzcn/39rV/+nk3//v6uX/8u3o//Pu6f/z7un/8+7p//Pu6v/z7ur/9O7q//Tu
+ 6v/07ur/9e/r//Xw7P/28e3/9vHu//by7//28/D/9/Pw//f08f/49PL/+PXy//f18f/28/D/8u/s//Dt
+ 6v/08/H/9vb1/9bT0f+gm5b/U1FOigAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAsLCg54c2/EkIyH/6WhnP+5s67/yMK8/9HLxv/b1tH/5uHc/+3o4v/x7Ob/8+7o//Pu
+ 6f/z7un/8+7p//Pu6f/z7un/8+7p//Tv6v/08Oz/9fHt//Xx7f/28u7/9vPv//fz8P/39PH/9/Tx//bz
+ 7//z8O3/8O3q/+/s6f/08vH/9PPy/8/Myv+fm5b/WVZUkAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKDXNwbLeQi4b/op2Z/7awq//Evrj/zsjD/9XR
+ zP/f29X/6OLd/+3o4//w6+b/8u3o//Pu6f/z7un/8+7p//Pu6f/07+v/9fDs//Xx7f/18e3/9vLu//by
+ 7//18u//9PHt//Lu6//v6+j/7enm/+3q5//y8O//7evq/8G+u/+emZT9UU5MgAAAAAcAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBW1hWipCL
+ h/6bl5P/r6ql/7y3sv/Iw77/0MzG/9fSzP/e2dT/5eDa/+rl4P/u6eP/8ezm//Lt5//z7ej/9O7p//Tv
+ 6//07+v/8+/r//Lv6v/w7On/7uvn/+zn5P/p5eL/6ebi/+rn5f/s6uj/29nX/62opf+Vko3uNTQyVgAA
+ AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAxMC5GhYF835SPi/+loZ3/s66q/725tP/Hwr7/z8nE/9POyf/Y0s3/3dfS/+Hb
+ 1v/j3tj/5d/a/+bh3P/o49//6OTf/+fi3v/m4d3/5eDc/+Tg2//j39v/4t7b/+Lf3f/b2df/vLi1/5+b
+ lv93c3C5FxcWJAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwlUUlCBkY6K9JiUkf+mop//sKyo/7iz
+ r/+/ubT/xb+6/8vFv//PycP/0cvF/9PMxv/Tzcb/1tDK/9nUz//a1M//2dTP/9fTz//X08//1tPQ/83L
+ yP+3tLH/oJyY/42Lhtw3NTRSAQEAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAP
+ DxRSUE59jYiF45iUkP+fm5f/qKSf/62oo/+xrKf/ta+q/7eyrP+5s67/urSu/7qzrv+8trD/wLu3/8G9
+ uf++u7f/trKu/6ain/+gnZn/g4B9yUE+PVwDAwMGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQI1NDNKZWJfnYmGgduemJT/m5aR/52Yk/+gm5f/oZyY/6Gd
+ mP+hnJj/oJqW/52YlP+dmJT/oJyX+oWBfstXVVOAIiEgLgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEhISGDY0
+ M0lOTEpzX1tZkF9cWZRlYl6dXlxZkl1aWIlGREJjLSwrOgcHBwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////8AD/
+ //////+AAB///////AAAB//////wAAAB/////+AAAAD/////gAAAAD////8AAAAAH////gAAAAAP///8
+ AAAAAAf///gAAAAAB///+AAAAAAD///wAAAAAAH//+AAAAAAAf//4AAAAAAA///AAAAAAAD//8AAAAAA
+ AH//gAAAAAAAf/+AAAAAAAA//4AAAAAAAD//AAAAAAAAP/8AAAAAAAA//wAAAAAAAB//AAAAAAAAH/8A
+ AAAAAAAf/wAAAAAAAB//AAAAAAAAH/8AAAAAAAAf/wAAAAAAAB//AAAAAAAAH/8AAAAAAAAf/wAAAAAA
+ AD//AAAAAAAAP/8AAAAAAAA//wAAAAAAAD//AAAAAAAAf/+AAAAAAAB//4AAAAAAAH//wAAAAAAA///A
+ AAAAAAD//+AAAAAAAf//4AAAAAAB///wAAAAAAP///AAAAAAB///+AAAAAAP///8AAAAAB////4AAAAA
+ P////wAAAAB/////wAAAAP/////gAAAD//////gAAA///////gAAP///////4AP/////////////////
+ /////////////////////////////////////////////////////////////ygAAAAwAAAAYAAAAAEA
+ IAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAYAAAAPAAAAGAAAAB8AAAAiAAAAIwAA
+ ACAAAAAZAAAAEAAAAAkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAXAAAAMwAAAFQAAABwBQQEhQkJ
+ B5MJCQiXBgYGlQEBAYwAAAB9AAAAZwAAAEwAAAAwAAAAGQAAAAgAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAIAEBAVMbGhqSQD89xmBe
+ WuZ2c2/3hIB9/oN/fP+DgHv/hYF9/4B9efxua2jzUlBO5DMxMMsJCQihAAAAdAAAAEUAAAAgAAAACAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABQEBARRNDMyrGtn
+ ZeuEgX7/iYaC/5GMif+YlI//npmU/6KdmP+kn5r/o56a/6Gcl/+cl5P/lZGN/4yJhf+Cfnz8U1FP5BgY
+ F7cAAAB8AAAAQAAAABYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAKSgn
+ JZNwbWrtiYaD/5SQjf+gm5f/q6Wg/7Ksp/+4sq3/vbiy/8G8t//Evrn/xL+5/8K9uP+/ubX/uLOv/7Gs
+ qP+loZ3/l5OQ/4iEgf5TUE/kCwsLqwAAAGQAAAAkAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAMHBwc9UlBNx4aDf/+dmpf/pqKe/7Grpf+6tK7/xb+6/9DKxf/X0s3/2tbR/9zY0//d2NP/3NfS/9vW
+ 0f/Y087/1M/K/87JxP/Hwr7/urWx/6ijn/+Wko3/fnl2+ScnJskAAAB8AAAALgAAAAYAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAw0NDUNnZGLfkY2K/62qpv+wq6b/urSu/8jDvf/W0cz/3djT/+Db1//j3tn/5eDb/+fi
+ 3f/o497/6OPe/+jj3v/m4t3/5N/a/+Db1v/Z1M//0czH/8jDvv+3sq3/oJuX/4uHg/48OjjWAAAAhAAA
+ AC4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABDQwMOGpoZOKYlJH/tLCt/7Wvqf/BvLb/1M/J/93Y0//i3Nj/5uHc/+nk
+ 4P/s5+P/7unl//Dr5//x7Of/8ezn//Hs5//w6+b/7unl/+zo4//p5N//497Y/9jUz//NyMP/wbu1/6ij
+ nv+Pi4b+QD872AAAAH8AAAAkAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYeZ2Nh15eUkP+3s7D/trGr/8fBvP/Z1M//4NvX/+bg
+ 3P/r5uH/7unl//Hs6P/z7un/9O7q//Tv6v/07+r/9O/q//Tv6v/07+r/8+7q//Lt6f/x7Of/7unl/+nk
+ 3//f2tX/0cvG/8S+t/+spqH/j4uH/jIyMc8AAABqAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQTkyojouH/7Sxrf+2sav/ycO9/9rW
+ 0P/i3Nj/6OPf/+3o5P/x7Of/8+7p//Tv6v/07+v/9PDr//Tw6//08Ov/9PDr//Tw6//07+r/9O/q//Tv
+ 6v/07ur/8u3p//Hs5//s6OP/4t3Y/9LNx//DvLb/qqWg/4uHg/wVFRW1AAAARgAAAAUAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUkI1CDf33+ramm/7Ww
+ qv/Hwbr/2tXQ/+Pd2f/p5OD/7+rm//Lt6P/07+r/9PDr//Xw6//18Oz/9fDs//Xx7P/18ez/9fHs//Xw
+ 7P/18Oz/9fDr//Tw6//07+r/9O/q//Pu6f/x7Oj/7unk/+Pe2f/Ry8X/v7mz/6Ofm/9tamjuAgICiAAA
+ AB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDC2tn
+ Y9OcmJX/sq2p/8C6tP/Y083/4tzY/+nk4P/v6ub/7ejj/+Dd2f/V09D/zszK/8rIx//Ix8b/ysjH/87M
+ yv/V0tD/3tvY/+zo5P/08Ov/9fHs//Xw7P/18Ov/9O/q//Tv6v/z7ur/8u3o/+7p5P/g29b/zMbA/7my
+ rv+ZlZL/MzIxyQAAAE4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAMzIwXoeDf/+ppaL/ubOu/9LMxv/g2tb/5+Le/97Z1v/IxsT/wL67/8S6of/ItoP/zLVx/862
+ ZP/Ptl//z7dg/862af/MuXz/yb2a/8jFvf/Kycj/3NnW//Ht6P/18Oz/9fDr//Tv6v/07+r/8+7q//Lt
+ 6P/s5+L/2tTO/8W/uP+sp6T/e3d08wICAoUAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAABAQEDaGRhxZSQjf+yraj/xr+5/9zW0f/d19T/wb++/7u1rf+9om3/wpo4/8ij
+ K//QrjH/1rQ0/9m3N//auDf/2rg0/9q3M//YtzP/1bMw/9GwNP/OtWH/yL2f/8TDwv/c2tf/9O/r//Xw
+ 6//07+r/9O7q//Pu6f/x7Of/5uHc/9DJw/+6tbD/nJiU/ygnJbsAAAA0AAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFRQlgn55+6Gdmf+5s63/083H/83Jxv+0srH/rJd2/6Ny
+ Iv+reR7/tIUi/7+UJv/JpCz/0rAy/9m3Nv/dujb/3rs2/968Nv/evDb/3bs2/9y5NP/YtjL/0q8u/82w
+ VP/Hvqj/ycfG/+vn4//08Ov/9O/q//Pu6v/z7un/7unk/9vVzv/Evrj/qaWh/11bWOMAAABaAAAABAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8Ojhqh4OA/6unov/Cu7X/wb26/6qn
+ pf+Ld1//loJn/62ilv+6tK7/u7St/7amkf+1lV7/wZkt/9OxMP/auDP/3rw2/969Nv/fvTb/3rw2/968
+ Nv/duzX/27cz/9azMP/NqS7/x7J5/8XDwv/n5N//9O/q//Tu6v/z7un/8ezn/+Xf2f/Nxr//s66q/4yI
+ hPkBAQF8AAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZVVOlj4uI/7Ot
+ qP+9t7L/n56e/6Gdmv/CwMD/2tfV/+rm4v/v7Of/7+vn/+nm4//S0dH/yb+1/8uqTv/ZuDL/3bw1/9+9
+ Nv/evTb/3702/968NP/duzT/3bo0/9q2Mf/Xsi//zKYp/8Spaf/FxMT/7enl//Tv6v/z7ur/8+3p/+vm
+ 4P/TzMb/vLey/52YlP8XFxedAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AABxbmnSlpKP/7exq//OyML/wL27/9HPzP/w6+f/9O/q//Xw7P/18ez/9fHs/+/r5//Lycj/yqti/9Sy
+ P//auDH/3bwz/969NP/evTT/3r00/968NP/dujL/3Lky/9q3MP/Ysy//1K4t/8edJf/Brof/z83L//Tv
+ 6v/z7ur/8+7p/+/p5P/Y0sv/wr23/6GdmP8zMzG2AAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAB3cnDinJiU/7q0rv/W0cr/5N7a/+3p5P/07ur/9O/r//Xw7P/18ez/8Ozo/9vY
+ 1//Qzcz/yKBF/9ayLf/cuDH/3bsy/968Mv/evDL/3rwy/926Mv/cuTH/27cw/9q1L//Ysi7/1q8s/8+n
+ KP/Bky//x8O+/+Pf3P/x7Oj/8+7p//Hr5f/c1c7/xsC6/6WhnP8/PTy/AAAAIAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7dnTon5uY/7y3sf/Y0s3/5uDc/+/q5v/07+r/9PDr//Xw
+ 7P/w7Oj/0M/O/8m2k//Lpkn/068z/9izLv/bty//3Lkw/9y5MP/duzH/3bkw/9y5Mf/bti//2rUu/9iy
+ Lf/Xryz/1a0r/9KpKf/JnCT/ya98/8rFvf/Ixsb/1dLQ/+7o5P/g2dL/ycO+/6ejnv9APTy/AAAAIAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7eHPpoZ2Z/764sv/Y083/5uHc//Dr
+ 5v/07+r/9PDr//Xw7P/j4N3/x8G8/7aDNf/LoSb/1a4r/9mzLf/ZtC3/2rUu/9u3L//bty7/27cu/9q1
+ Lv/atC3/2LIt/9avK//Wriv/1Ksp/9KnKf/MoCv/w5Ev/7F+PP+ojGv/vbey/83Lyf/i3Nb/z8rF/6qm
+ ov9APTy/AAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7d3TooJyY/764
+ sv/Y083/5+Hd//Dr5//07+r/9O/r//Pv6//Z19X/z8W3/8yqZf/Ppy7/1Kwp/9auKv/UrSn/06wo/9Or
+ KP/Vrin/1rAq/9iyLP/XsSv/1q4q/9WsKf/Tqij/06ks/9GnNP/Lnjr/v406/7KMXP+ynon/0M7M/9jV
+ 0//k3tj/0c3I/7Gtqf8+PTu5AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAB4dHDcnZmW/723sf/W0Mr/5uHc/+/r5v/07+r/9O/q/+Lf3P/IvrL/tXsi/8SRH//NoiX/zqMk/8yh
+ JP/HliD/wYob/8KWT//FkR7/z6Yl/9OrKP/UrCn/06so/9GnJ//RqS3/0ak6/82iP//Ckj7/v6aN/8/M
+ yv/NzMv/xMLB/9bU0v/j3tj/08/K/7CsqP89OzmoAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABjX1y0mJWR/7mzrf/Tzcf/5N/a/+/q5f/z7ur/9O/q/93b2P/DubD/u5Jg/7+I
+ Hv/Cjh7/v4cc/7d8GP+ociv/vaWP/97d3v+7i1D/xJAe/82iI//QpiX/0KYm/8+mLv/Rpzz/zqRB/8aW
+ Q/+yhEz/1tPS/+3q5//y7uv/7Onm/+/r5v/j3tn/09DM/6uno/8kIyKAAAAABQAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGREJ6kY2K/7OuqP/Ox8H/4dzX/+3o5P/z7un/9O/q/9fU
+ 0//AsJz/qWwd/65uFf+lZxP/onI6/7WgjP/V09L/5uXi/+jm5P/JvLP/sXMY/8SPHv/KmyP/zKAt/86i
+ PP/LnkH/xJRD/7SDRP/Bsqb/4+Hg//fz7//28+//9vLv/+/r5v/j39r/0s/M/6Ccl/wEBARHAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkIyI3ioaD/6umov/Hwbv/3NfS/+vm
+ 4f/y7ej/6uXi/8vJyP93Shf/gVMf/6KEZv/BuLL/3Nzb/+fk4v/z7+v/9vLu//Tx7f/e3dz/ropn/7V1
+ Fv/BiiT/yZg4/8eWP/+/jEL/rYBM/8Gypf/k4+L/9fLu//fz8f/38/D/9vLu/+3o5P/j4Nz/zcrH/3Ry
+ bdoAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMEeXZz2qCc
+ mP/AubP/1M7J/+fi3f/w6+b/5+Lf/8XCwf+rpKD/1tTU/+De3f/s6eb/9PDr//Xx7f/18e3/9fLu//Xy
+ 7v/u6+j/1tTU/51uP/+zeiz/vYg9/8Cccv/EsZ//2tjX/+nn5v/18u//+PTx//f08f/49PH/8/Ds/+vn
+ 4//j4d7/uray/0A+PJIAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAR0VDeJKPi/+zrqj/zMW//9/a1f/t6OT/8ezo/+bj4P/p5eL/8u3p//Xw7P/18ez/9fHs//Xx
+ 7P/18ez/9fHt//Xx7f/18e3/6ufl/9HOzf+fgmf/n3tV/6SGaP+1p53/397e//Xy7//49fH/+PTy//j1
+ 8v/39PH/8e3p/+vo5f/g3tz/mJSQ9AoKCjYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAADAwLEYR/fOujn5v/wry2/9TPyf/n4t3/8Ovm//Pu6f/07ur/9O/q//Tw
+ 6//18Ov/9fDs//Xx7P/18ez/9fHs//Xx7P/18ez/9fHt/+3r6P/f3t3/39/f/9jW1f/l5OT/7erp//j1
+ 8f/49fL/+PXz//j18//08e//7uvo/+7t6//Bvrv/U1FOoQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERCQXCSjov/saum/8nDvf/b1tH/6+bh//Hs
+ 5//z7un/9O7q//Tv6v/07+v/9fDr//Xw7P/18Oz/9fHs//Xx7P/18ez/9vLu//bz7//28u//9fHt//Pw
+ 7P/28vD/+PXx//j18v/49vP/+fbz//b08f/x7uv/8vDu/+Hf3f+RjorsCwsKKgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAV1c3DKnJeT/7u1
+ r//NyML/39rV/+zn4v/y7ej/8+7p//Pu6v/07+r/9O/q//Tv6v/08Ov/9PDr//Xw6//18Ov/9vHt//by
+ 7v/28u//9/Pv//f08P/49PH/+PXy//j18//59vP/9/Tx//Lw7f/y8O7/7+7t/62ppf45NzZvAAAAAwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAZGRgmhoJ/7KKdmf/AurP/z8rE/+Db1v/t5+L/8ezn//Pu6f/z7ur/8+7q//Tv6v/07+r/9O/q//Tv
+ 6v/08Ov/9fHs//by7f/28u7/9/Pw//fz8f/39PH/+PXy//j18//29PH/8u/t//Lw7v/08/L/vLi1/2Ng
+ XacAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAKikoQYuHg/WmoZz/wLq0/8/KxP/e2dT/6uXg//Dr5v/z7uj/8+7p//Pu
+ 6f/z7ur/8+7q//Tu6v/17+v/9fDt//Xx7v/28u//9vPv//f08f/49PL/9/Tx//Xy7//x7uv/8vDu//Pz
+ 8v+/vLn/dHFuvQUFBREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4tLEeLh4Pyo5+a/7y2sf/Mx8H/2dPO/+Xg
+ 2//t6OP/8ezn//Pu6f/z7un/8+7p//Pu6f/07+r/9fDs//Xx7f/28u7/9vPv//bz7//08e7/8e7q/+7r
+ 5//x7+3/7Ovq/7i1sv9zcG25CAgHEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIyE0gX553Z2Y
+ lP+1sKv/xb+6/9HMx//b1tH/5N/a/+vm4P/v6uX/8ezn//Lt6P/07ur/9O/r//Pw6//y7+v/8O3p/+3p
+ 5v/r5+P/6ufj/+zq6P/a2Nb/qqWi/V9cWZcEBAQLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAADAwMEV5bWJmUkIv8p6Of/7izr//Ev7v/zcjD/9TPyv/a1M//3tnT/+Db1v/j3tj/5eDc/+Xg
+ 2//j3tr/497Z/+Hd2P/f3Nr/19XS/7i0sv+MiYTeNDIxUAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJCM2bWpnsZmVkvuloZ3/r6um/7eyrf++ubP/w723/8a/
+ uf/HwLn/ycO9/87JxP/Py8b/zcnF/8K/vP+vrKn/kpCL5VBNS3kHBwcMAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYGCNUUU+CgHx5zZyX
+ k/yempX/o56Z/6WhnP+moZz/paCc/6Kdmf+inpn/mZSQ7G5raKo7OjhVBwYGCgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAoKCg0sKik9QT89YkhGQ3BKSEVzSEZDazc2NE8cGxokAQEBAgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAD///////8AAP///////wAA////////AAD///////8AAP//4AH//wAA//+AAD//AAD//gAAH/8AAP/4
+ AAAH/wAA//AAAAP/AAD/4AAAAf8AAP/AAAAA/wAA/4AAAAB/AAD/gAAAAH8AAP8AAAAAPwAA/wAAAAA/
+ AAD+AAAAAB8AAP4AAAAAHwAA/AAAAAAfAAD8AAAAAA8AAPwAAAAADwAA/AAAAAAPAAD8AAAAAA8AAPwA
+ AAAADwAA/AAAAAAPAAD8AAAAAA8AAPwAAAAADwAA/AAAAAAPAAD8AAAAAA8AAPwAAAAADwAA/AAAAAAf
+ AAD8AAAAAB8AAP4AAAAAPwAA/gAAAAA/AAD/AAAAAH8AAP8AAAAAfwAA/4AAAAD/AAD/wAAAAf8AAP/g
+ AAAD/wAA//AAAAf/AAD/+AAAD/8AAP/+AAA//wAA//+AAP//AAD///AH//8AAP///////wAA////////
+ AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAFAAAABQAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAACAAAAFAAAADYBAQFZBQUFcAYGBncCAgFwAAAAXQAAAD4AAAAdAAAACAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAABAAAAHBUUE21EQkDAaGVh6oJ/evuLh4P/jIeD/4mFgf50cW71U1BO4Scl
+ JbQBAQFuAAAAKwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAABhISEVdaVlXSioeE/pqWkv+oo57/sq2n/7m0r/+8t7H/u7Ww/7Ww
+ q/+qpqH/mZWR/3d0cfQrKSe9AAAAXgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkxLy6IiIWC+aWhnf+zraj/xb+5/9LOyP/b1tH/39rV/+Db
+ 1v/f2tX/29bR/9TPyv/JxL//trGs/5qVkf9ZVlPkBQUFfgAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFOzk4kZiUkf+zrqr/wby2/9bRzP/h3Nf/5uHd/+vm
+ 4f/t6OT/7+rl/+/q5f/t6eT/6+bh/+Tf2v/X0s3/xsC7/6einf9raWbuBgYGgQAAABIAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8tLG2Xk5D/trKt/8jDvf/d2NP/5uHd/+3o
+ 5P/y7Oj/9O7q//Tv6v/07+r/9O/q//Tv6v/z7un/8ezo/+zo4//f2tb/y8W//6umoP9lYV/oAAAAYwAA
+ AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAREBAmhoN/9bOvq//Iwrz/39nV/+nk
+ 4P/w6+f/9O/q//Xw6//18Oz/9fDs//Xw7P/18Oz/9fDr//Tw6//07+r/8+7p//Dr5v/i3dj/ycO9/6Wh
+ nP87OTjIAAAALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVUUamlop7/wLq0/93Y
+ 0v/p5OD/5eDd/9bU0f/Pzcr/zMe7/8vEs//Oyb3/0s/N/9vZ1v/s6OT/9fHs//Xw6//07+r/8+7q//Dr
+ 5v/e2dT/wbu1/4+LiPoICAh7AAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATEhIiioaC/LSu
+ qf/Uz8n/2tXS/8TAu/+9qX3/x6lQ/9CtNf/VsjP/17U0/9azMP/VtDj/0bda/8m6i//PzMf/6ubi//Xw
+ 6//07+r/8+7p/+7o4//Tzcf/r6qm/0JAP8gAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD89
+ O3ealpL/wry2/8jFwf+onIr/nHg//62IR/+0jzz/xZ8q/9a0NP/dujb/37w3/9+8Nv/duzX/2bcy/9Gw
+ P//HuJD/2NbT//Tv6v/07+r/8+3p/+Pd1//Bu7X/fHl38AAAAEYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAYl9duqikn/+3s67/pKCe/7Kspv/b2Nb/4+Dd/+Dd2//HvbL/y6xV/9u5M//evTb/3702/968
+ Nv/duzX/2rcy/9KtLf/Grm7/19XS//Tv6v/z7un/7Ofi/8zGv/+jnpr/CwsKcAAAAAEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAB7eHPksayn/8/Kxf/V0s//8u3p//Xw6//18ez/7+vn/8m7o//Rrzz/3Loy/969
+ NP/evTP/3rw0/9y6Mv/btzD/2LIv/8ykKP/Cr4r/6OTg//Pu6v/x6+b/1c7I/6umof8mJCSOAAAAAQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ/e++2saz/29bQ/+zn4//07+r/9fDs/+vo5P/OxbX/z7Ns/9ax
+ L//cuDD/3box/967Mf/cuTH/27cw/9m0Lv/XsCz/06oq/8acOf/PysL/1tTS/+zm4v/a1M3/r6um/yop
+ KJMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhYF98Liyrf/c19H/7unk//Tv6v/18Oz/29nX/8On
+ e//Ppyv/17Es/9mzLf/ZtC3/2rUu/9q1Lv/Zsy3/17Ar/9WtKv/SqCr/y50x/7uNSv+7q5n/zczK/9/Z
+ 0/+1sa3/KykokAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfnvqtrGs/9vV0P/u6eT/9O/q/+zo
+ 5P/GtZ3/wo4n/86kJf/PpSb/yZsi/8aYNv/MniP/1Kwo/9WtKf/SqSj/0qku/8+lO//BkkX/wKyU/7qw
+ pv/V1NL/4NvV/7q2sv8pKCd+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtoZcSxrKf/1tHL/+zn
+ 4v/07ur/5eHe/8KwnP+6giX/vIQb/693If+4mHH/2tbT/72PTv/JmSH/zqQl/8+lL//PpT//xZZD/76j
+ hf/q5+X/8u7r/+/r5//g29f/trKu/xIREU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASkhGhaWg
+ nP/OyMP/6eTf//Pu6f/V09H/iFwo/55yPv+4oYn/2tfV/+3q5//z8Oz/zsO5/7J2G//Gkyj/yZo9/7+N
+ Qv+2l3P/4d/d//bz8P/38/D/8Ozo/+Dc2f+XlJHtAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAdHRwvlZKO/8K8tv/h29b/8ezn/9PQz//Gwr//5ePg//Ht6f/18e3/9fHt//Xy7v/s6eb/uaKM/6t1
+ Mf+1i1f/yr2x/+no5v/38/D/+PTy//fz8P/t6eX/2tjV/1ZTUaYAAAADAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAABraWa9sKql/9PNx//r5uH/8+3p//Tv6v/18Ov/9fDs//Xx7P/18ez/9fHs//Xx
+ 7P/r6Ob/z8vI/8a+uP/Y1dP/8/Dt//j18v/49fP/9PDt/+3r6P+3s7D6FBMTNwAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfHjSVkY38wLq0/9zX0v/v6uX/8+7p//Tv6v/07+v/9fDr//Xw
+ 7P/18ez/9fHt//by7//28+//9PHu//fz8P/49fP/+fbz//b08f/x7+z/39za/1lWVJ0AAAADAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1LSoKinZj/x8G7/+Db1v/v6uX/8+7p//Tu
+ 6v/07+r/9O/q//Tv6v/18Oz/9vLt//by7//38/D/+PXy//j18//39PH/8vDt/+3r6f+NiYfYBwcGEwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIBAmJfXKSmoZz/x8K8/93Y
+ 0//t6OL/8u3o//Pu6f/z7ur/8+7q//Tw7P/18e7/9vLv//f08P/39PH/9PHu//Hv7P/r6uj/m5eU4xUU
+ FCcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMCA1ZV
+ UpGhnJj/v7q1/9POyf/i3dj/7Ofi//Hs5//z7ej/9PDq//Tw7P/08Oz/8e3p/+3p5v/s6eb/2dfV/4qH
+ g9AUFBMjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAC8uLEuHhH/dq6ej/8C6tv/LxsH/1dDK/9vVz//e2NP/4dvW/9/a1f/d2dX/0s/M/7Gu
+ q/ZTUU+DBgYGCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAU4NjVYc3BuuZ6Zlvanop3/rKei/62oo/+uqaT/rqqm/o6K
+ htJRT019ERAQGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUEBiEgHy8vLi1JMS8uTCko
+ JjsNDQwRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////wP///gA///gAD//wAAf/4AAD/8AAAf/AAAD/gA
+ AA/wAAAH8AAAB/AAAAfwAAAD8AAAA/AAAAPwAAAD8AAAB/AAAAfwAAAH8AAAB/gAAA/4AAAP/AAAH/wA
+ AD/+AAB//4AA///AA///+B//////////////////KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAASAgEBMwICAjwAAAAnAAAACQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBBc+PTuWe3d06p2YlP6jnpr/iYaC9U1M
+ ScULCgpTAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8ODiiAfnngvLey/9fSzf/k39v/5+Ld/+Hd
+ 2P/OycT/mJOP+B4dHIEAAAAFAAAAAAAAAAAAAAAAAAAAAAQEBAqAfHjYycS//+fi3v/y7ej/9PDr//Xw
+ 6//07+r/8ezn/9/a1f+empX5Dw4OWAAAAAAAAAAAAAAAAAAAAAA9Ozpyu7ax/9nU0P/QwZ//0L17/9G9
+ df/VxY3/3tjJ//Lt6f/z7en/2NLN/2FgXc8AAAAJAAAAAAAAAAAAAAAAeXZyzLm1sf+0ppL/ybWP/8uv
+ Wf/duzX/3rw2/9i2Nv/OuoD/7ejk/+3o4/+qpaD7AwMDLQAAAAAAAAAAAAAAAJiUkPTb1tL/9O/r/+fi
+ 2//Qs17/3Loy/927Mv/btzD/06wr/8++mf/q5eH/wr23/xQTE0kAAAAAAAAAAAAAAACcl5T25d/a//Lu
+ 6f/JsYb/0ago/9CnLP/VrSr/1q4q/9KpL//BmlX/xr+3/8vHwv8VFBREAAAAAAAAAAAAAAAAg3980t7Z
+ 1P/o5OD/qYBK/7+dZv/d0sb/wZhQ/8udLv/CmE7/4NfO//Lu6v/Cvrv6BAQEGgAAAAAAAAAAAAAAAEhG
+ RHvJxL7/6OTg/+Xh3f/08Ov/9fHt/+HZ0f+9ooL/39rW//j08v/x7uv/fn15tQAAAAEAAAAAAAAAAAAA
+ AAAICAgNkY2I393X0v/y7ej/9O/q//Xw6//28e3/9vLv//j18v/28/H/0dDO9RgXFy0AAAAAAAAAAAAA
+ AAAAAAAAAAAAABkZGCqYlY/j19LN/+3o4//z7ej/9fDs//Tx7f/x7uv/0M3L8zEwL0sAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAADAwLE1xZV46nop/rwbu2/8bBvP++urXzeXd1oxYWFSMAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAhQUEx4WFhUiAwMDBAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD//wAA+B8AAPAHAADgAwAAwAMAAMABAADAAQAAwAEAAMABAADAAQAAwAEAAMAD
+ AADgBwAA8A8AAPw/AAD//wAA
+
+
+
+ 298, 17
+
+
+ 469, 17
+
+
+ 673, 17
+
+
\ No newline at end of file
diff --git a/Form1.vb b/Form1.vb
new file mode 100644
index 0000000..1572c5c
--- /dev/null
+++ b/Form1.vb
@@ -0,0 +1,3624 @@
+Imports System.IO
+Imports System.Reflection.Emit
+Imports System.Threading
+Imports System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock
+Imports System.Text
+Imports FlexCell
+Imports Newtonsoft.Json
+Imports System.Data.Common
+Imports System.Data.SQLite
+Imports System.Net
+
+Public Class Form1
+
+#Region "初始化"
+
+ '''
+ ''' 项目加载事件
+ '''
+ '''
+ '''
+ Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
+
+ Me.Text += "(" & Application.ProductVersion & ")"
+ If Not String.IsNullOrEmpty(My.Settings.SerialPortName) Then
+ My.Settings.Reload()
+ ComboBox8.Text = My.Settings.SerialPortName
+ ToolStripTextBox1.Text = My.Settings.SInTime
+ End If
+
+ '将 和执行文件同目录的CommandSetDic.flx文件拷贝到 C盘C: \NT2406_Tool 下
+ '判断C: \NT2406_Tool 存不存在
+ If Not IO.Directory.Exists(FileCPatrh) Then
+ IO.Directory.CreateDirectory(FileCPatrh)
+ End If
+ ' 判断文件是否存在($"{Application.StartupPath }\CommandSetDic.flx")
+ If IO.File.Exists($"{Application.StartupPath }\CommandSetDic.flx") Then
+ '判断文件是否存在
+ If IO.File.Exists($"{FileCPatrh}\CommandSetDic.flx") Then
+
+ Else
+ '文件拷贝到C: \NT2406_Tool 下
+ IO.File.Copy($"{Application.StartupPath }\CommandSetDic.flx", $"{FileCPatrh}\CommandSetDic.flx", True)
+ End If
+
+ Else
+ MessageBox.Show("CommandSetDic.flx 文件损坏")
+ Me.Close()
+ End If
+
+ '(FileCPatrh & "\CommandSetDic.flx"
+
+ InitSerialPortBaud()
+
+ Grid_Format_initial()
+
+ Show_Device_Setinfo_Info()
+
+ ClearDeviceform()
+ InitGrid_table()
+ InitLoadProcessTable()
+ InitCommandSetDic()
+ ToolStripButton2.PerformClick()
+ Timer2.Start()
+ End Sub
+
+
+#End Region
+
+
+#Region "串口通信"
+
+ '''
+ ''' 当前时间
+ '''
+ Private _nowTime As Date
+
+ '''
+ ''' 最后时间
+ '''
+ Private _lastTime As Date
+
+ '''
+ ''' 时间间隔
+ '''
+ Private _timeInterbval As TimeSpan
+
+ '''
+ ''' 接收数据偏移量
+ '''
+ Private _recvOffset As Integer
+
+ '''
+ ''' 接收数据缓存包
+ '''
+ Private _recvBuffer(254) As Byte
+
+ '''
+ ''' 串口波特率
+ '''
+ Private _baudItme() As String = {"4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200", "256000", "512000", "600000", "750000"}
+
+ Public DbConnString As String = "Server=blv-cloud-db.mysql.rds.aliyuncs.com;Port=3307;Database=blv_productionlinetest;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;"
+
+ Enum TableEnum
+ ID = 0
+ 测试时间
+ 测试结果
+ 测试信息
+ RTC时间
+ RTC星期
+ 校准结果
+ 稳定消抖时间_秒
+ 背景值滤波长度_秒
+ 传感器极大值
+ 传感器极小值
+ 预热时间_分
+ ADC_LEV_10
+ ADC_LEV_0
+ 触发_消抖次数
+ 释放_消抖次数
+ 稳定阈值
+ 报警点提前量
+ 校准超时_秒
+ 校准最小值_LEV_0
+ 校准最小值_LEV_10
+ 校准最小值_差值
+ 校准最大值_LEV_0
+ 校准最大值_LEV_10
+ 校准最大值_差值
+ 泄露恢复正常_条件1
+ 泄露恢复正常_条件2
+ 泄露恢复正常_条件1消抖时间_秒
+ 泄露恢复正常_条件2消抖时间_分
+ 设备生产时间
+ 软件版本号
+ 硬件版本号
+ 设备类型ID
+ 厂牌ID
+ 机型ID
+ UUID
+ 状态机
+ 实时值
+ 背景值
+ 基底值
+ 差值
+ LEL百分比
+ 稳定状态
+ 基底值差值百分比1
+ 基底值差值百分比2
+ 温度
+ 服务器key
+ 服务器ClientId
+ 设备key
+ 设备ClientId
+ MAX
+ End Enum
+
+ '获取表格枚举值名称
+ Private Function GetTableEnumName(tableEnum As TableEnum) As String
+ Return [Enum].GetName(GetType(TableEnum), tableEnum)
+ End Function
+
+
+ '''
+ ''' 初始化串口波特率
+ '''
+ Private Sub InitSerialPortBaud()
+ ComboBox9.Items.Clear()
+ ComboBox9.Items.AddRange(_baudItme)
+ If ComboBox9.Items.Count > 1 Then ComboBox9.SelectedIndex = 0
+ End Sub
+
+
+
+ '''
+ ''' 选择串口
+ '''
+ '''
+ '''
+ Private Sub ComboBox8_DropDown(sender As Object, e As EventArgs) Handles ComboBox8.DropDown
+ GetSerialPort()
+ End Sub
+
+
+ '''
+ ''' 串口通信
+ '''
+ '''
+ '''
+ Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
+
+ ' RichTextBox1.Text = Application.ProductName
+ If String.IsNullOrWhiteSpace(ComboBox8.Text) Then
+ MsgBox($"请先选择有效串口!")
+ Exit Sub
+ End If
+ If String.IsNullOrWhiteSpace(ComboBox9.Text) Then
+ MsgBox($"请先选择有效波特率!")
+ Exit Sub
+ End If
+
+ SerialPortCommSwitch(ComboBox8.Text, ComboBox9.Text)
+ End Sub
+
+
+ '''
+ ''' 获取可用串口
+ '''
+ Private Sub GetSerialPort()
+ Dim portNames As String() = Ports.SerialPort.GetPortNames '获得可用串口
+ Array.Sort(portNames)
+ ComboBox8.Items.Clear()
+ ComboBox8.Items.AddRange(portNames)
+ End Sub
+
+
+ '''
+ ''' 串口通讯开关
+ '''
+ '''
+ '''
+ Private Sub SerialPortCommSwitch(portName As String, portBaud As String)
+ If SerialPort.IsOpen Then
+ SerialPort.Close()
+ CloseSerialPort()
+ Else
+ ConfigSerialPort(portName, portBaud)
+ Try
+ SerialPort.Open()
+ OpenSerialPort()
+ Catch ex As Exception
+ 'Console.WriteLine($"串口打开失败,原因:{ex.Message}" & vbCrLf, Color.Red)
+ MsgBox($"串口打开失败,原因:{ex.Message}")
+ SerialPort.Close()
+ CloseSerialPort()
+ End Try
+ End If
+ End Sub
+
+
+ '''
+ ''' 关闭串口
+ '''
+ Private Sub CloseSerialPort()
+ ComboBox8.Enabled = True
+ ComboBox9.Enabled = True
+ Button19.Text = $"打开串口"
+ Button19.ForeColor = Color.Green
+ End Sub
+
+
+ '''
+ ''' 配置串口
+ '''
+ ''' 串口名
+ ''' 串口波特率
+ Public Sub ConfigSerialPort(portName As String, portBaud As String)
+ With SerialPort
+ .PortName = portName '串口名
+ .BaudRate = CInt(portBaud) '波特率
+ .DataBits = 8 '数据位
+ .StopBits = Ports.StopBits.One '停止位
+ .Parity = Ports.Parity.Even '偶校验
+ .RtsEnable = True
+ .ReceivedBytesThreshold = 1
+ End With
+ End Sub
+
+
+ '''
+ ''' 打开串口
+ '''
+ Private Sub OpenSerialPort()
+ ComboBox8.Enabled = False
+ ComboBox9.Enabled = False
+ Button19.Text = $"关闭串口"
+ Button19.ForeColor = Color.Red
+ End Sub
+
+
+ '''
+ ''' 发送485串口数据
+ '''
+ '''
+ '''
+ Private Function SendPortData(dataBuff() As Byte)
+ Dim portData As String = ByteToString(dataBuff)
+ Dim timeData As String
+ Dim cutTime As String
+
+ _nowTime = Now
+ _timeInterbval = _nowTime - _lastTime
+ _lastTime = _nowTime
+ timeData = $"{Math.Round(_timeInterbval.TotalMilliseconds, 0)}"
+ timeData = timeData.PadRight(6)
+ cutTime = $"{Now:HH:mm:ss:fff}"
+
+ Try
+ SerialPort.Write(dataBuff, 0, dataBuff.Length)
+ AppendTipText("Com-TX:", Color.Green)
+ AppendTipText("(" & cutTime & "-", Color.Black)
+ AppendTipText(timeData, Color.BlueViolet)
+ AppendTipText("):", Color.Black)
+ AppendTipText(portData & vbCrLf, Color.Green)
+ Catch ex As Exception
+ MsgBox($"串口发送错误!原因:{ex.Message}")
+ AppendTipText($"串口发送错误!原因:{ex.Message}", Color.Red)
+ Return False
+ End Try
+ Return True
+ End Function
+
+ Private Function SendPortData(dataBuff() As Byte, dataLen As Integer)
+ Dim portData As String = ByteToString(dataBuff, dataLen)
+ Dim timeData As String
+ Dim cutTime As String
+
+ _nowTime = Now
+ _timeInterbval = _nowTime - _lastTime
+ _lastTime = _nowTime
+ timeData = $"{Math.Round(_timeInterbval.TotalMilliseconds, 0)}"
+ timeData = timeData.PadRight(6)
+ cutTime = $"{Now:HH:mm:ss:fff}"
+
+ Try
+ SerialPort.Write(dataBuff, 0, dataLen)
+ AppendTipText("Com-TX:", Color.Green)
+ AppendTipText("(" & cutTime & "-", Color.Black)
+ AppendTipText(timeData, Color.BlueViolet)
+ AppendTipText("):", Color.Black)
+ AppendTipText(portData & vbCrLf, Color.Green)
+
+ Catch ex As Exception
+ MsgBox($"串口发送错误!原因:{ex.Message}")
+ AppendTipText($"串口发送错误!原因:{ex.Message}", Color.Red)
+ Return False
+ End Try
+ Return True
+ End Function
+
+
+
+ '''
+ ''' 接收485串口数据
+ '''
+ '''
+ '''
+ Private Sub SerialPort_DataReceived(sender As Object, e As Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived
+ Static bytes As Integer
+ _recvOffset = 0
+ Try
+ Do
+ bytes = SerialPort.BytesToRead
+ If bytes <= 0 Then Exit Sub
+ If bytes + _recvOffset >= 255 Then
+ SerialPort.Read(_recvBuffer, _recvOffset, 255 - _recvOffset)
+ ShowPortReceData(_recvBuffer)
+
+ If IsRuningTest Then
+ ProcessAnalyticalData(_recvBuffer)
+ Else
+ If AnalyticalData(_recvBuffer) = &H1 Then
+ AppendTipText(Encoding.UTF8.GetString(_recvBuffer) & vbCrLf, Color.Green)
+ End If
+ End If
+
+ _recvOffset = 0
+ Else
+ SerialPort.Read(_recvBuffer, _recvOffset, bytes)
+ _recvOffset += bytes
+ End If
+ Thread.Sleep(10)
+ Loop While SerialPort.BytesToRead > 0
+ If _recvOffset > 0 Then
+ Dim buf(_recvOffset - 1) As Byte
+ Array.Copy(_recvBuffer, 0, buf, 0, buf.Length)
+ ShowPortReceData(buf)
+
+ If IsRuningTest Then
+ ProcessAnalyticalData(_recvBuffer)
+ Else
+ If AnalyticalData(_recvBuffer) = &H1 Then
+ AppendTipText(Encoding.UTF8.GetString(buf) & vbCrLf, Color.Green)
+ End If
+ End If
+
+ End If
+ Catch ex As Exception
+ AppendTipText($"串口接收数据失败,原因:{ex.Message}", Color.Red)
+ End Try
+
+
+
+ End Sub
+
+ '处理串口接收函数
+ Private Function ProcessAnalyticalData(databuff() As Byte) As Byte
+ 'For Each node In SendNodeDic
+ ' If IsRuningTest = False Then Return
+ If databuff(0) = &HF0 Then
+ If databuff(1) = &HF0 Then
+ If databuff(2) = &HF0 Then
+ If databuff(3) = &HF0 Then
+
+ Dim temp_val As Integer = 0
+
+ '产品状态
+ Show_Device_Work_State(databuff(4))
+
+ '浓度状态
+ temp_val = databuff(5)
+ temp_val <<= 8
+ temp_val += databuff(6)
+
+ 'Show_Device_GasMol(temp_val)
+ '寿命状态
+ temp_val = databuff(7)
+ temp_val <<= 8
+ temp_val += databuff(8)
+
+ 'Show_Device_Work_Time(temp_val)
+
+ '设备时间
+ temp_val = databuff(9)
+ temp_val <<= 8
+ temp_val += databuff(10)
+ temp_val <<= 8
+ temp_val += databuff(11)
+ temp_val <<= 8
+ temp_val += databuff(12)
+
+ 'Show_Device_Present_Time(temp_val)
+ Return &H0
+ Else
+ Return &H1
+ End If
+ Else
+ Return &H1
+ End If
+ Else
+ Return &H1
+ End If
+ ElseIf databuff(0) = &HAE Then
+ '设置回复数据
+ 'Select Case databuff(3)
+ ' Case &H1
+ ' 'AppendTipText("设置成功" & vbCrLf, Color.Blue)
+ ' Return &H0
+ ' Case &H2
+ ' Device_Read_Set_Info_Parsing(databuff)
+ ' Return &H0
+ ' Case &H3
+ ' ' Device_Record_Info_Parsing(databuff)
+ ' Return &H0
+ 'End Select
+ SendNodeDicParsing(databuff)
+ Else
+ Return &H1
+ End If
+
+ Return &H1
+ End Function
+
+ '枚举SendNodeDic 设置对应数据
+ Public isnotSendNode As Boolean = False
+ Public IsSetTime As Boolean = False
+ Public IsRtcTime As Boolean = False
+ Private Sub SendNodeDicParsing(databuff() As Byte)
+ Dim node As SendNode
+ Dim nextNode As SendNode
+ Dim l1, l2 As String
+ Dim dt As Date
+ Dim buff() As Byte
+ Dim ndatabuff(databuff.Length - 1) As Byte
+ '拷贝数据到新数组
+
+ Array.Copy(databuff, 0, ndatabuff, 0, ndatabuff.Length)
+
+ For i = 0 To SendNodeDic.Count - 1
+ node = SendNodeDic(i).Item2
+ If node.SendStatus = SendNode.SendStatusEnum.Send Then
+ If node.RecvStatus = SendNode.RecvStatusEnum.None Then
+ If databuff(3) = 2 Then
+ If databuff(3) = node.SendData(3) AndAlso databuff(4) = node.SendData(4) Then
+ node.RecvRefresh(ndatabuff)
+
+ If databuff(3) = 2 AndAlso databuff(4) = 2 Then
+ If databuff(5) = 0 Then
+ isnotSendNode = True
+ 'IsRuningTest = False
+ Else
+ isnotSendNode = False
+ End If
+
+ If i = SendNodeDic.Count - 2 Then
+ nextNode = SendNodeDic(i - 1).Item2
+ If nextNode.SendStatus = SendNode.SendStatusEnum.Send AndAlso
+ nextNode.RecvStatus = SendNode.RecvStatusEnum.Recv AndAlso nextNode.SendData(3) = 1 AndAlso
+ nextNode.SendData(4) = 8 Then
+ l1 = CombineFourBytesToLong(nextNode.SendData(8), nextNode.SendData(7), nextNode.SendData(6), nextNode.SendData(5))
+ buff = node.RecvDataLisr(0)
+ l2 = CombineFourBytesToLong(buff(61), buff(60), buff(59), buff(58))
+ If l1.Equals(l2) Then
+ IsSetTime = False
+ Else
+ IsSetTime = True
+ IsRuningTest = False
+ End If
+ End If
+
+ End If
+
+
+
+
+ End If
+ If databuff(3) = 2 AndAlso databuff(4) = 1 Then
+ If i = SendNodeDic.Count - 1 Then
+ dt = Date.Parse($"20{Hex2(databuff(6))}-{Hex2(databuff(7))}-{Hex2(databuff(8))} {Hex2(databuff(9))}:{Hex2(databuff(10))}:{Hex2(databuff(11))}")
+ Dim temp_val As Long = (Now - dt).TotalSeconds
+ 'Console.WriteLine($"RTC时间差 {temp_val}")
+ If RTC_Time.Year = dt.Year AndAlso RTC_Time.Month = dt.Month AndAlso RTC_Time.Day = dt.Day AndAlso
+ RTC_Time.Hour = dt.Hour AndAlso RTC_Time.Minute = dt.Minute AndAlso RTC_Time.Second = dt.Second Then
+ IsRtcTime = True
+ IsRuningTest = False
+
+ Else
+ If temp_val <= Timediffe Then
+ IsRtcTime = False
+ Else
+ IsRtcTime = True
+ IsRuningTest = False
+ End If
+
+ End If
+
+
+
+ End If
+ End If
+
+
+
+ End If
+ Else
+ If databuff(3) = node.SendData(3) Then
+ '将数组转字符串比对两个数组是否相等
+ If ByteToString(ndatabuff, node.SendData.Length) = ByteToString(node.SendData, node.SendData.Length) Then
+ Continue For
+ End If
+ node.RecvRefresh(ndatabuff)
+ End If
+
+ End If
+
+ End If
+ End If
+ Next
+ End Sub
+
+
+ '''
+ ''' 显示串口回复数据
+ '''
+ '''
+ Private Sub ShowPortReceData(databuff() As Byte)
+ Dim portData As String = ByteToString(databuff)
+ Dim timeData As String
+ Dim cutTime As String
+
+ _nowTime = Now
+ _timeInterbval = _nowTime - _lastTime
+ _lastTime = _nowTime
+ timeData = $"{Math.Round(_timeInterbval.TotalMilliseconds, 0)}"
+ timeData = timeData.PadRight(6)
+ cutTime = $"{Now:HH:mm:ss:fff}"
+
+ AppendTipText("Com-RX:", Color.Blue)
+ AppendTipText("(" & cutTime & "-", Color.Black)
+ AppendTipText(timeData, Color.BlueViolet)
+ AppendTipText("):", Color.Black)
+ AppendTipText(portData & vbCrLf, Color.Blue)
+ End Sub
+
+
+#End Region
+
+
+
+#Region "通讯记录"
+
+ '''
+ ''' 清除记录
+ '''
+ '''
+ '''
+ Private Sub Button24_Click(sender As Object, e As EventArgs) Handles Button24.Click
+ RichTextBox1.Clear()
+ End Sub
+
+
+ '''
+ ''' 添加记录文本和颜色
+ '''
+ ''' 需要添加的记录内容
+ ''' 需要设置的记录颜色
+ Public Sub AppendTextAndSetStyle(ByVal str As String, ByVal cor As Color)
+ Dim selStart As Integer
+ Dim selLength As Integer
+ selStart = RichTextBox1.TextLength
+ RichTextBox1.AppendText(str)
+ selLength = RichTextBox1.TextLength - selStart
+ RichTextBox1.Select(selStart, selLength)
+ RichTextBox1.SelectionColor = cor
+ End Sub
+
+
+ '''
+ ''' 添加记录
+ '''
+ '''
+ '''
+ Public Sub AppendTipText(recordString As String, col As Color)
+ If RichTextBox1.InvokeRequired Then
+ RichTextBox1.Invoke(New Action(Sub()
+ If RichTextBox1.Lines.Count >= 256 Then RichTextBox1.Clear()
+ AppendTextAndSetStyle($"{recordString}", col)
+ RichTextBox1.ScrollToCaret()
+ End Sub))
+ Else
+ If RichTextBox1.Lines.Count >= 256 Then RichTextBox1.Clear()
+ AppendTextAndSetStyle($"{recordString}", col)
+ RichTextBox1.ScrollToCaret()
+ End If
+ End Sub
+
+
+
+#End Region
+
+
+
+#Region "解析串口数据"
+
+ '''
+ ''' 解析串口数据
+ '''
+ '''
+ Private Function AnalyticalData(databuff() As Byte) As Byte
+
+
+ If databuff(0) = &HF0 Then
+ If databuff(1) = &HF0 Then
+ If databuff(2) = &HF0 Then
+ If databuff(3) = &HF0 Then
+
+ Dim temp_val As Integer = 0
+
+ '产品状态
+ Show_Device_Work_State(databuff(4))
+
+ '浓度状态
+ temp_val = databuff(5)
+ temp_val <<= 8
+ temp_val += databuff(6)
+
+ Show_Device_GasMol(temp_val)
+ '寿命状态
+ temp_val = databuff(7)
+ temp_val <<= 8
+ temp_val += databuff(8)
+
+ Show_Device_Work_Time(temp_val)
+
+ '设备时间
+ temp_val = databuff(9)
+ temp_val <<= 8
+ temp_val += databuff(10)
+ temp_val <<= 8
+ temp_val += databuff(11)
+ temp_val <<= 8
+ temp_val += databuff(12)
+
+ Show_Device_Present_Time(temp_val)
+ Return &H0
+ Else
+ Return &H1
+ End If
+ Else
+ Return &H1
+ End If
+ Else
+ Return &H1
+ End If
+ ElseIf databuff(0) = &HAE Then
+ '设置回复数据
+ Select Case databuff(3)
+ Case &H1
+ AppendTipText("设置成功" & vbCrLf, Color.Blue)
+ Return &H0
+ Case &H2
+ Device_Read_Set_Info_Parsing(databuff)
+ Return &H0
+ Case &H3
+ Device_Record_Info_Parsing(databuff)
+ Return &H0
+ End Select
+
+ Else
+ Return &H1
+ End If
+
+ Return &H1
+ End Function
+
+ '''
+ ''' Byte数组转字符串
+ '''
+ '''
+ '''
+ Public Function ByteToString(databuff() As Byte)
+ Dim strData As String = String.Empty
+ For i = 0 To databuff.Length - 1
+ strData &= $" {Hex(databuff(i)).PadLeft(2, "0"c)}"
+ Next
+ Return strData
+ End Function
+
+ Public Function ByteToString(databuff() As Byte, dataLen As Integer)
+ Dim strData As String = String.Empty
+ For i = 0 To dataLen - 1
+ strData &= $" {Hex(databuff(i)).PadLeft(2, "0"c)}"
+ Next
+ Return strData
+ End Function
+
+#End Region
+
+
+#Region "设置读取信息"
+
+ '''
+ ''' 读取核心参数信息-委托
+ '''
+ Delegate Sub RefreshState_Show(state As Byte)
+ Delegate Sub RefreshVal_Show(state As Integer)
+ Delegate Sub RefreBuff_Show(buff() As Byte)
+
+ Public Sub Show_Device_Setinfo_Info()
+
+ '稳定消抖时间 - 单位:s
+ TextBox6.Text = "30"
+
+ '背景值滤波长度 - 最大:300S
+ TextBox13.Text = "300"
+
+ '传感器极大值
+ TextBox7.Text = "3500"
+
+ '传感器极小值
+ TextBox8.Text = "500"
+
+ '预热时间 - 单位:分钟
+ TextBox14.Text = "3"
+
+ 'LEV 10% 对应的ADC 值
+ TextBox1.Text = "2800"
+
+ 'LEV 0% 对应的ADC 值
+ TextBox2.Text = "1000"
+
+ '触发 - 消抖次数
+ TextBox3.Text = "150"
+
+ '释放 - 消抖次数
+ TextBox4.Text = "150"
+
+ '稳定阈值
+ TextBox5.Text = "30"
+
+ '报警点提前量
+ TextBox11.Text = "100"
+
+ '校准超时 - 单位:S
+ TextBox12.Text = "180"
+
+ '校准0% LEL 下限
+ TextBox15.Text = "100"
+
+ '校准0% LEL 上限
+ TextBox16.Text = "2200"
+
+ '校准10% LEL 下限
+ TextBox19.Text = "1000"
+
+ '校准10% LEL 上限
+ TextBox20.Text = "3400"
+
+ '校准差值 下限
+ TextBox17.Text = "1000"
+
+ '校准差值 上限
+ TextBox18.Text = "2500"
+
+ '泄露恢复至正常 条件1:稳定处于基准值的多少倍以内,且达到消抖次数多少秒
+ TextBox21.Text = "1.2" '基准倍数
+ TextBox22.Text = "5" '消抖时间
+
+ '泄露恢复至正常 条件2:稳定处于基准值的多少倍以内,且持续时间超过多少分钟
+ TextBox23.Text = "1.5" '基准倍数
+ TextBox24.Text = "120" '消抖时间
+
+ End Sub
+
+ '''
+ ''' 显示开关状态
+ '''
+ '''
+ Public Sub Show_Device_Work_State(state As Byte)
+
+ If InvokeRequired = True Then
+ Dim dev As New RefreshState_Show(AddressOf Show_Device_Work_State)
+ Me.Invoke(dev, New Object() {state})
+ Else
+ Select Case state
+ Case &H2F
+ Lab_DeviceState.ForeColor = Color.Orange
+ Lab_DeviceState.Text = "预热"
+
+ Case &HB
+ Lab_DeviceState.ForeColor = Color.Green
+ Lab_DeviceState.Text = "正常"
+
+ Case &H48
+ Lab_DeviceState.ForeColor = Color.Red
+ Lab_DeviceState.Text = "报警"
+ End Select
+ End If
+
+ End Sub
+
+ '''
+ ''' 显示设备浓度
+ '''
+ '''
+ Public Sub Show_Device_GasMol(mol As Integer)
+ If InvokeRequired = True Then
+ Dim dev As New RefreshVal_Show(AddressOf Show_Device_GasMol)
+ Me.Invoke(dev, New Object() {mol})
+ Else
+ Lab_mol.ForeColor = Color.Black
+ Lab_mol.Text = mol.ToString & " mV"
+ End If
+
+
+ End Sub
+
+ '''
+ ''' 显示工作天数
+ '''
+ '''
+ Public Sub Show_Device_Work_Time(day As Integer)
+ If InvokeRequired = True Then
+ Dim dev As New RefreshVal_Show(AddressOf Show_Device_Work_Time)
+ Me.Invoke(dev, New Object() {day})
+ Else
+ Lab_WorkTime.ForeColor = Color.Black
+ Lab_WorkTime.Text = day.ToString & " 天"
+ End If
+ End Sub
+
+ '''
+ ''' 显示当前时间
+ '''
+ '''
+ Public Sub Show_Device_Present_Time(time As Integer)
+
+ If InvokeRequired = True Then
+ Dim dev As New RefreshVal_Show(AddressOf Show_Device_Present_Time)
+ Me.Invoke(dev, New Object() {time})
+ Else
+ Dim dateTimeOffset As DateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(time)
+
+ Dim localTime As DateTime = dateTimeOffset.LocalDateTime
+
+ Lab_DeviceTime.Text = localTime.ToString("yyyy-MM-dd HH:mm:ss")
+ End If
+
+ End Sub
+ '''
+ ''' 将 Int32 转为 4 字节数组,低字节在前。
+ '''
+ Public Function IntTo4BytesLE(value As Integer) As Byte()
+ Return BitConverter.GetBytes(value) ' BitConverter 在 Windows/Intel 就是 Little-Endian
+ End Function
+ '''
+ ''' Int转2个字节Byte
+ ''' 高字节在前,低字节在后
+ '''
+ '''
+ '''
+ Public Function IntToByteHB(ByVal i As Integer) As Byte()
+ Dim btemp() As Byte = {0, 0}
+ Dim b() As Byte = BitConverter.GetBytes(i)
+ btemp(0) = b(0)
+ btemp(1) = b(1)
+ Return btemp
+ End Function
+
+ '''
+ ''' 和校验取余数
+ ''' 求Byte数组的和校验取余数
+ '''
+ ''' Byte数组
+ '''
+ Public Function GetSumCheckMod(dataPacket As Byte()) As Byte
+ Dim sum As Integer
+ For idx = 0 To dataPacket.Length - 1
+ sum += dataPacket(idx)
+ sum = sum And &HFF
+ Next
+ Dim sumMod As Byte = &HFF - sum
+ Return sumMod
+ End Function
+
+ Public Function GetSumCheckMod(dataPacket As Byte(), dataLen As Integer) As Byte
+ Dim sum As Integer
+ For idx = 0 To dataLen - 1
+ sum += dataPacket(idx)
+ sum = sum And &HFF
+ Next
+ Dim sumMod As Byte = &HFF - sum
+ Return sumMod
+ End Function
+
+ Public Sub Show_Device_ReadRtc(buff() As Byte)
+
+ If InvokeRequired = True Then
+ Dim dev As New RefreBuff_Show(AddressOf Show_Device_ReadRtc)
+ Me.Invoke(dev, New Object() {buff})
+ Else
+
+ DateTimePicker1.Value = New DateTime(CInt($"20{Hex(buff(6))}"), CInt($"{Hex(buff(7))}"), CInt($"{Hex(buff(8))}"), CInt($"{Hex(buff(9))}"), CInt($"{Hex(buff(10))}"), CInt($"{Hex(buff(11))}"))
+
+ End If
+
+ End Sub
+
+ Public Function ConvertUtcTimestampToDateTime(timestamp As Long) As DateTime
+ ' 创建一个 DateTime 对象,表示从 Unix 时间戳转换而来的时间
+ Dim unixEpoch As New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
+
+ ' 添加时间戳所表示的秒数
+ Dim convertedDateTime As DateTime = unixEpoch.AddSeconds(timestamp)
+
+ ' 返回本地时间
+ Return convertedDateTime.ToLocalTime()
+ End Function
+
+ Public Sub Show_Device_SetInfo(buff() As Byte)
+
+ If InvokeRequired = True Then
+ Dim dev As New RefreBuff_Show(AddressOf Show_Device_SetInfo)
+ Me.Invoke(dev, New Object() {buff})
+ Else
+
+ Dim temp_val As Integer
+ Dim temp_len As Integer = 6
+
+ '稳定消抖时间 - 单位:s
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox6.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '背景值滤波长度 - 最大:600S
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox13.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '传感器极大值
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox7.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '传感器极小值
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox8.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '预热时间 - 单位:分钟
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox14.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ 'LEV 10% 对应的ADC 值
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox1.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ 'LEV 0% 对应的ADC 值
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox2.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '触发 - 消抖次数
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox3.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '释放 - 消抖次数
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox4.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '稳定阈值
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox5.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '报警点提前量
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox11.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准超时 - 单位:S
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox12.Text = temp_val.ToString
+ AppendTipText($"报警电压 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准0% LEL 下限
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox15.Text = temp_val.ToString
+ AppendTipText($"校准0% LEL 下限 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准0% LEL 上限
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox16.Text = temp_val.ToString
+ AppendTipText($"校准0% LEL 下限 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准10% LEL 下限
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox19.Text = temp_val.ToString
+ AppendTipText($"校准10% LEL 下限 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准10% LEL 上限
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox20.Text = temp_val.ToString
+ AppendTipText($"校准10% LEL 下限 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准差值 下限
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox17.Text = temp_val.ToString
+ AppendTipText($"校准0% LEL 下限 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '校准差值 上限
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox18.Text = temp_val.ToString
+ AppendTipText($"校准0% LEL 下限 : {temp_val}" & vbCrLf, Color.Blue)
+
+ '泄露条件1 - 基准值的倍数
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ Dim temp_mult As Double = temp_val / 10
+ TextBox21.Text = temp_mult.ToString
+ AppendTipText($"泄露条件1 - 基准值的 {temp_mult}倍数" & vbCrLf, Color.Blue)
+
+ '泄露条件1 - 消抖时间
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox22.Text = temp_val.ToString
+ AppendTipText($"泄露条件1 - 消抖时间: {temp_val}S" & vbCrLf, Color.Blue)
+
+ '泄露条件2 - 基准值的倍数
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ temp_mult = temp_val / 10
+ TextBox23.Text = temp_mult.ToString
+ AppendTipText($"泄露条件2 - 基准值的 {temp_mult}倍数" & vbCrLf, Color.Blue)
+
+ '泄露条件2 - 消抖时间
+ temp_val = buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ temp_len += 2
+ TextBox24.Text = temp_val.ToString
+ AppendTipText($"泄露条件2 - 消抖时间: {temp_val}Min" & vbCrLf, Color.Blue)
+
+ '生产时间戳
+ temp_val = buff(temp_len + 3)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len + 2)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len + 1)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(temp_len)
+ DateTimeP_RelDate.Value = ConvertUtcTimestampToDateTime(temp_val)
+ AppendTipText($"生产时间 :" & DateTimeP_RelDate.Value & vbCrLf, Color.Blue)
+
+
+ End If
+
+ End Sub
+
+ Public Sub Device_Read_Set_Info_Parsing(buff As Byte())
+ Select Case buff(4)
+ Case &H1
+ If buff(5) = &H0 Then
+ AppendTipText("读取RTC时间成功" & vbCrLf, Color.Blue)
+
+ AppendTipText($"RTC: 20{Hex(buff(6))}-{Hex(buff(7))}-{Hex(buff(8))} {Hex(buff(9))}:{Hex(buff(10))}:{Hex(buff(11))} {Hex(buff(12))} " & vbCrLf, Color.Blue)
+ Show_Device_ReadRtc(buff)
+ Else
+ AppendTipText("读取RTC时间失败" & vbCrLf, Color.Red)
+
+ End If
+
+ Case &H2
+ If buff(5) = &H0 Then
+ AppendTipText("读取 设置参数 成功" & vbCrLf, Color.Blue)
+ Show_Device_SetInfo(buff)
+ Else
+ AppendTipText("读取 设置参数 失败" & vbCrLf, Color.Blue)
+ End If
+
+ End Select
+
+ End Sub
+
+ Public Sub Device_LogInfo_Data_Parsing(data As Integer)
+
+ If InvokeRequired = True Then
+ Dim dev As New RefreshVal_Show(AddressOf Device_LogInfo_Data_Parsing)
+ Me.Invoke(dev, New Object() {data})
+ Else
+ TextBox9.Text = data.ToString()
+
+ End If
+
+ End Sub
+
+ Public Sub Device_Log_Data_Parsing(buff As Byte())
+
+ If InvokeRequired = True Then
+ Dim dev As New RefreBuff_Show(AddressOf Device_Log_Data_Parsing)
+ Me.Invoke(dev, New Object() {buff})
+ Else
+
+ If buff(0) = &H1A And buff(2) = &HE Then
+ If GetSumCheckMod(buff, &HE) = &H0 Then
+
+ Dim temp_rtc_tick As Integer
+ Dim temp_val As Integer
+ Dim log_temp_data As New LOG_Data_List
+
+ log_temp_data.sn = buff(1)
+
+ temp_rtc_tick = buff(4)
+ temp_rtc_tick <<= 8
+ temp_rtc_tick = temp_rtc_tick Or buff(5)
+ temp_rtc_tick <<= 8
+ temp_rtc_tick = temp_rtc_tick Or buff(6)
+ temp_rtc_tick <<= 8
+ temp_rtc_tick = temp_rtc_tick Or buff(7)
+
+ log_temp_data.time = ConvertUtcTimestampToDateTime(temp_rtc_tick)
+ AppendTipText($"LOG :" & log_temp_data.time & vbCrLf, Color.Blue)
+
+ log_temp_data.type = buff(8)
+
+ Select Case buff(8)
+ Case &H1
+ AppendTipText($"记录类型 - 浓度报警记录" & vbCrLf, Color.Blue)
+ temp_rtc_tick = buff(9)
+ temp_rtc_tick <<= 8
+ temp_rtc_tick = temp_rtc_tick Or buff(10)
+ log_temp_data.parsing = $"浓度报警 {temp_rtc_tick} {buff(12)}% {buff(11)}℃"
+ Case &H2
+ AppendTipText($"记录类型 - 浓度恢复记录" & vbCrLf, Color.Blue)
+ temp_rtc_tick = buff(9)
+ temp_rtc_tick <<= 8
+ temp_rtc_tick = temp_rtc_tick Or buff(10)
+ log_temp_data.parsing = $"浓度恢复 {temp_rtc_tick} {buff(12)}% {buff(11)}℃"
+ Case &H3
+ AppendTipText($"记录类型 - 产品故障记录" & vbCrLf, Color.Blue)
+ log_temp_data.parsing = $"产品故障 {buff(9)} {buff(11)}℃"
+ Case &H4
+ AppendTipText($"记录类型 - 产品故障恢复记录" & vbCrLf, Color.Blue)
+ log_temp_data.parsing = $"产品故障恢复 {buff(9)} {buff(11)}℃"
+ Case &H5
+ AppendTipText($"记录类型 - 产品上电记录" & vbCrLf, Color.Blue)
+ log_temp_data.parsing = $"产品上电 "
+ Case &H6
+ AppendTipText($"记录类型 - 产品断电记录" & vbCrLf, Color.Blue)
+ log_temp_data.parsing = $"产品断电 "
+ Case &H7
+ AppendTipText($"记录类型 - 传感器失效记录" & vbCrLf, Color.Blue)
+ log_temp_data.parsing = $"传感器失效 "
+
+ Case &H8
+ AppendTipText($"记录类型 - 传感器校准记录" & vbCrLf, Color.Blue)
+ temp_rtc_tick = buff(9)
+ temp_rtc_tick <<= 8
+ temp_rtc_tick = temp_rtc_tick Or buff(10)
+
+ temp_val = buff(11)
+ temp_val <<= 8
+ temp_val = temp_val Or buff(12)
+ log_temp_data.parsing = $"传感器校准 LEL_0:{temp_rtc_tick} LEL_10:{temp_val}"
+
+ End Select
+
+ '将解析后的数据添加到列表中
+ Dim log_sn As Integer = CInt(TextBox10.Text)
+
+ 'Console.WriteLine($"Log sn:{log_sn} - {Log_Data.Count}")
+ If Log_Data.Count > log_sn Then
+ Log_Data(log_sn) = log_temp_data
+ Grid_Refresh_LOG_Data(Log_Data, log_sn + 1, Grid1)
+
+ 'Console.WriteLine($"Refresh_LOG_Data ")
+ Else
+
+ Log_Data.Add(log_temp_data)
+ Grid_ADD_LOG_Data(Log_Data, Grid1)
+
+ 'Console.WriteLine($"Add new line ")
+ End If
+
+ End If
+ End If
+ End If
+
+ End Sub
+
+
+
+
+ Public Sub Device_Record_Info_Parsing(buff As Byte())
+ Select Case buff(4)
+ Case &H0
+ If buff(5) = &H0 Then
+ AppendTipText("读取成功" & vbCrLf, Color.Blue)
+
+ Dim Log_num As Integer
+ Dim log_addr As Integer
+
+ Log_num = buff(6)
+ Log_num <<= 8
+ Log_num += buff(7)
+
+ log_addr = buff(8)
+ log_addr <<= 8
+ log_addr += buff(9)
+ log_addr <<= 8
+ log_addr += buff(10)
+ log_addr <<= 8
+ log_addr += buff(11)
+
+ AppendTipText($"日志数量:{Log_num} 日志地址:{Hex(log_addr)}" & vbCrLf, Color.Blue)
+
+ Device_LogInfo_Data_Parsing(Log_num)
+ Else
+ AppendTipText("读取失败" & vbCrLf, Color.Blue)
+ End If
+
+ Case &H1
+ If buff(5) = &H0 Then
+ AppendTipText("读取日志成功" & vbCrLf, Color.Blue)
+
+ Dim log_data(100) As Byte
+ Dim log_len As Byte = buff(1) - 7
+ Array.Copy(buff, 6, log_data, 0, log_len)
+
+ AppendTipText("读取日志数据 :" & ByteToString(log_data, log_len) & vbCrLf, Color.Blue)
+
+ Device_Log_Data_Parsing(log_data)
+
+ Else
+ AppendTipText("读取日志失败" & vbCrLf, Color.Blue)
+ End If
+
+
+ End Select
+ End Sub
+
+ Private Sub But_SetRTCTime_Click(sender As Object, e As EventArgs) Handles But_SetRTCTime.Click
+ Dim send_data(20) As Byte
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 13 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H1 '参数内容 - 设置RTC时间
+
+ If CheckBox2.Checked = True Then
+ '使用系统时间
+ send_data(5) = $"&H{Now.Date.Year Mod 100}"
+ send_data(6) = $"&H{Now.Date.Month Mod 100}"
+ send_data(7) = $"&H{Now.Date.Day Mod 100}"
+ send_data(8) = $"&H{Now.Hour}"
+ send_data(9) = $"&H{Now.Minute }"
+ send_data(10) = $"&H{Now.Second }"
+ send_data(11) = $"&H{Now.Date.DayOfWeek Mod 100}"
+ Else
+ '自定义时间
+ send_data(5) = $"&H{DateTimePicker1.Value.Year Mod 100}"
+ send_data(6) = $"&H{DateTimePicker1.Value.Month Mod 100}"
+ send_data(7) = $"&H{DateTimePicker1.Value.Day Mod 100}"
+ send_data(8) = $"&H{DateTimePicker1.Value.Hour}"
+ send_data(9) = $"&H{DateTimePicker1.Value.Minute }"
+ send_data(10) = $"&H{DateTimePicker1.Value.Second }"
+ send_data(11) = $"&H{DateTimePicker1.Value.DayOfWeek Mod 100}"
+ End If
+
+
+ send_data(12) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 13)
+
+ SendPortData(send_data, 13)
+
+ End Sub
+ Public Function GetSetRTCTime() As Byte()
+ Dim send_data(12) As Byte
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 13 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H1 '参数内容 - 设置RTC时间
+ RTC_Time = Now
+ If CheckBox2.Checked = True Then
+ '使用系统时间
+ send_data(5) = $"&H{RTC_Time.Date.Year Mod 100}"
+ send_data(6) = $"&H{RTC_Time.Date.Month Mod 100}"
+ send_data(7) = $"&H{RTC_Time.Date.Day Mod 100}"
+ send_data(8) = $"&H{RTC_Time.Hour}"
+ send_data(9) = $"&H{RTC_Time.Minute }"
+ send_data(10) = $"&H{RTC_Time.Second }"
+ send_data(11) = $"&H{RTC_Time.Date.DayOfWeek Mod 100}"
+ Else
+ '自定义时间
+ send_data(5) = $"&H{DateTimePicker1.Value.Year Mod 100}"
+ send_data(6) = $"&H{DateTimePicker1.Value.Month Mod 100}"
+ send_data(7) = $"&H{DateTimePicker1.Value.Day Mod 100}"
+ send_data(8) = $"&H{DateTimePicker1.Value.Hour}"
+ send_data(9) = $"&H{DateTimePicker1.Value.Minute }"
+ send_data(10) = $"&H{DateTimePicker1.Value.Second }"
+ send_data(11) = $"&H{DateTimePicker1.Value.DayOfWeek Mod 100}"
+ End If
+
+ send_data(12) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 13)
+ Return send_data
+ End Function
+
+ Public Function GetSetUTCTime() As Byte()
+ Dim send_data(9) As Byte
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 10 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H8 '参数内容 - 设置RTC时间
+
+ '获取到秒的UTC时间戳
+ Dim Utc As Integer = CInt((DateTime.Now - New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds)
+ '将UTC时间戳转换为字节数组
+ Dim UtcBytes As Byte() = BitConverter.GetBytes(Utc)
+ send_data(5) = UtcBytes(0)
+ send_data(6) = UtcBytes(1)
+ send_data(7) = UtcBytes(2)
+ send_data(8) = UtcBytes(3)
+ send_data(9) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 10)
+ Return send_data
+ End Function
+
+
+ Private Sub But_ReleaseDate_Click(sender As Object, e As EventArgs) Handles But_ReleaseDate.Click
+ Dim send_data(100) As Byte
+ Dim temp_len As Integer = 0
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 29 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H2 '参数内容 - 设置出厂时间及参数信息
+ temp_len += 5
+ Dim unixEpoch As New DateTime(1970, 1, 1, 8, 0, 0, DateTimeKind.Utc)
+ Dim utcTime As Integer
+ Dim temp_buff() As Byte
+
+ '稳定消抖时间 - 单位:S
+ temp_buff = BitConverter.GetBytes(CInt(TextBox6.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '背景值滤波长度 - 最大:600S
+ temp_buff = BitConverter.GetBytes(CInt(TextBox13.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '传感器极大值 - 最大:4095
+ temp_buff = BitConverter.GetBytes(CInt(TextBox7.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '传感器极小值 - 最大:3000
+ temp_buff = BitConverter.GetBytes(CInt(TextBox8.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '预热时间 - 单位:分钟
+ temp_buff = BitConverter.GetBytes(CInt(TextBox14.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ 'LEV 10% 对应的ADC 值
+ temp_buff = BitConverter.GetBytes(CInt(TextBox1.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ 'LEV 0% 对应的ADC 值
+ temp_buff = BitConverter.GetBytes(CInt(TextBox2.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '触发 - 消抖次数
+ temp_buff = BitConverter.GetBytes(CInt(TextBox3.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '释放 - 消抖次数
+ temp_buff = BitConverter.GetBytes(CInt(TextBox4.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '稳定阈值
+ temp_buff = BitConverter.GetBytes(CInt(TextBox5.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '报警点提前量
+ temp_buff = BitConverter.GetBytes(CInt(TextBox11.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准超时 - 单位:S
+ temp_buff = BitConverter.GetBytes(CInt(TextBox12.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准0% LEL下限 -
+ temp_buff = BitConverter.GetBytes(CInt(TextBox15.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准0% LEL上限 -
+ temp_buff = BitConverter.GetBytes(CInt(TextBox16.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准10% LEL下限 -
+ temp_buff = BitConverter.GetBytes(CInt(TextBox19.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准10% LEL上限 -
+ temp_buff = BitConverter.GetBytes(CInt(TextBox20.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准差值下限
+ temp_buff = BitConverter.GetBytes(CInt(TextBox17.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '校准差值上限
+ temp_buff = BitConverter.GetBytes(CInt(TextBox18.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '恢复正常模式,条件1:基准倍数 扩大10倍进行数据下发
+ Dim temp_mult As Integer = (CDbl(TextBox21.Text) * 10)
+ temp_buff = BitConverter.GetBytes(temp_mult)
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '恢复正常模式,条件1:消抖时间
+ temp_buff = BitConverter.GetBytes(CInt(TextBox22.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '恢复正常模式,条件2:基准倍数 扩大10倍进行数据下发
+ temp_mult = (CDbl(TextBox23.Text) * 10)
+ temp_buff = BitConverter.GetBytes(temp_mult)
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '恢复正常模式,条件2:消抖时间
+ temp_buff = BitConverter.GetBytes(CInt(TextBox24.Text))
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+
+ '设备出厂时间
+ utcTime = CInt((DateTimeP_RelDate.Value - unixEpoch).TotalSeconds)
+ 'Console.WriteLine("DateTimeP_RelDate UTC时间: " & utcTime)
+ temp_buff = BitConverter.GetBytes(utcTime)
+ send_data(temp_len) = temp_buff(0)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(1)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(2)
+ temp_len += 1
+ send_data(temp_len) = temp_buff(3)
+ temp_len += 1
+
+ send_data(temp_len) = &HEA '包尾
+ temp_len += 1
+
+ send_data(1) = temp_len '长度
+ send_data(2) = GetSumCheckMod(send_data, temp_len)
+
+ SendPortData(send_data, temp_len)
+
+ End Sub
+
+ Public Function Judge_Volt_Range(sender As Object, e As EventArgs) As Byte
+ Dim rev As Byte
+ Dim temp_obj As TextBox = sender
+
+ If temp_obj.TextLength > 0 AndAlso CUInt(temp_obj.Text) > 4096 Then
+ temp_obj.Text = 4095
+ MsgBox($"超出范围:{CUInt(temp_obj.Text)} 输入范围:0~4095")
+ ElseIf temp_obj.TextLength = 0 Then
+ temp_obj.Text = 0
+ End If
+
+ Return rev
+ End Function
+
+ Public Function Judge_Debounce_Range(sender As Object, e As EventArgs) As Byte
+ Dim rev As Byte
+ Dim temp_obj As TextBox = sender
+
+ If temp_obj.TextLength > 0 AndAlso CUInt(temp_obj.Text) > 5000 Then
+ temp_obj.Text = 4999
+ MsgBox($"超出范围:{CUInt(temp_obj.Text)} 输入范围:0~4999")
+ ElseIf temp_obj.TextLength = 0 Then
+ temp_obj.Text = 0
+ End If
+
+ Return rev
+ End Function
+
+ Private Sub TBox_Volt_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox5.TextChanged, TextBox2.TextChanged, TextBox11.TextChanged, TextBox13.TextChanged, TextBox12.TextChanged, TextBox7.TextChanged, TextBox20.TextChanged, TextBox19.TextChanged, TextBox18.TextChanged, TextBox17.TextChanged, TextBox16.TextChanged, TextBox15.TextChanged, TextBox21.TextChanged, TextBox24.TextChanged, TextBox23.TextChanged, TextBox22.TextChanged
+ Judge_Volt_Range(sender, e)
+ End Sub
+
+ Private Sub TBox_Debounce_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged, TextBox6.TextChanged, TextBox4.TextChanged, TextBox8.TextChanged, TextBox14.TextChanged
+ Judge_Debounce_Range(sender, e)
+ End Sub
+
+ Private Sub But_QueryLogInfo_Click(sender As Object, e As EventArgs) Handles But_QueryLogInfo.Click
+ Dim send_data(20) As Byte
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H3 '命令 - 读取日志信息
+ send_data(4) = &H0 '参数内容 -
+
+ send_data(5) = &H0
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+ End Sub
+
+ Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
+ If CheckBox1.Checked = True Then
+ CheckBox2.Checked = False
+ Else
+ CheckBox2.Checked = True
+ End If
+ End Sub
+
+ Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
+
+ If CheckBox2.Checked = True Then
+ CheckBox1.Checked = False
+ Else
+ CheckBox1.Checked = True
+ End If
+
+ End Sub
+
+ '''
+ ''' 定期上报开关
+ '''
+ Dim periodic_reporting_switch As Byte
+
+ '''
+ ''' 开启定时上报
+ '''
+ '''
+ '''
+ Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
+
+ Dim send_data(20) As Byte
+
+ If periodic_reporting_switch = &H1 Then
+ periodic_reporting_switch = &H0
+
+ Else
+ periodic_reporting_switch = &H1
+
+ End If
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 读取日志信息
+ send_data(4) = &H4 '参数内容 -
+
+ send_data(5) = periodic_reporting_switch
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ If SendPortData(send_data, 8) = True Then
+ If periodic_reporting_switch = &H1 Then
+
+ Button2.Text = "关闭上报"
+ Button2.ForeColor = Color.Red
+ Else
+
+ Button2.Text = "开启上报"
+ Button2.ForeColor = Color.Black
+ End If
+ End If
+
+
+ End Sub
+
+ Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
+ Dim send_data(20) As Byte
+
+
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H2 '命令 - 读取日志信息
+ send_data(4) = &H1 '参数内容 -
+
+ send_data(5) = &H0
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+
+ End Sub
+
+ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+ ' 4、读取校准信息
+ Dim send_data(20) As Byte
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H2 '命令 - 读取日志信息
+ send_data(4) = &H2 '参数内容 -
+
+ send_data(5) = &H0
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+ '' 读取软件版本号 UUID
+ 'Dim send_data(20) As Byte
+
+ 'send_data(0) = &HAE '包头
+ 'send_data(1) = 8 '长度
+ 'send_data(2) = &H0 '校验
+ 'send_data(3) = &H2 '命令 - 读取软件版本号
+ 'send_data(4) = &H3 '参数内容 -
+
+ 'send_data(5) = &H0
+ 'send_data(6) = &H0
+
+ 'send_data(7) = &HEA '包尾
+
+ 'send_data(2) = GetSumCheckMod(send_data, 8)
+
+ 'SendPortData(send_data, 8)
+
+
+ ' 5、读取实时状态信息
+ 'Dim send_data(20) As Byte
+
+ 'send_data(0) = &HAE '包头
+ 'send_data(1) = 8 '长度
+ 'send_data(2) = &H0 '校验
+ 'send_data(3) = &H2 '命令 - 读取实时状态信息
+ 'send_data(4) = &H4 '参数内容 -
+
+ 'send_data(5) = &H0
+ 'send_data(6) = &H0
+
+ 'send_data(7) = &HEA '包尾
+
+ 'send_data(2) = GetSumCheckMod(send_data, 8)
+
+ 'SendPortData(send_data, 8)
+ End Sub
+
+ '''
+ ''' 调试信息输出开关
+ '''
+ '''
+ '''
+ Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.CheckedChanged
+
+ Dim send_data(20) As Byte
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H6 '参数内容 - 设置调试信息状态
+
+ If CheckBox3.Checked = True Then
+ send_data(5) = &HFF '开启调试信息
+ Else
+
+ send_data(5) = &H0 '关闭调试信息
+ End If
+
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+
+
+
+ End Sub
+
+ Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox4.CheckedChanged
+ Dim send_data(20) As Byte
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H5 '参数内容 - 设置调试信息状态
+
+ If CheckBox4.Checked = True Then
+ send_data(5) = &H1 '开启调试曲线信息
+ Else
+ send_data(5) = &H0 '关闭调试曲线信息
+ End If
+
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+ End Sub
+
+ '''
+ ''' 复位命令下发
+ '''
+ '''
+ '''
+ Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
+ Dim send_data(20) As Byte
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H1 '命令 - 设置参数
+ send_data(4) = &H7 '参数内容 - 复位
+
+
+ send_data(5) = &H1 '关闭调试信息
+
+
+ send_data(6) = &H0
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+ End Sub
+
+
+ '''
+ ''' 指定查询日志内容
+ '''
+ '''
+ '''
+ Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
+
+ Dim send_data(20) As Byte
+ Dim temp_buff() As Byte = BitConverter.GetBytes(CInt(TextBox10.Text))
+
+ send_data(0) = &HAE '包头
+ send_data(1) = 8 '长度
+ send_data(2) = &H0 '校验
+ send_data(3) = &H3 '命令 - 读取日志信息
+ send_data(4) = &H1 '参数内容 -
+
+ send_data(5) = temp_buff(1)
+ send_data(6) = temp_buff(0)
+
+ send_data(7) = &HEA '包尾
+
+ send_data(2) = GetSumCheckMod(send_data, 8)
+
+ SendPortData(send_data, 8)
+ End Sub
+
+
+ Dim g_Auto_Log_Query_Enable As Boolean = False
+ Dim g_Auto_Log_Query_Cnt As Integer = 0
+ Dim g_Auto_Log_Query_WriteCnt As Integer = 0
+ Dim g_Auto_Log_Query_ReplyRev As Integer = 0
+
+
+ '''
+ ''' 一键查询日志内容
+ '''
+ '''
+ '''
+ Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
+
+ If g_Auto_Log_Query_Enable Then
+ '当前处于正在查询日志,停止查询
+ Timer1.Interval = 10
+ Timer1.Enabled = False
+ g_Auto_Log_Query_Cnt = 0
+ g_Auto_Log_Query_Enable = False
+
+ Button6.ForeColor = Color.Black
+ Button6.Text = "一键查询"
+
+ Else
+ '开启自动查询日志
+ Timer1.Interval = 10
+ Timer1.Enabled = True
+ g_Auto_Log_Query_Cnt = 0
+ g_Auto_Log_Query_Enable = True
+ TextBox10.Text = 0
+
+ Button6.ForeColor = Color.Red
+ Button6.Text = "停止查询"
+ End If
+
+
+ End Sub
+
+ '''
+ '''
+ '''
+ '''
+ '''
+ Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
+
+
+ g_Auto_Log_Query_Cnt += 1
+
+ If g_Auto_Log_Query_Cnt >= 10 Then
+
+ g_Auto_Log_Query_Cnt = 0
+ 'TextBox10.Text += 1
+
+ Dim temp_num As Integer = CInt(TextBox10.Text)
+ Dim temp_sum As Integer = CInt(TextBox9.Text)
+
+
+
+
+ If SerialPort.IsOpen Then
+ temp_num += 1
+ TextBox10.Text = temp_num
+
+ Button5.PerformClick()
+
+ If temp_num >= temp_sum Then
+
+ '查询结束
+ Timer1.Interval = 10
+ Timer1.Enabled = False
+ g_Auto_Log_Query_Cnt = 0
+ g_Auto_Log_Query_Enable = False
+
+ Button6.ForeColor = Color.Black
+ Button6.Text = "一键查询"
+ End If
+ Else
+
+ '当前处于正在查询日志,停止查询
+ Timer1.Interval = 10
+ Timer1.Enabled = False
+ g_Auto_Log_Query_Cnt = 0
+ g_Auto_Log_Query_Enable = False
+
+ Button6.ForeColor = Color.Black
+ Button6.Text = "一键查询"
+
+ MsgBox("请打开串口!")
+ End If
+
+
+
+
+
+
+ End If
+
+
+
+ 'Console.WriteLine($"Timer1_Tick {g_Auto_Log_Query_Cnt}")
+
+
+
+ End Sub
+
+ '''
+ ''' 数据时间结构
+ '''
+ Class LOG_DATE
+ Public year As Int32
+ Public month As Int32
+ Public day As Int32
+ Public hour As Int32
+ Public minute As Int32
+ Public second As Int32
+ Public milliscond As Int32
+ End Class
+
+ Class LOG_Data_List
+ Public original_data() As Byte
+ Public sn As Byte
+ Public time As DateTime
+ Public type As Byte
+ Public para_data() As Byte
+ Public parsing As String
+ End Class
+
+ '''
+ ''' 解析表格排序
+ '''
+ Enum form_grid1
+ sn
+ data_date
+ data_parsing
+ End Enum
+
+ Dim Log_Data As New List(Of LOG_Data_List)
+
+ Private Sub Grid_Format_initial()
+ '新表格控件
+ With Grid1
+
+ .AutoRedraw = False '禁止刷
+ .Rows = 6 '返回或设置表格的行数
+ .Cols = 4
+ .DefaultFont = New Font("Tahoma", 8) '设置字体
+ .ExtendLastCol = True '设置扩展最后一列的列宽,让表格可以充满控件
+ .BackColor1 = Color.FromArgb(231, 235, 247)
+ .GridColor = Color.FromArgb(148, 190, 231)
+
+
+ .Cell(0, 1).Text = " 序号 "
+
+ .Cell(0, 2).Text = " 时间 "
+
+ .Cell(0, 3).Text = "内容"
+
+ .Column(1).CellType = FlexCell.CellTypeEnum.TextBox
+ .Column(2).CellType = FlexCell.CellTypeEnum.TextBox
+ .Column(3).CellType = FlexCell.CellTypeEnum.TextBox
+
+ .Column(1).AutoFit()
+ .Column(2).AutoFit()
+ .Column(3).AutoFit()
+
+ .Column(1).Alignment = FlexCell.AlignmentEnum.CenterCenter
+ .Column(2).Alignment = FlexCell.AlignmentEnum.CenterCenter '居中对齐
+ '.Column(3).Alignment = FlexCell.AlignmentEnum.LeftCenter '左对齐
+ .Column(3).Alignment = FlexCell.AlignmentEnum.CenterCenter '居中对齐
+
+ .SelectionMode = FlexCell.SelectionModeEnum.ByRow '整行选取
+
+ .DisplayRowNumber = True '开启行号
+ .AutoRedraw = True
+ .Refresh() '加载数据
+
+ End With
+ End Sub
+
+ '''
+ ''' 将数据显示到表格中
+ '''
+ '''
+ Public Sub Grid_ADD_LOG_Data(data_list As List(Of LOG_Data_List), show_grid As FlexCell.Grid)
+ Dim temp_num As Int32
+ Dim temp_string As String
+ '将数据对应的序号填充到对应的行号中
+
+ If data_list.Count > show_grid.Rows - 1 Then
+ 'Console.WriteLine("Grid - 添加新行")
+ show_grid.AddItem(" ", True) '添加新行
+
+ End If
+
+ temp_num = data_list.Count - 1 '获取当前数据列表中有多少条数据
+ temp_string = $"List Count:{temp_num} Rows:{show_grid.Rows}"
+ 'Console.WriteLine(temp_string)
+
+ 'show_grid.AddItem(" ", True) '添加新行
+ show_grid.Cell(data_list.Count, form_grid1.sn + 1).Text = data_list(temp_num).sn
+
+ show_grid.Cell(data_list.Count, form_grid1.data_date + 1).Text = data_list(temp_num).time
+ show_grid.Cell(data_list.Count, form_grid1.data_parsing + 1).Text = data_list(temp_num).parsing
+ End Sub
+
+ Public Sub Grid_Refresh_LOG_Data(data_list As List(Of LOG_Data_List), row As Integer, show_grid As FlexCell.Grid)
+ Dim temp_num As Int32
+ Dim temp_string As String
+ '将数据对应的序号填充到对应的行号中
+
+ If row > show_grid.Rows - 1 Then
+ 'Console.WriteLine("Grid - 添加新行")
+ show_grid.AddItem(" ", True) '添加新行
+
+ End If
+
+ temp_num = row - 1 '获取当前数据列表中有多少条数据
+ temp_string = $"List Count:{temp_num} Rows:{show_grid.Rows}"
+ 'Console.WriteLine(temp_string)
+
+ show_grid.Cell(row, form_grid1.sn + 1).Text = data_list(temp_num).sn
+ show_grid.Cell(row, form_grid1.data_date + 1).Text = data_list(temp_num).time
+ show_grid.Cell(row, form_grid1.data_parsing + 1).Text = data_list(temp_num).parsing
+ End Sub
+ Public TextBox2check As Boolean
+ Private Sub ToolStripTextBox2_TextChanged(sender As Object, e As EventArgs) Handles ToolStripTextBox2.TextChanged
+ TextBox2check = True
+ If String.IsNullOrEmpty(ToolStripTextBox2.Text.Trim) Then
+ TextBox2check = False
+ End If
+ Dim str As String
+ For i = 0 To ToolStripTextBox2.Text.Length - 1
+ str = ToolStripTextBox2.Text.Substring(i, 1)
+ '判断 第i个字符 是否在 0到9 A到F 和空格
+ If Not ((str >= "0" And str <= "9") OrElse
+ (str.ToUpper >= "A" And str.ToUpper <= "F") OrElse
+ (str.Equals(" "))) Then
+ ToolStripTextBox2.ForeColor = Color.Red
+ TextBox2check = False
+ ''Console.WriteLine($"【{str}】:{ (str >= "0" And str <= "9") }")
+ ''Console.WriteLine($"【{str}】:{ (str.ToUpper >= "A" And str.ToUpper <= "F") }")
+ ''Console.WriteLine($"【{str}】:{ str.Equals(" ")}")
+
+ Else
+ ToolStripTextBox2.ForeColor = Color.Black
+ End If
+ Next
+ End Sub
+ Public CommandSetDic As Dictionary(Of String, Byte())
+
+ Public Sub InitCommandSetDic()
+ Dim str As String = ProcessTable.Cell(0, 0).Tag
+ If String.IsNullOrEmpty(str) OrElse str.Length = 0 Then
+ CommandSetDic = New Dictionary(Of String, Byte())
+ CommandSetDic.Add("开启上报", HexStringToByteArray("AE 08 59 01 04 01 00 EA"))
+ CommandSetDic.Add("关闭上报", HexStringToByteArray("AE 08 5A 01 04 00 00 EA"))
+ CommandSetDic.Add("读取RTC时间", HexStringToByteArray("AE 08 5C 02 01 00 00 EA"))
+ CommandSetDic.Add("设置RTC时间", {})
+ CommandSetDic.Add("设置生产时间", {})
+ CommandSetDic.Add("延时", {2})
+ CommandSetDic.Add("获取服务器key", {0})
+ CommandSetDic.Add("设置设备key", {0})
+ CommandSetDic.Add("读取设备key", {"AE 08 54 02 09 00 00 EA"})
+ Else
+ CommandSetDic = JsonConvert.DeserializeObject(Of Dictionary(Of String, Byte()))(str)
+ End If
+
+ SendNodeDic = New List(Of (String, SendNode))
+
+ End Sub
+ Public FileCPatrh = $"{Application.StartupPath}\NT318"
+ Public Sub SaveCommandSetDic()
+
+ ProcessTable.Cell(0, 0).Tag = JsonConvert.SerializeObject(CommandSetDic)
+ If Not IO.Directory.Exists(FileCPatrh & "\CommandSetDic") Then
+ IO.Directory.CreateDirectory(FileCPatrh & "\CommandSetDic")
+ End If
+ ProcessTable.SaveFile(FileCPatrh & "\CommandSetDic.flx")
+ '判断日文件夹在不在
+ If Not IO.Directory.Exists(FileCPatrh & "\Log") Then
+ IO.Directory.CreateDirectory(FileCPatrh & "\Log")
+ End If
+ Grid_table.SaveFile(FileCPatrh & $"\Log\{Now.ToString("yyyyMMddHHmmss")}.flx")
+ End Sub
+ Public Sub InitLoadProcessTable(Optional isFile As Boolean = True)
+ If isFile Then
+ If IO.File.Exists(FileCPatrh & "\CommandSetDic.flx") Then
+ ProcessTable.OpenFile(FileCPatrh & "\CommandSetDic.flx")
+ Return
+ End If
+ End If
+
+ ProcessTable.NewFile()
+ ProcessTable.Cols = 5
+ ProcessTable.Rows = 1
+ ProcessTable.DisplayRowNumber = True
+ ProcessTable.ExtendLastCol = True
+
+ ProcessTable.Cell(0, 0).Text = "序号"
+ ProcessTable.Cell(0, 1).Text = "勾选"
+ ProcessTable.Cell(0, 2).Text = "命令别名"
+ ProcessTable.Cell(0, 3).Text = "命令"
+ ProcessTable.Cell(0, 4).Text = "发送状态"
+
+ ProcessTable.Column(0).Width = 50
+ ProcessTable.Column(1).Width = 20
+ ProcessTable.Column(2).Width = 120
+ ProcessTable.Column(3).Width = 200
+ ProcessTable.Column(4).Width = 100
+
+ ProcessTable.Column(0).Alignment = AlignmentEnum.GeneralCenter
+ ProcessTable.Column(1).Alignment = AlignmentEnum.GeneralCenter
+ ProcessTable.Column(2).Alignment = AlignmentEnum.GeneralCenter
+ ProcessTable.Column(3).Alignment = AlignmentEnum.GeneralCenter
+ ProcessTable.Column(4).Alignment = AlignmentEnum.GeneralCenter
+
+ ProcessTable.Column(1).CellType = CellTypeEnum.CheckBox
+ ProcessTable.Column(2).CellType = CellTypeEnum.ComboBox
+ ProcessTable.Column(3).Locked = True
+
+ End Sub
+ Public Sub InitGrid_table()
+ With Grid_table
+ .NewFile()
+ .Rows = 1
+ .Cols = TableEnum.MAX
+ .DisplayRowNumber = True
+ .ExtendLastCol = True
+ For i = 0 To TableEnum.MAX - 1
+ If i = 0 Then
+ .Column(0).Width = 50
+ End If
+ .Cell(0, i).Text = GetTableEnumName(i)
+ .Column(i).Alignment = AlignmentEnum.GeneralCenter
+ .Column(i).Locked = True
+ Next
+ End With
+ End Sub
+
+ Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+
+ If String.IsNullOrEmpty(T_CommandAlias.Text.Trim) Then
+ MsgBox("请输入命令别名")
+ Return
+ End If
+ If String.IsNullOrEmpty(ToolStripTextBox2.Text.Trim) Then
+ MsgBox("请输入命令")
+ Return
+ End If
+ Dim CommandAlia As String = T_CommandAlias.Text.Trim
+ Dim Command As String = ToolStripTextBox2.Text.Trim
+
+
+ If CommandSetDic.ContainsKey(CommandAlia) Then
+ '提示框提示用户是否需要覆盖
+ If MsgBox("该命令别名已存在,是否覆盖?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+ CommandSetDic(CommandAlia) = HexStringToByteArray(Command)
+ End If
+ Else
+ CommandSetDic.Add(CommandAlia, HexStringToByteArray(Command))
+ End If
+
+ End Sub
+
+ '''
+ ''' 将字符串按 UTF-8 编码转成 Byte 数组。
+ '''
+ Public Function StringToBytes(ByVal s As String) As Byte()
+
+ Return System.Text.Encoding.UTF8.GetBytes(s)
+ End Function
+ '将16进制字符串转换为字节数组
+ Private Function HexStringToByteArray(hex As String) As Byte()
+
+ Dim bytes As New List(Of Byte)
+ hex = hex.Replace(" ", "").Trim.ToUpper()
+ For i As Integer = 0 To hex.Length - 1 Step 2
+ Dim hexByte As String = hex.Substring(i, 2)
+ bytes.Add(Convert.ToByte(hexByte, 16))
+ Next
+ Return bytes.ToArray()
+ End Function
+
+ '将字节数组转换为16进制字符串
+ Private Function ByteArrayToHexString(bytes As Byte()) As String
+ If bytes Is Nothing OrElse bytes.Length = 0 Then Return ""
+ Dim hex As String = ""
+ For Each b As Byte In bytes
+ hex += b.ToString("X2") & " "
+ Next
+ Return hex.Trim()
+
+ End Function
+
+ Private Sub ProcessTable_ComboDropDown(Sender As Object, e As Grid.ComboDropDownEventArgs) Handles ProcessTable.ComboDropDown
+ If e.Row = 0 Then Return
+ If e.Col = 2 Then
+ ProcessTable.ComboBox(e.Col).Items.Clear()
+ ProcessTable.ComboBox(e.Col).Items.AddRange(CommandSetDic.Keys.ToArray())
+ End If
+ End Sub
+
+ Public SendNodeDic As List(Of (String, SendNode))
+ Public StartSendThread As Thread
+ Public IsRuningTest As Boolean = False
+ Public IsStopTest As Boolean = False
+ Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
+ If ToolStripButton3.Text = "开始校时" Then
+ If Not SerialPort.IsOpen Then
+ MsgBox("串口未打开")
+ Return
+ End If
+
+
+ ToolStripButton3.Text = "停止校时"
+ ToolStripButton3.ForeColor = Color.Red
+ IsRuningTest = True
+ IsStopTest = False
+ isnotSendNode = True
+ IsSetTime = False
+ IsRtcTime = False
+ SendNodeDic.Clear()
+ Label38.ForeColor = Color.Yellow
+ If ProcessTable.Rows = 1 Then
+ ' MsgBox("命令列表为空!!!")
+ Label38.Text = "命令列表为空!!!"
+ Label38.ForeColor = Color.Red
+ Return
+ End If
+ For i = 1 To ProcessTable.Rows - 1
+ If ProcessTable.Cell(i, 1).Text = "1" Then
+ ' ProcessTable.Rows = ProcessTable.Rows - 1
+ SendNodeDic.Add((ProcessTable.Cell(i, 2).Text, New SendNode()))
+ End If
+ Next
+
+ Button24.PerformClick()
+
+ '运行线程如果 线程不存在则新建线程并运行如果线程存在中则先终止再新启动
+ If StartSendThread Is Nothing OrElse StartSendThread.ThreadState = ThreadState.Stopped Then
+ StartSendThread = New Thread(AddressOf StartSendThreadRuning)
+ StartSendThread.Start()
+ Else
+ StartSendThread.Abort()
+ StartSendThread = New Thread(AddressOf StartSendThreadRuning)
+ StartSendThread.Start()
+ End If
+
+
+ Else
+ ToolStripButton3.Text = "开始校时"
+ ToolStripButton3.ForeColor = Color.Black
+ IsRuningTest = False
+ IsStopTest = True
+ End If
+
+
+ End Sub
+
+ Delegate Sub delegateRefreshCaptureText(Textcolor As Color, Textstr As String)
+
+
+ Public Sub RefreshCaptureText(Textcolor As Color, Textstr As String)
+ If Me.InvokeRequired = True Then
+ Dim dd As New delegateRefreshCaptureText(AddressOf RefreshCaptureText)
+ Me.Invoke(dd, {Textcolor, Textstr})
+ Else
+ If Textcolor = Color.Red Then
+ Label38.Text = "失败"
+ Label38.ForeColor = Textcolor
+ Else
+
+ If Textcolor = Color.Green Then
+ If Textstr.Contains("校时完成") Then
+ Label38.Text = "成功"
+ Label38.ForeColor = Textcolor
+ Else
+ Label38.Text = "校时中"
+ Label38.ForeColor = Color.Yellow
+ End If
+ End If
+ End If
+ 'Label38.Text = Textstr
+
+ End If
+ End Sub
+ Public Sub RefreshCaptureRichText(Textcolor As Color, Textstr As String)
+ If Me.InvokeRequired = True Then
+ Dim dd As New delegateRefreshCaptureText(AddressOf RefreshCaptureRichText)
+ Me.Invoke(dd, {Textcolor, Textstr})
+ Else
+ RichTextBox1.Text = Textstr
+ Label38.ForeColor = Textcolor
+ End If
+
+
+
+
+ End Sub
+
+
+ Public Sub StartSendThreadRuning()
+ ' SendPortData1()
+
+ Dim result As String = String.Empty
+ Dim nextnode As SendNode
+ For Each node In SendNodeDic
+ Console.WriteLine(node.Item1)
+ If node.Item1.Equals("读取RTC时间") Then
+ Console.WriteLine(node.Item1)
+ End If
+ If IsRuningTest = False Then Exit For
+
+ If isnotSendNode = False Then
+ RefreshCaptureText(Color.Red, "校时失败!!")
+ IsRuningTest = False
+ Exit For
+ End If
+
+ '循环等待节点接收状态改变
+ While node.Item2.RecvStatus = SendNode.RecvStatusEnum.None
+ If IsRuningTest = False Then Exit For
+ If node.Item1.Equals("延时") Then
+ node.Item2.AddRecvData(CommandSetDic.Item("延时"))
+ node.Item2.ResendRefresh()
+ Thread.Sleep(CInt(CommandSetDic.Item("延时")(0)) * 1000)
+ node.Item2.RecvRefresh(CommandSetDic.Item("延时"))
+ Exit While
+ End If
+
+ If node.Item1.Equals("获取服务器key") Then
+ node.Item2.AddRecvData({0})
+ node.Item2.ResendRefresh()
+ AppendTipText($"Com-TX:( {Now:HH:mm:ss:fff}):获取服务器key" & vbCrLf, Color.Green)
+
+ '从 后往前 遍历 SendNodeDic 列表
+ Dim ifnode As (String, SendNode)
+ For i As Integer = SendNodeDic.Count - 1 To 0 Step -1
+ ifnode = SendNodeDic(i)
+ If ifnode.Item1.Equals("读取软件版本号") AndAlso ifnode.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+ Exit For
+ End If
+ Next
+
+ If Not IsNothing(ifnode) AndAlso ifnode.Item1.Equals("读取软件版本号") AndAlso ifnode.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+
+
+ Dim MachineType As Integer
+ Dim Brandld As Integer
+ Dim buff As Byte() = ifnode.Item2.RecvDataLisr(0)
+
+
+ MachineType = CombineTwoBytesToDecimal(buff(7), buff(8))
+ Brandld = CombineTwoBytesToDecimal(buff(9), buff(10))
+
+ Dim uuid As String = ""
+ For ni As Integer = 1 To buff(13)
+ uuid += $"{Hex2(buff(13 + ni))} "
+ Next
+ uuid = uuid.Replace(" ", "")
+ Dim apinode As Program = API_AllocationBarCode(uuid, MachineType, Brandld)
+ If IsNothing(apinode) Then
+
+ Else
+ AppendTipText($"Com-TX:( {Now:HH:mm:ss:fff}):获取服务器ClientId:{apinode.Response.ClientId}key:{apinode.Response.SecretKey}" & vbCrLf, Color.Blue)
+ node.Item2.RecvDatadic = apinode
+ node.Item2.RecvRefresh({0})
+ End If
+
+ Else
+ IsRuningTest = False '退出流程
+ RefreshCaptureText(Color.Red, $"节点:{node.Item1} :执行失败!")
+ Exit While
+ End If
+
+ End If
+ If node.Item1.Equals("设置设备key") Then
+ Dim ifnode As (String, SendNode)
+ Dim Nfnode As (String, SendNode)
+ For i As Integer = SendNodeDic.Count - 1 To 0 Step -1
+ If IsNothing(ifnode) Then
+ ifnode = SendNodeDic(i)
+ If ifnode.Item1.Equals("获取服务器key") AndAlso ifnode.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+ Else
+ ifnode = Nothing
+ End If
+ End If
+ If IsNothing(Nfnode) Then
+ Nfnode = SendNodeDic(i)
+ If Nfnode.Item1.Equals("读取设备key") AndAlso Nfnode.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+ Else
+ Nfnode = Nothing
+ End If
+ End If
+ Next
+ If Not IsNothing(ifnode.Item2) AndAlso Not IsNothing(Nfnode.Item2) Then
+ Dim devkey As Integer
+ Dim devClientId As String
+ Dim buff = Nfnode.Item2.RecvDataLisr(0)
+ Dim src As Byte() = Slice(buff, 5, 4)
+ devkey = BytesLE4ToInt(src)
+ src = Slice(buff, 9, buff(1) - 10)
+ devClientId = BytesToString(src).Trim
+
+ Dim apinode As Program = ifnode.Item2.RecvDatadic
+
+ If apinode.Response.SecretKey.Equals(devkey.ToString) AndAlso apinode.Response.ClientId.Equals(devClientId) Then
+ AppendTipText($"Com-TX:( {Now:HH:mm:ss:fff}):获取服务器ClientId:{apinode.Response.ClientId}key:{apinode.Response.SecretKey}" & vbCrLf, Color.Blue)
+ node.Item2.RecvRefresh({0})
+ Exit While
+ End If
+
+ End If
+
+ End If
+
+
+ '判断发送状态是否改变0:未发送,1:发送成功,2:发送失败
+ If node.Item2.SendStatus = SendNode.SendStatusEnum.None Then
+ '发送数据并更新发送状态
+ result = SendPortData1(node.Item1, node.Item2)
+ AppendTipText($"Com-TX:【{node.Item1}】", Color.Green)
+ AppendTipText("(" & Now.ToString("yyyy-MM-dd HH:mm:ss") & "):", Color.Black)
+ AppendTipText(ByteToString(node.Item2.SendData) & vbCrLf, Color.Green)
+ If String.IsNullOrEmpty(result) Then
+ result = $"节点:{node.Item1} :发送成功!"
+ RefreshCaptureText(Color.Green, result)
+ Else
+ IsRuningTest = False '退出流程
+ RefreshCaptureText(Color.Red, result)
+ End If
+ Else
+ '判断节点是否需要重新发送
+ If node.Item2.NeedResend() Then
+ result = SendPortData1(node.Item1, node.Item2)
+ AppendTipText("Com-TX:", Color.Green)
+ AppendTipText("(" & Now.ToString("yyyy-MM-dd HH:mm:ss") & "):", Color.Black)
+ AppendTipText(ByteToString(node.Item2.SendData) & vbCrLf, Color.Green)
+ If String.IsNullOrEmpty(result) Then
+ result = $"节点:{node.Item1} :重发[{ node.Item2.SendCount}] 送成功!"
+ RefreshCaptureText(Color.Green, result)
+ Else
+ IsRuningTest = False '退出流程
+ RefreshCaptureText(Color.Red, result)
+ End If
+ Else
+ If node.Item2.SendCount < 3 Then
+ Else
+ IsRuningTest = False '退出流程
+ RefreshCaptureText(Color.Red, $"节点:{node.Item1} :发送失败!")
+ End If
+ End If
+
+ End If
+
+
+
+ '延时(100)
+ Thread.Sleep(100)
+
+ End While
+
+
+ Next
+
+ '数据入库
+ Dim sresult As String = StoreTestDataInTheDatabase()
+ If String.IsNullOrEmpty(sresult) Then
+ If IsRuningTest = True Then
+ RefreshCaptureText(Color.Green, "校时完成!")
+ End If
+ Else
+ RefreshCaptureText(Color.Red, sresult)
+ End If
+
+
+ delToolStripButton3()
+
+ End Sub
+
+ Public Shared Function API_AllocationBarCode(Mcu_Uuid As String, MachineType As Integer, Brandld As Integer) As Program
+
+ Dim jsonString As String = String.Empty
+ Dim dic As New Dictionary(Of String, String)
+ dic.Add("Mcu_Uuid", Mcu_Uuid)
+ dic.Add("MachineType", MachineType)
+ dic.Add("Brandld", Brandld)
+ Dim jsonstr As String = JsonConvert.SerializeObject(dic)
+ Try
+ jsonString = PostData2("http://iot.uts-data.com:8086/api/Deviceinfoes/GetOrUpdateDevice", $"{jsonstr}")
+ Catch ex As Exception
+ MsgBox($"网络API调用错误,请联系管理员。")
+ Return Nothing
+ End Try
+ ''Console.WriteLine(jsonString)
+
+ If jsonString = Nothing Then
+ Return Nothing
+ End If
+
+ Dim login As Program
+ Try
+ login = JsonConvert.DeserializeObject(Of Program)(jsonString)
+ If Not IsNothing(login) AndAlso Not IsNothing(login.IsOk) Then
+ If login.IsOk Then
+ Return login
+ Else
+ Return Nothing
+ End If
+ Return Nothing
+ Else
+ Return Nothing
+ End If
+ Catch ex As Exception
+ MsgBox($"Json数据转换错误,请联系管理员。详情 :Json data to AllocationAPI error")
+ Return Nothing
+ End Try
+
+ End Function
+ Public Shared Function PostData2(ByVal url As String, ByVal data As String) As String
+ ServicePointManager.Expect100Continue = False
+ Dim request As HttpWebRequest = WebRequest.Create(url)
+ '//Post请求方式
+ request.Method = "POST"
+
+ '内容类型
+ request.ContentType = "application/json"
+ '将URL编码后的字符串转化为字节
+ Dim encoding As New UTF8Encoding()
+ Dim bys As Byte() = encoding.GetBytes(data)
+ '设置请求的 ContentLength
+ request.ContentLength = bys.Length
+ '获得请 求流
+ Dim newStream As Stream = request.GetRequestStream()
+ newStream.Write(bys, 0, bys.Length)
+ newStream.Close()
+ '获得响应流
+ Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
+ Return sr.ReadToEnd
+ End Function
+ Public Shared Function PostData(ByVal url As String, ByVal data As String) As String
+
+ ServicePointManager.Expect100Continue = False
+ Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
+ '//Post请求方式
+ request.Method = "POST"
+
+ '内容类型
+ request.ContentType = "application/x-www-form-urlencoded"
+ '将URL编码后的字符串转化为字节
+ Dim encoding As New UTF8Encoding()
+
+ Dim bys As Byte() = encoding.GetBytes(data)
+ '设置请求的 ContentLength
+ request.ContentLength = bys.Length
+ '获得请 求流
+ Dim newStream As Stream = request.GetRequestStream()
+ newStream.Write(bys, 0, bys.Length)
+ newStream.Close()
+ '获得响应流
+ Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
+ Return sr.ReadToEnd
+ End Function
+ Delegate Sub delegateToolStripButton3()
+ Public Sub delToolStripButton3()
+ If Me.InvokeRequired = True Then
+ Dim dd As New delegateToolStripButton3(AddressOf delToolStripButton3)
+ Me.Invoke(dd)
+ Else
+ ToolStripButton3.Text = "开始校时"
+ ToolStripButton3.ForeColor = Color.Black
+ IsRuningTest = False
+ IsStopTest = True
+ End If
+ End Sub
+
+ 'byte 转16进制字符串
+ Public Function Hex2(ByVal b As Byte) As String
+ Return b.ToString("X2")
+ End Function
+ '测试数据入库
+ Public Function StoreTestDataInTheDatabase() As String
+ '判断测试是主动停止还是被动停止
+ Dim result As String = String.Empty
+ If IsStopTest = True Then
+ result = "测试被停止!"
+ Return result
+ End If
+ Dim dic As New Dictionary(Of String, String)
+ Dim buff() As Byte
+ dic.Add("测试时间", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
+ dic.Add("测试结果", "1")
+ dic.Add("测试信息", "成功")
+
+ If IsSetTime = True Then
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"失败:设置生产时间失败!"
+ result = $"失败:设置生产时间失败!"
+ RefreshCaptureText(Color.Red, "失败:设置生产时间失败!")
+ End If
+ If IsRtcTime = True Then
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"失败:设备RTC时钟故障"
+ result = $"失败:设备RTC时钟故障"
+ RefreshCaptureText(Color.Red, "失败:设备RTC时钟故障")
+ End If
+ Dim node As (String, SendNode)
+ For i = 0 To SendNodeDic.Count - 1
+ node = SendNodeDic(i)
+ If node.Item1.Equals("延时") Then
+ Continue For
+ End If
+ If node.Item1.Equals("获取服务器key") Then
+ '[服务器key] Text,
+ ' ' [服务器ClientId] TEXT,
+ Dim apinode As Program = node.Item2.RecvDatadic
+ dic.Add("服务器key", apinode.Response.SecretKey)
+ dic.Add("服务器ClientId", apinode.Response.ClientId)
+ Continue For
+ End If
+ If node.Item2.SendStatus = SendNode.SendStatusEnum.Send Then
+ If &H2 = node.Item2.SendData(3) Then
+ '判断接收状态是否为成功
+ If node.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+ buff = node.Item2.RecvDataLisr(0)
+ If node.Item2.SendData(3) = buff(3) AndAlso node.Item2.SendData(4) = buff(4) Then
+ Try
+ Select Case buff(4)
+ Case 1 '读取RTC时间
+ 'AppendTipText($"RTC: 20{Hex(buff(6))}-{Hex(buff(7))}-{Hex(buff(8))} {Hex(buff(9))}:{Hex(buff(10))}:{Hex(buff(11))} {Hex(buff(12))} " & vbCrLf, Color.Blue)
+ dic.Add("RTC时间", $"20{Hex2(buff(6))}-{Hex2(buff(7))}-{Hex2(buff(8))} {Hex2(buff(9))}:{Hex2(buff(10))}:{Hex2(buff(11))}")
+ dic.Add("RTC星期", $"{Hex(buff(12))}")
+ Case 2 '读取设置参数信息
+
+ '00 - 读取校准结果:0x00:校准成功, 其他值: 校准失败
+ ' 1E 00 稳定消抖时间 - 单位:s
+ '2C 01 背景值滤波长度 - 单位:s
+ ' FA 0F 传感器极大值
+ ' 0A 00 传感器极小值
+ ' 03 00 预热时间 - 单位:分钟
+ '34 08 LEV 10% 对应的ADC 值
+ ' 20 03 LEV 0% 对应的ADC 值
+ ' 96 00 触发 - 消抖次数
+ ' 96 00 释放 - 消抖次数
+ ' 64 00 稳定阈值
+ ' 32 00 报警点提前量
+ ' B0 4 校准超时 - 单位: S
+ '14 00 LEV 0% 校准最小值
+ ' AC 0D LEV 0% 校准最大值
+ ' F4 1 LEV 10% 校准最小值
+ ' FA 0F LEV 10% 校准最大值
+ ' 14 00 差值 校准最小值
+ ' FA 0F 差值 校准最大值
+ ' C8 0 泄露恢复正常 判定条件1: 处于基准的XX倍数以内
+ '05 00 泄露恢复正常 判定条件1:处于基准的XX倍数以内的消抖时间 单位: 秒
+ '84 03 泄露恢复正常 判定条件2:处于基准的XX倍数以内
+ '78 00 泄露恢复正常 判定条件2:处于基准的XX倍数以内的消抖时间 单位: 分钟
+ 'DC 63 E6 67 设备生产时间
+ If dic.ContainsKey("校准结果") Then
+ Select Case buff(5)
+ Case 0
+ dic("校准结果") = $"{(buff(5))}_OK"
+ Case 1
+ dic("校准结果") = $"{(buff(5))}_未校准"
+ Case 2
+ dic("校准结果") = $"{(buff(5))}_校验错误"
+ End Select
+
+ dic("温度校准算法选择") = CombineTwoBytesToDecimal(buff(6), buff(7))
+ dic("回差") = CombineTwoBytesToDecimal(buff(8), buff(9))
+ dic("传感器极大值") = CombineTwoBytesToDecimal(buff(10), buff(11))
+ dic("传感器极小值") = CombineTwoBytesToDecimal(buff(12), buff(13))
+ dic("预热时间_分") = CombineTwoBytesToDecimal(buff(14), buff(15))
+ dic("ADC_LEV_10") = CombineTwoBytesToDecimal(buff(16), buff(17))
+ dic("ADC_LEV_0") = CombineTwoBytesToDecimal(buff(18), buff(19))
+ dic("触发_消抖次数") = CombineTwoBytesToDecimal(buff(20), buff(21))
+ dic("释放_消抖次数") = CombineTwoBytesToDecimal(buff(22), buff(23))
+ dic("稳定阈值") = CombineTwoBytesToDecimal(buff(24), buff(25))
+ dic("报警点提前量") = CombineTwoBytesToDecimal(buff(26), buff(27))
+ dic("校准超时_秒") = CombineTwoBytesToDecimal(buff(28), buff(29))
+ dic("IHIOT_心跳包上报间隔") = CombineTwoBytesToDecimal(buff(30), buff(31))
+ dic("OSD显示模式") = CombineTwoBytesToDecimal(buff(32), buff(33))
+ dic("检测故障最小值") = CombineTwoBytesToDecimal(buff(34), buff(35))
+ dic("检测故障最大值") = CombineTwoBytesToDecimal(buff(36), buff(37))
+ dic("校准最小值_LEV_0") = CombineTwoBytesToDecimal(buff(38), buff(39))
+ dic("校准最大值_LEV_0") = CombineTwoBytesToDecimal(buff(40), buff(41))
+ dic("校准最小值_LEV_10") = CombineTwoBytesToDecimal(buff(42), buff(43))
+ dic("校准最大值_LEV_10") = CombineTwoBytesToDecimal(buff(44), buff(45))
+ dic("校准最小值_差值") = CombineTwoBytesToDecimal(buff(46), buff(47))
+ dic("校准最大值_差值") = CombineTwoBytesToDecimal(buff(48), buff(49))
+ dic("自定义LEV_10_对应的ADC") = CombineTwoBytesToDecimal(buff(50), buff(51))
+ dic("自定义LEV_0_对应的ADC") = CombineTwoBytesToDecimal(buff(52), buff(53))
+ dic("泄露恢复正常_条件2") = CombineTwoBytesToDecimal(buff(54), buff(55))
+ dic("泄露恢复正常_条件2消抖时间_分") = CombineTwoBytesToDecimal(buff(56), buff(57))
+ dic("设备生产时间") = CombineFourBytesToLong(buff(61), buff(60), buff(59), buff(58))
+
+ Else
+ dic.Add("校准结果", $"{(buff(5))}")
+ dic("温度校准算法选择") = CombineTwoBytesToDecimal(buff(6), buff(7))
+ dic("回差") = CombineTwoBytesToDecimal(buff(8), buff(9))
+ dic("传感器极大值") = CombineTwoBytesToDecimal(buff(10), buff(11))
+ dic("传感器极小值") = CombineTwoBytesToDecimal(buff(12), buff(13))
+ dic("预热时间_分") = CombineTwoBytesToDecimal(buff(14), buff(15))
+ dic("ADC_LEV_10") = CombineTwoBytesToDecimal(buff(16), buff(17))
+ dic("ADC_LEV_0") = CombineTwoBytesToDecimal(buff(18), buff(19))
+ dic("触发_消抖次数") = CombineTwoBytesToDecimal(buff(20), buff(21))
+ dic("释放_消抖次数") = CombineTwoBytesToDecimal(buff(22), buff(23))
+ dic("稳定阈值") = CombineTwoBytesToDecimal(buff(24), buff(25))
+ dic("报警点提前量") = CombineTwoBytesToDecimal(buff(26), buff(27))
+ dic("校准超时_秒") = CombineTwoBytesToDecimal(buff(28), buff(29))
+ dic("IHIOT_心跳包上报间隔") = CombineTwoBytesToDecimal(buff(30), buff(31))
+ dic("OSD显示模式") = CombineTwoBytesToDecimal(buff(32), buff(33))
+ dic("检测故障最小值") = CombineTwoBytesToDecimal(buff(34), buff(35))
+ dic("检测故障最大值") = CombineTwoBytesToDecimal(buff(36), buff(37))
+ dic("校准最小值_LEV_0") = CombineTwoBytesToDecimal(buff(38), buff(39))
+ dic("校准最大值_LEV_0") = CombineTwoBytesToDecimal(buff(40), buff(41))
+ dic("校准最小值_LEV_10") = CombineTwoBytesToDecimal(buff(42), buff(43))
+ dic("校准最大值_LEV_10") = CombineTwoBytesToDecimal(buff(44), buff(45))
+ dic("校准最小值_差值") = CombineTwoBytesToDecimal(buff(46), buff(47))
+ dic("校准最大值_差值") = CombineTwoBytesToDecimal(buff(48), buff(49))
+ dic("自定义LEV_10_对应的ADC") = CombineTwoBytesToDecimal(buff(50), buff(51))
+ dic("自定义LEV_0_对应的ADC") = CombineTwoBytesToDecimal(buff(52), buff(53))
+ dic("泄露恢复正常_条件2") = CombineTwoBytesToDecimal(buff(54), buff(55))
+ dic("泄露恢复正常_条件2消抖时间_分") = CombineTwoBytesToDecimal(buff(56), buff(57))
+ dic("设备生产时间") = CombineFourBytesToLong(buff(61), buff(60), buff(59), buff(58))
+ End If
+
+
+ Case 3 '读取软件版本号
+ '04 软件版本号
+ '03 硬件板本号
+ ' 78 00 3E 00 0F 80 13 11 0C 80 UUID
+
+ dic.Add("软件版本号", $"{Hex(buff(5))}")
+ dic.Add("硬件版本号", $"{Hex(buff(6))}")
+ dic.Add("设备类型ID", CombineTwoBytesToDecimal(buff(7), buff(8)))
+ dic.Add("厂牌ID", CombineTwoBytesToDecimal(buff(9), buff(10)))
+ dic.Add("机型ID", CombineTwoBytesToDecimal(buff(11), buff(12)))
+ Dim uuid As String = ""
+ For ni As Integer = 1 To buff(13)
+ uuid += $"{Hex2(buff(13 + ni))} "
+ Next
+ dic.Add("UUID", $"{uuid}")
+ Case 4 '读取实时状态
+ ' 02 00 状态机 - 正常监控 类型int16_t
+ ' C6 1 实时值 - 类型int16_t
+ ' C9 1 背景值 - 类型int16_t
+ ' C6 1 基底值 - 类型int16_t
+ ' FD FF 差值 - 类型int16_t
+ ' 00 00 LEL百分比 - 类型int16_t
+ ' 01 00 稳定状态 - 类型int16_t
+ ' 0E A2 基底值差值百分比1 - 类型int16_t
+ ' 3B A4 基底值+差值百分比2 - 类型int16_t
+ ' 4C 00 温度 - 类型int16_t
+ dic.Add("状态机", ReadTheStatus(CombineTwoBytesToDecimal(buff(5), buff(6))))
+ dic.Add("实时值", CombineTwoBytesToDecimal(buff(7), buff(8)))
+ dic.Add("背景值", CombineTwoBytesToDecimal(buff(9), buff(10)))
+ dic.Add("基底值", CombineTwoBytesToDecimal(buff(11), buff(12)))
+ dic.Add("差值", CombineTwoBytesToDecimaShort(buff(13), buff(14)))
+ dic.Add("LEL百分比", CombineTwoBytesToDecimal(buff(15), buff(16)))
+ dic.Add("稳定状态", CombineTwoBytesToDecimal(buff(17), buff(18)))
+ dic.Add("基底值差值百分比1", CombineTwoBytesToDecimal(buff(20), buff(19)))
+ dic.Add("基底值差值百分比2", CombineTwoBytesToDecimal(buff(22), buff(21)))
+ dic.Add("温度", CombineTwoBytesToDecimal(buff(23), buff(24)))
+ Case 9 '读设备 key
+
+ '[服务器key] Text,
+ ' [服务器ClientId] TEXT,
+ Dim src As Byte() = Slice(buff, 5, 4)
+ If dic.ContainsKey("设备ClientId") Then
+ dic.Item("设备ClientId") = BytesLE4ToInt(src)
+ Else
+ dic.Add("设备ClientId", BytesLE4ToInt(src))
+ End If
+
+ src = Slice(buff, 9, buff(1) - 10)
+ If dic.ContainsKey("设备key") Then
+ dic.Item("设备key") = BytesToString(src)
+ Else
+ dic.Add("设备key", BytesToString(src))
+ End If
+
+ Case Else
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"节点:{node.Item1} :接收数据未找到对应解析方式!"
+ result = $"节点:{node.Item1} :接收数据未找到对应解析方式!"
+ Exit For
+ End Select
+
+ Catch ex As Exception
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"节点:{node.Item1} :接收数据异常!"
+ result = $"节点:{node.Item1} :接收数据异常!"
+ Exit For
+ End Try
+
+ Else
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"节点:{node.Item1} :接收数据异常!"
+ result = $"节点:{node.Item1} :接收数据异常!"
+ Exit For
+ End If
+
+
+ Else
+ '接收失败
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"节点:{node.Item1} :接收失败!"
+ result = $"节点:{node.Item1} :接收失败!"
+ Exit For
+ End If
+ End If
+ Else
+ If node.Item2.SendStatus = SendNode.SendStatusEnum.None Then
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"失败 :设备无校准参数信息!"
+ result = $"失败 :设备无校准参数信息!"
+ ElseIf node.Item2.SendStatus = SendNode.SendStatusEnum.Timeout Then
+ dic.Item("测试结果") = "0"
+ dic.Item("测试信息") = $"节点:{node.Item1} :发送失败!"
+ result = $"节点:{node.Item1} :发送失败!"
+
+ End If
+ Exit For
+ End If
+
+ Next
+ Dim nstr As String = JsonConvert.SerializeObject(dic)
+ '入库
+ WriteToTable(dic)
+
+ Dim localConn As New DbConnectionStringBuilder
+ localConn.Add("Data Source", Sqlitedbpath)
+ Using db As New DbExecutor(DbExecutor.DbTypeEnum.Sqlite, localConn.ToString())
+ Try
+ db.Open()
+ Dim caint = db.ExecuteNonQuery(db.CmdHelper.Insert(SqliteTableName, dic))
+ If caint = 0 Then
+ result = "Sqlite入库失败!"
+ End If
+ db.Close()
+ Catch ex As Exception
+ result = $"Sqlite入库失败!{ex.Message}"
+ End Try
+ db.Close()
+ ' Return True
+ End Using
+
+
+ Using db As New DbExecutor(DbExecutor.DbTypeEnum.Mysql, DbConnString)
+ Try
+ db.Open()
+ Dim caint = db.ExecuteNonQuery(db.CmdHelper.Insert(SqliteTableName, dic))
+ If caint = 0 Then
+ result = "Mysql入库失败!"
+ End If
+ db.Close()
+ Catch ex As Exception
+ result = $"Mysql入库失败!{ex.Message}"
+ End Try
+ db.Close()
+ ' Return True
+ End Using
+ Return result
+
+ End Function
+ '''
+ ''' 将 Byte 数组按 UTF-8 编码转成字符串。
+ '''
+ Public Function BytesToString(buf As Byte()) As String
+ If buf Is Nothing Then Return ""
+ Return System.Text.Encoding.UTF8.GetString(buf)
+ End Function
+
+ '''
+ ''' 从原数组截取部分数据为新数组。
+ '''
+ ''' 源数组
+ ''' 起始索引(0 起算)
+ ''' 要截取的长度
+ Public Function Slice(Of T)(source As T(), start As Integer, length As Integer) As T()
+ If source Is Nothing Then Return Nothing
+ If start < 0 OrElse length <= 0 OrElse start + length > source.Length Then Return New T(-1) {}
+ Dim dest(length - 1) As T
+ Array.Copy(source, start, dest, 0, length)
+ Return dest
+ End Function
+ '''
+ ''' 将 Byte 数组按指定编码转成字符串。
+ ''' 缺省编码为 UTF-8。
+ '''
+ ''' 源数组
+ ''' 编码,省略则 UTF-8
+ Public Function BytesToString(bytes As Byte(),
+ Optional encoding As Text.Encoding = Nothing) As String
+ If bytes Is Nothing OrElse bytes.Length = 0 Then Return ""
+ If encoding Is Nothing Then encoding = System.Text.Encoding.UTF8
+ Return encoding.GetString(bytes)
+ End Function
+ Public Function BytesLE4ToInt(buf As Byte()) As Integer
+ If buf Is Nothing OrElse buf.Length < 4 Then Return 0
+ Return buf(0) Or (buf(1) << 8) Or (buf(2) << 16) Or (buf(3) << 24)
+ End Function
+
+ '创建slqit
+ Public Sqlitedbpath As String = FileCPatrh & "\SQlitedb\test.db"
+ Public SqliteTableName As String = "NT318"
+ Public Function ClearDeviceform() As Boolean
+
+ Dim localConn As New DbConnectionStringBuilder
+ localConn.Add("Data Source", Sqlitedbpath)
+ 'localConn.Add("Password", "123456")
+ Dim LocalConnString = localConn.ToString()
+ '判断有没有文件夹
+ If Not Directory.Exists(FileCPatrh & "\SQlitedb\") Then
+ Directory.CreateDirectory(FileCPatrh & "\SQlitedb\")
+ End If
+
+ Dim selectstr As String = $"CREATE TABLE IF NOT EXISTS {SqliteTableName} (
+ id INTEGER PRIMARY KEY AUTOINCREMENT, -- 替代 BIGINT AUTO_INCREMENT
+ `测试时间` TEXT NOT NULL, -- DATETIME → TEXT (ISO-8601)
+ `测试结果` INTEGER NOT NULL,
+ `测试信息` TEXT NOT NULL,
+ `软件版本号` TEXT NOT NULL,
+ `硬件版本号` TEXT NOT NULL,
+ `设备类型ID` INTEGER NOT NULL,
+ `厂牌ID` INTEGER NOT NULL,
+ `机型ID` INTEGER NOT NULL,
+ `UUID` TEXT NOT NULL,
+ `设备key` TEXT NOT NULL,
+ `设备ClientId` INTEGER NOT NULL,
+ `服务器key` TEXT NOT NULL,
+ `服务器ClientId` INTEGER NOT NULL,
+ `状态机` TEXT NOT NULL,
+ `实时值` INTEGER NOT NULL,
+ `背景值` INTEGER NOT NULL,
+ `基底值` INTEGER NOT NULL,
+ `差值` INTEGER NOT NULL,
+ `LEL百分比` INTEGER NOT NULL,
+ `稳定状态` INTEGER NOT NULL,
+ `基底值差值百分比1` INTEGER NOT NULL,
+ `基底值差值百分比2` INTEGER NOT NULL,
+ `温度` INTEGER NOT NULL,
+ `校准结果` INTEGER NOT NULL,
+ `温度校准算法选择` INTEGER NOT NULL,
+ `回差` INTEGER NOT NULL,
+ `传感器极大值` INTEGER NOT NULL,
+ `传感器极小值` INTEGER NOT NULL,
+ `预热时间_分` INTEGER NOT NULL,
+ `ADC_LEV_10` INTEGER NOT NULL,
+ `ADC_LEV_0` INTEGER NOT NULL,
+ `触发_消抖次数` INTEGER NOT NULL,
+ `释放_消抖次数` INTEGER NOT NULL,
+ `稳定阈值` INTEGER NOT NULL,
+ `报警点提前量` INTEGER NOT NULL,
+ `校准超时_秒` INTEGER NOT NULL,
+ `IHIOT_心跳包上报间隔` INTEGER NOT NULL,
+ `OSD显示模式` INTEGER NOT NULL,
+ `检测故障最小值` INTEGER NOT NULL,
+ `检测故障最大值` INTEGER NOT NULL,
+ `校准最小值_LEV_0` INTEGER NOT NULL,
+ `校准最大值_LEV_0` INTEGER NOT NULL,
+ `校准最小值_LEV_10` INTEGER NOT NULL,
+ `校准最大值_LEV_10` INTEGER NOT NULL,
+ `校准最小值_差值` INTEGER NOT NULL,
+ `校准最大值_差值` INTEGER NOT NULL,
+ `自定义LEV_10_对应的ADC` INTEGER NOT NULL,
+ `自定义LEV_0_对应的ADC` INTEGER NOT NULL,
+ `泄露恢复正常_条件2` INTEGER NOT NULL,
+ `泄露恢复正常_条件2消抖时间_分` INTEGER NOT NULL,
+ `设备生产时间` TEXT NOT NULL,
+ `RTC时间` TEXT NOT NULL,
+ `RTC星期` INTEGER NOT NULL,
+ created_at TEXT DEFAULT (datetime('now'))
+ );"
+
+ Dim dt As DataTable
+ Try
+ Using db As New DbExecutor(DbExecutor.DbTypeEnum.Sqlite, LocalConnString)
+
+ db.Open()
+ 'Try
+ ' 'Dim vselectstr = $"DELETE FROM {Tftp_Log};"
+ ' 'db.ExecuteNonQuery(vselectstr)
+ 'Catch ex As Exception
+
+
+ 'End Try
+ dt = db.ExecuteDataTable(selectstr)
+ db.Close()
+ If IsNothing(dt) Then
+ MsgBox($"数据表创建失败!!!{vbCrLf }")
+ Return False
+ Else
+ Return True
+ End If
+ Return True
+
+ End Using
+
+
+ Catch ex As Exception
+ MsgBox($"数据表创建失败!!!{vbCrLf }原因:{vbCrLf }{ex.Message }")
+ Return False
+ End Try
+ End Function
+ Delegate Sub DelegateWriteToTable(dic As Dictionary(Of String, String))
+ '写入到表格
+ Private Sub WriteToTable(dic As Dictionary(Of String, String))
+ If Me.InvokeRequired = True Then
+ Dim dd As New DelegateWriteToTable(AddressOf WriteToTable)
+ Me.Invoke(dd, {dic})
+ Else
+ Grid_table.AddItem("")
+ Dim con As Integer = 0
+ Dim str As String = String.Empty
+ For i = 1 To Grid_table.Cols - 1
+ str = Grid_table.Cell(0, i).Text
+ If dic.ContainsKey(str) Then
+ Grid_table.Cell(Grid_table.Rows - 1, i).Text = dic(str)
+ Else
+ con += 1
+ End If
+ Next
+ If dic.Item("测试结果") = "1" Then
+
+ Grid_table.Range(Grid_table.Rows - 1, 1, Grid_table.Rows - 1, Grid_table.Cols - 1).ForeColor = Color.Green
+ Grid_table.Range(Grid_table.Rows - 1, 1, Grid_table.Rows - 1, Grid_table.Cols - 1).FontBold = True
+ Else
+ Grid_table.Range(Grid_table.Rows - 1, 1, Grid_table.Rows - 1, Grid_table.Cols - 1).ForeColor = Color.Red
+ Grid_table.Range(Grid_table.Rows - 1, 1, Grid_table.Rows - 1, Grid_table.Cols - 1).FontBold = True
+
+ End If
+ End If
+
+ End Sub
+
+
+ '计算将4个字节合成 Long UTC秒值并转为时间戳
+ Private Function CombineFourBytesToLong(ByVal b1 As Byte, ByVal b2 As Byte, ByVal b3 As Byte, ByVal b4 As Byte) As String
+ '将4个字节合成 Long UTC秒值并转为时间戳
+ Dim temp_val As Long = b1 * 256 * 256 * 256 + b2 * 256 * 256 + b3 * 256 + b4
+
+ '计算UTC时间
+ Return $"{DateAndTime.DateSerial(1970, 1, 1).AddSeconds(temp_val).ToString("yyyy-MM-dd HH:mm:ss")}"
+ End Function
+
+ '将2个字节 合成十进制数
+ Private Function CombineTwoBytesToDecimal(ByVal b1 As Byte, ByVal b2 As Byte) As Integer
+
+ Return b2 * 256 + b1
+ End Function
+ Private Function CombineTwoBytesToDecimaShort(ByVal b1 As Byte, ByVal b2 As Byte) As Short
+ Dim s As Short = b2
+
+ s = s << 8
+ s += b1
+
+
+ Return s
+ End Function
+ '获取校准结果
+ Private Function ReadTheCalibrationResult(Statebyte As Byte) As String
+ If Statebyte = 0 Then
+ Return "0_校准成功"
+ Else
+ Return $"{Statebyte}_校准失败"
+ End If
+ End Function
+ '获取状态机状态
+ Private Function ReadTheStatus(Statebyte As Byte) As String
+
+ ' 状态机
+ '#define DevAPP_PowerOn_Start 0x00 //设备状态 - 上电启动
+ '#define DevAPP_Preheat 0x01 //设备状态 - 预热
+ '#define DevAPP_Normal_Operation 0x02 //设备状态 - 正常监控
+ '#define DevAPP_Leak_Detected 0x03 //设备状态 - 检测到泄露
+ '#define DevAPP_Alarm 0x04 //设备状态 - 报警
+ '#define DevAPP_Malfunction 0x05 //设备状态 - 故障
+ '#define DevAPP_Expiration_Of_Life 0x06 //设备状态 - 寿命到期
+ '#define DevAPP_Calibration_Mode 0x07 //设备状态 - 校准模式
+ '#define DevAPP_Uncalibrated 0x08 //设备状态 - 未校准
+ '#define DevApp_Equipment_Outage 0x09 //设备状态 - 220V电源断开
+ '#define DevApp_SelfCheck_Mode 0x0A //设备状态 - 自检模式
+ '#define DevApp_Pairing_Mode 0x0B //设备状态 - 无线配对模式
+ Select Case Statebyte
+ Case &H0
+ Return $"{Hex(Statebyte)}_上电启动"
+ Case &H1
+ Return $"{Hex(Statebyte)}_预热"
+ Case &H2
+ Return $"{Hex(Statebyte)}_正常监控"
+ Case &H3
+ Return $"{Hex(Statebyte)}_检测到泄露"
+ Case &H4
+ Return $"{Hex(Statebyte)}_报警"
+ Case &H5
+ Return $"{Hex(Statebyte)}_故障"
+ Case &H6
+ Return $"{Hex(Statebyte)}_寿命到期"
+ Case &H7
+ Return $"{Hex(Statebyte)}_校准模式"
+ Case &H8
+ Return $"{Hex(Statebyte)}_未校准"
+ Case &H9
+ Return $"{Hex(Statebyte)}_220V电源断开"
+ Case &HA
+ Return $"{Hex(Statebyte)}_自检模式"
+ Case &HB
+ Return $"{Hex(Statebyte)}_无线配对模式"
+
+
+ End Select
+ End Function
+
+
+ Private Function SendPortData1(Name As String, node As SendNode) As String
+ Dim sendBytes As Byte()
+ Dim result As String = String.Empty
+ Try
+ '获取发送内容
+ sendBytes = GetSendPortData1(Name)
+ If sendBytes Is Nothing OrElse sendBytes.Length = 0 Then
+ result = $"节点:{Name} :发送数据为空!"
+ ' RefreshCaptureText(Color.Red, result)
+ End If
+ '设置发送节点发送的数据
+ node.SetSendData(sendBytes)
+ SerialPort.Write(node.SendData, 0, node.SendData.Length)
+ '发送刷新对应数值
+ node.ResendRefresh()
+
+ 'RefreshCaptureText(Color.Green, result)
+ Catch ex As Exception
+ result = $"发送:【{Name}】失败!{vbCrLf}详情:{vbCrLf}{ex.Message}"
+ 'RefreshCaptureText(Color.Red, result)
+ End Try
+ Return result
+ End Function
+ '获取发送内容
+ Public RTC_Time As Date
+ Private Function GetSendPortData1(name As String) As Byte()
+ Dim sendBytes As Byte()
+ If name.Equals("设置RTC时间") Then
+ sendBytes = GetSetRTCTime()
+ ElseIf name.Equals("设置生产时间") Then
+ sendBytes = GetSetUTCTime()
+ ElseIf name.Equals("设置设备key") Then
+ sendBytes = SetDeviceKey()
+ ElseIf CommandSetDic.ContainsKey(name) Then
+
+ sendBytes = CommandSetDic.Item(name)
+ End If
+
+
+ Return sendBytes
+ End Function
+
+ Private Function SetDeviceKey() As Byte()
+ Dim li As New List(Of Byte)
+ li.Add(&HAE)
+ li.Add(&H0) '长度
+ li.Add(&H0) '校验
+ li.Add(&H1) '命令 - 设置参数
+ li.Add(&H9) '参数内容 - 设置RTC时间
+
+ Dim ifnode As (String, SendNode)
+ For i As Integer = SendNodeDic.Count - 1 To 0 Step -1
+ ifnode = SendNodeDic(i)
+ If ifnode.Item1.Equals("获取服务器key") AndAlso ifnode.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+ Exit For
+ End If
+ Next
+
+
+ If Not IsNothing(ifnode) AndAlso ifnode.Item1.Equals("获取服务器key") AndAlso ifnode.Item2.RecvStatus = SendNode.RecvStatusEnum.Recv Then
+ Dim apinode As Program = ifnode.Item2.RecvDatadic
+
+ li.AddRange(IntTo4BytesLE(apinode.Response.ClientId))
+ li.AddRange(StringToBytes(apinode.Response.SecretKey))
+ li.Add(&HEA)
+ li(1) = li.Count
+ li(2) = GetSumCheckMod(li.ToArray, li.Count)
+ Return li.ToArray
+ Else
+ Return Nothing
+ End If
+
+
+
+
+ End Function
+
+ Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
+
+
+
+ Dim isvisible As Boolean = False
+ If ToolStripButton2.Text.Equals(">>") Then
+ '弹窗获取密码
+ Dim password As String = InputBox("请输入密码:", "密码验证")
+ If Not password.Trim.Equals("Cc2025OK") Then
+ Return
+ End If
+ isvisible = True
+ ToolStripButton2.Text = "<<"
+ Else
+
+ isvisible = False
+ ToolStripButton2.Text = ">>"
+ End If
+
+ GroupBox1.Visible = isvisible
+ ToolStripLabel1.Visible = isvisible
+ T_CommandAlias.Visible = isvisible
+ ToolStripLabel2.Visible = isvisible
+ ToolStripTextBox2.Visible = isvisible
+ ToolStripButton1.Visible = isvisible
+ ToolStripComboBox1.Visible = isvisible
+ SplitContainer4.Panel1Collapsed = Not isvisible
+ ComboBox9.Visible = isvisible
+ LblSerialPortBaud.Visible = isvisible
+ ToolStripButton4.Visible = isvisible
+ ToolStripButton5.Visible = isvisible
+ ToolStripButton6.Visible = isvisible
+ ToolStripLabel3.Visible = isvisible
+ ToolStripTextBox1.Visible = isvisible
+ '设置TabControl1 的第1、2个选项卡 显示状态为隐藏或显示
+ If (isvisible) Then
+ TabPage1.Parent = TabControl1
+ TabPage2.Parent = TabControl1
+ Else
+ TabPage1.Parent = Nothing
+ TabPage2.Parent = Nothing
+ End If
+ For i As Integer = 0 To Grid_table.Cols - 1
+ If i > 6 Then
+ Grid_table.Column(i).Visible = isvisible
+ End If
+ Next
+
+
+ End Sub
+
+ Private Sub ToolStripComboBox1_DropDown(sender As Object, e As EventArgs) Handles ToolStripComboBox1.DropDown
+ If IsNothing(CommandSetDic) OrElse CommandSetDic.Count = 0 Then Return
+ ToolStripComboBox1.Items.Clear()
+ ToolStripComboBox1.Items.AddRange(CommandSetDic.Keys.ToArray())
+ End Sub
+
+ Private Sub ProcessTable_CellChange(Sender As Object, e As Grid.CellChangeEventArgs) Handles ProcessTable.CellChange
+ 'ProcessTable.Cell(0, 0).Text = "序号"
+ 'ProcessTable.Cell(0, 1).Text = "勾选"
+ 'ProcessTable.Cell(0, 2).Text = "命令别名"
+ 'ProcessTable.Cell(0, 3).Text = "命令"
+ 'ProcessTable.Cell(0, 4).Text = "发送状态"
+ If e.Row = 0 Then Return
+ Select Case e.Col
+ Case 2
+ If CommandSetDic.ContainsKey(ProcessTable.Cell(e.Row, 2).Text.Trim) Then
+ Dim strbuf() As Byte = CommandSetDic(ProcessTable.Cell(e.Row, 2).Text.Trim)
+ Dim str As String = ByteArrayToHexString(strbuf)
+ ProcessTable.Cell(e.Row, 3).Text = str
+ Else
+ MsgBox("命令别名不存在,请先添加别名和对应命令到命令集,再调用!!")
+ ProcessTable.Cell(e.Row, 2).Text = ""
+ End If
+ End Select
+ End Sub
+
+ Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click
+ If ProcessTable.ActiveCell.Row < 1 Then
+ ProcessTable.AddItem("")
+ Else
+ ProcessTable.InsertRow(ProcessTable.ActiveCell.Row, 1)
+ End If
+
+ End Sub
+
+ Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
+ If ProcessTable.ActiveCell.Row < 1 Then
+ ProcessTable.Row(ProcessTable.Rows - 1).Delete()
+ Else
+ ProcessTable.Row(ProcessTable.ActiveCell.Row).Delete()
+ End If
+ End Sub
+
+ Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
+ InitLoadProcessTable(False)
+ End Sub
+
+ Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
+ My.Settings.SerialPortName = ComboBox8.Text
+ My.Settings.SInTime = ToolStripTextBox1.Text
+ My.Settings.Save()
+ Timer2.Stop()
+ Timer1.Stop()
+ SaveCommandSetDic()
+ End Sub
+
+ Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
+ Label39.Text = Now.ToString("yyyy-MM-dd")
+ Label40.Text = Now.ToString("HH:mm:ss")
+ Select Case Now.DayOfWeek
+ Case 0, 7
+ Label41.Text = "星期日"
+ Case 1
+ Label41.Text = "星期一"
+ Case 2
+ Label41.Text = "星期二"
+ Case 3
+ Label41.Text = "星期三"
+ Case 4
+ Label41.Text = "星期四"
+ Case 5
+ Label41.Text = "星期五"
+ Case 6
+ Label41.Text = "星期六"
+ End Select
+ 'Label41.Text = $"星期{ Now.DayOfWeek }"
+ End Sub
+ Public Timediffe As Integer = 2
+ Private Sub ToolStripTextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles ToolStripTextBox1.KeyPress
+ '限制输入只能为数字
+ If e.KeyChar < "0"c OrElse e.KeyChar > "9"c Then
+ e.Handled = True
+
+ End If
+
+ End Sub
+
+ Private Sub ToolStripTextBox1_TextChanged(sender As Object, e As EventArgs) Handles ToolStripTextBox1.TextChanged
+
+ If Integer.TryParse(ToolStripTextBox1.Text, Timediffe) Then
+ Else
+ ToolStripTextBox1.Text = "2"
+ Timediffe = 2
+ End If
+ End Sub
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#End Region
+
+
+
+
+End Class
+
+Public Class SendNode
+ '发送时间
+ Public Property SendTime As DateTime
+ '发送数据
+ Public Property SendData As Byte()
+ '重发次数
+ Public Property SendCount As Integer
+ '重发间隔
+ Public Property SendInterval As Integer
+ '超时时间
+ Public Property SendTimeout As Integer
+ '发送状态 0:未发送 1:已发送
+ Public Property SendStatus As Integer
+ '接收状态
+ Public Property RecvStatus As Integer
+ '接收数据
+ Public Property RecvDataLisr As List(Of Byte())
+
+ Public Property RecvDatadic As Object
+ Sub New()
+ RecvDataLisr = New List(Of Byte())
+
+ End Sub
+ '发送状态枚举值
+ Enum SendStatusEnum
+ '未发送
+ None = 0
+ '已发送
+ Send = 1
+ '发送超时
+ Timeout = 2
+ End Enum
+
+ '接收状态枚举值
+ Enum RecvStatusEnum
+ '未接收
+ None = 0
+ '已接收
+ Recv = 1
+ '接收超时
+ Timeout = 2
+ End Enum
+
+ Sub New(Mysenddata() As Byte)
+ SendData = Mysenddata
+ SendInterval = 0
+ SendTimeout = 1000
+ RecvStatus = 0
+ SendStatus = 0
+ RecvDataLisr = New List(Of Byte())
+ End Sub
+ '设置发送数据
+ Sub SetSendData(Mysenddata() As Byte)
+ SendData = Mysenddata
+ SendInterval = 0
+ SendTimeout = 1000
+ RecvStatus = 0
+ SendStatus = 0
+ End Sub
+
+ '接收数据并添加到接收列表
+ Sub AddRecvData(RecvData() As Byte)
+ If RecvDataLisr Is Nothing Then
+ RecvDataLisr = New List(Of Byte())
+ End If
+ RecvDataLisr.Add(RecvData)
+ End Sub
+ '判断需不需要重发 False 不需要重发 True 需要重发
+ Function NeedResend() As Boolean
+ '如果接收状态为已加收, 则不需要重发
+ If SendStatus = 1 AndAlso RecvStatus = 1 Then
+ Return False
+ Else
+ '如果发送状态为已发送,则判断是否超时,如果超时则返回True,否则返回False
+ If SendStatus = 1 Then
+ '判断是否到达最大重发次数
+ If SendCount < 3 Then
+ If SendTime.AddMilliseconds(SendTimeout) < Now Then
+ Return True
+ Else
+ Return False
+ End If
+ Else
+ RecvStatus = RecvStatusEnum.Timeout
+ SendStatus = SendStatusEnum.Timeout
+ Return False
+ End If
+ Else
+ Return True
+ End If
+
+ End If
+
+ End Function
+
+ '重发刷新对应数值
+ Sub ResendRefresh()
+ SendStatus = 1
+ SendCount += 1
+ SendTime = Now
+ End Sub
+
+ '发送刷新对应数值
+ Sub SendRefresh()
+ SendStatus = 1
+ SendTime = Now
+ SendCount = 0
+ End Sub
+ '接收刷新对应数值
+ Sub RecvRefresh(Mysenddata() As Byte)
+ AddRecvData(Mysenddata)
+ RecvStatus = 1
+ End Sub
+
+
+
+
+End Class
diff --git a/My Project/Application.Designer.vb b/My Project/Application.Designer.vb
new file mode 100644
index 0000000..3d6301b
--- /dev/null
+++ b/My Project/Application.Designer.vb
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ '注意:此文件是自动生成的;请勿直接进行修改。若要更改,
+ ' 或者如果您在此文件中遇到生成错误,请转至项目设计器
+ ' (转至“项目属性”或在解决方案资源管理器中双击“我的项目”节点),
+ ' 然后在“应用程序”选项卡中进行更改。
+ '
+ Partial Friend Class MyApplication
+
+ _
+ 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
+
+ _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.NT318校时工具.Form1
+ End Sub
+ End Class
+End Namespace
diff --git a/My Project/Application.myapp b/My Project/Application.myapp
new file mode 100644
index 0000000..1243847
--- /dev/null
+++ b/My Project/Application.myapp
@@ -0,0 +1,11 @@
+
+
+ true
+ Form1
+ false
+ 0
+ true
+ 0
+ 0
+ true
+
diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..bb14439
--- /dev/null
+++ b/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' 有关程序集的一般信息由以下
+' 控制。更改这些特性值可修改
+' 与程序集关联的信息。
+
+'查看程序集特性的值
+
+
+
+
+
+
+
+
+
+
+'如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID
+
+
+' 程序集的版本信息由下列四个值组成:
+'
+' 主版本
+' 次版本
+' 生成号
+' 修订号
+'
+'可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
+'通过使用 "*",如下所示:
+'
+
+
+
diff --git a/My Project/Resources.Designer.vb b/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..ae86be2
--- /dev/null
+++ b/My Project/Resources.Designer.vb
@@ -0,0 +1,72 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ '此类是由 StronglyTypedResourceBuilder
+ '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ '(以 /str 作为命令选项),或重新生成 VS 项目。
+ '''
+ ''' 一个强类型的资源类,用于查找本地化的字符串等。
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' 返回此类使用的缓存的 ResourceManager 实例。
+ '''
+ _
+ 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("NT318校时工具.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 重写当前线程的 CurrentUICulture 属性,对
+ ''' 使用此强类型资源类的所有资源查找执行重写。
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+
+ '''
+ ''' 查找类似 的本地化字符串。
+ '''
+ Friend ReadOnly Property SerialPort() As String
+ Get
+ Return ResourceManager.GetString("SerialPort", resourceCulture)
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/My Project/Resources.resx b/My Project/Resources.resx
new file mode 100644
index 0000000..22dd026
--- /dev/null
+++ b/My Project/Resources.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+
\ No newline at end of file
diff --git a/My Project/Settings.Designer.vb b/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..b7b0bda
--- /dev/null
+++ b/My Project/Settings.Designer.vb
@@ -0,0 +1,97 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ 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 自动保存功能"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, 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
+
+ _
+ Public Property SerialPortName() As String
+ Get
+ Return CType(Me("SerialPortName"),String)
+ End Get
+ Set
+ Me("SerialPortName") = value
+ End Set
+ End Property
+
+ _
+ Public Property SInTime() As Integer
+ Get
+ Return CType(Me("SInTime"),Integer)
+ End Get
+ Set
+ Me("SInTime") = value
+ End Set
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.NT318校时工具.My.MySettings
+ Get
+ Return Global.NT318校时工具.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/My Project/Settings.settings b/My Project/Settings.settings
new file mode 100644
index 0000000..7112023
--- /dev/null
+++ b/My Project/Settings.settings
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ 0
+
+
+
\ No newline at end of file
diff --git a/My Project/app.manifest b/My Project/app.manifest
new file mode 100644
index 0000000..a91b7ce
--- /dev/null
+++ b/My Project/app.manifest
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NT2406_Tool.sln b/NT2406_Tool.sln
new file mode 100644
index 0000000..1abf7f6
--- /dev/null
+++ b/NT2406_Tool.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32602.291
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "NT318", "NT318.vbproj", "{B4DB404F-4536-481D-99E2-D1F44A79B55B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B4DB404F-4536-481D-99E2-D1F44A79B55B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4DB404F-4536-481D-99E2-D1F44A79B55B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B4DB404F-4536-481D-99E2-D1F44A79B55B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B4DB404F-4536-481D-99E2-D1F44A79B55B}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {A54FC5BF-25C3-467C-A346-DB8B43A11000}
+ EndGlobalSection
+EndGlobal
diff --git a/NT2406_Tool_TemporaryKey.pfx b/NT2406_Tool_TemporaryKey.pfx
new file mode 100644
index 0000000..24fba2d
Binary files /dev/null and b/NT2406_Tool_TemporaryKey.pfx differ
diff --git a/NT318.vbproj b/NT318.vbproj
new file mode 100644
index 0000000..02292cb
--- /dev/null
+++ b/NT318.vbproj
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+ Debug
+ AnyCPU
+ {B4DB404F-4536-481D-99E2-D1F44A79B55B}
+ WinExe
+ NT318校时工具.My.MyApplication
+ NT318校时工具
+ NT318校时工具
+ 512
+ WindowsForms
+ v4.8
+ true
+ true
+
+
+ false
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ true
+ 19
+ 1.0.0.%2a
+ false
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ true
+ true
+ bin\Debug\
+ NT318校时工具.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ true
+
+
+ AnyCPU
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ NT318校时工具.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ twitter.ico
+
+
+ 553DF02EB4BF2B6AE64D9EBED0CA1283F73A4880
+
+
+ NT2406_Tool_TemporaryKey.pfx
+
+
+ true
+
+
+ LocalIntranet
+
+
+ My Project\app.manifest
+
+
+ true
+
+
+
+ packages\BouncyCastle.Cryptography.2.3.1\lib\net461\BouncyCastle.Cryptography.dll
+
+
+ packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll
+
+
+ packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll
+
+
+ False
+ D:\Sync\RD_PC\Project\BLV_Studio\BLV_Studio_20220719-V4.1.0.10(新增项目管理功能前代码备份)\SourceCode\BLV_Studio\bin\Debug\FlexCell.dll
+
+
+ packages\Google.Protobuf.3.26.1\lib\net45\Google.Protobuf.dll
+
+
+ packages\K4os.Compression.LZ4.1.3.8\lib\net462\K4os.Compression.LZ4.dll
+
+
+ packages\K4os.Compression.LZ4.Streams.1.3.8\lib\net462\K4os.Compression.LZ4.Streams.dll
+
+
+ packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll
+
+
+ packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ False
+
+
+ packages\MySql.Data.9.2.0\lib\net48\MySql.Data.dll
+
+
+ packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
+
+
+ packages\SqlSugar.5.1.4.187\lib\SqlSugar.dll
+
+
+
+ packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+
+ packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll
+
+
+
+ False
+ ..\..\..\..\6374322614351286414968093\System.Data.SQLite.dll
+
+
+ packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll
+
+
+ packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll
+
+
+
+ packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll
+
+
+
+ packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll
+
+
+
+ packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
+
+
+
+ packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+
+
+
+
+
+
+
+ packages\ZstdSharp.Port.0.8.0\lib\net462\ZstdSharp.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.vb
+ Form
+
+
+
+ True
+ Application.myapp
+ True
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+ Form1.vb
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ Microsoft .NET Framework 4.8 %28x86 和 x64%29
+ true
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+
+
+
+
+
+
+
+ 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/NT318.vbproj.user b/NT318.vbproj.user
new file mode 100644
index 0000000..88d5f26
--- /dev/null
+++ b/NT318.vbproj.user
@@ -0,0 +1,17 @@
+
+
+
+ publish\
+
+
+
+
+
+ zh-CN
+ false
+ ShowAllFiles
+
+
+ false
+
+
\ No newline at end of file
diff --git a/System.Data.SQLite.dll b/System.Data.SQLite.dll
new file mode 100644
index 0000000..ecc1c11
Binary files /dev/null and b/System.Data.SQLite.dll differ
diff --git a/bin/Debug/BouncyCastle.Cryptography.dll b/bin/Debug/BouncyCastle.Cryptography.dll
new file mode 100644
index 0000000..383c712
Binary files /dev/null and b/bin/Debug/BouncyCastle.Cryptography.dll differ
diff --git a/bin/Debug/BouncyCastle.Cryptography.xml b/bin/Debug/BouncyCastle.Cryptography.xml
new file mode 100644
index 0000000..359c0df
--- /dev/null
+++ b/bin/Debug/BouncyCastle.Cryptography.xml
@@ -0,0 +1,29451 @@
+
+
+
+ BouncyCastle.Cryptography
+
+
+
+ Elliptic curve registry for ANSSI.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Return a representing the contents of the BIT STRING. The final byte, if any,
+ may include pad bits. See .
+ A with its source as the BIT STRING content.
+
+
+
+ Return a representing the contents of the BIT STRING, where the content is
+ expected to be octet-aligned (this will be automatically checked during parsing).
+ A with its source as the BIT STRING content.
+
+
+
+ Return the number of pad bits, if any, in the final byte, if any, read from
+ .
+
+ This number is in the range zero to seven. That number of the least significant bits of the final byte, if
+ any, are not part of the contents and should be ignored. NOTE: Must be called AFTER the stream has been
+ fully processed. (Does not need to be called if was used instead of
+ .
+
+ The number of pad bits. In the range zero to seven.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
+
+
+ GeneralizedTime ASN.1 type
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ Return an ObjectDescriptor from the passed in object.
+
+ @param obj an ASN1ObjectDescriptor or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ Return an ObjectDescriptor from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return an ASN1ObjectDescriptor instance, or null.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an octet string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ Return the content of the OCTET STRING as a .
+ A represnting the OCTET STRING's content.
+
+
+ Implementation limit on the length of the contents octets for a Relative OID.
+
+ We adopt the same value used by OpenJDK for Object Identifier. In theory there is no limit on the length of
+ the contents, or the number of subidentifiers, or the length of individual subidentifiers. In practice,
+ supporting arbitrary lengths can lead to issues, e.g. denial-of-service attacks when attempting to convert a
+ parsed value to its (decimal) string form.
+
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged, false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param taggedObject the tagged object.
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ Return whatever was following the tag.
+
+ Tagged objects are generally context dependent. If you're trying to extract a tagged object you should be
+ going via the appropriate GetInstance method.
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer ,
+ or where possible.
+ Before using, check for matching tag class and number.
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer or
+ where possible. Before using, check for matching tag
+ class and number.
+
+
+
+
+
+
+ Needed for open types, until we have better type-guided parsing support.
+
+ Use sparingly for other purposes, and prefer or
+ where possible. Before using, check for matching tag
+ class and number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UTCTime ASN.1 type
+
+
+ return a UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an adjusted date in the range of 1950 - 2049.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle
+ 1.3.6.1.4.1.22554
+
+
+ pbe(1) algorithms
+ 1.3.6.1.4.1.22554.1
+
+
+ SHA-1(1)
+ 1.3.6.1.4.1.22554.1.1
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS5; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ qTESLA
+
+
+ SPHINCS+
+
+
+ Picnic
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ X.509 extension(4) values
+
+ 1.3.6.1.4.1.22554.4
+
+
+ KEM(4) algorithms
+
+
+ Classic McEliece
+
+
+ Frodo
+
+
+ SABER
+
+
+ SIKE
+
+
+ NTRU
+
+
+ Kyber
+
+
+ NTRUPrime
+
+
+ BIKE
+
+
+ HQC
+
+
+ Extension to tie an alternate certificate to the containing certificate.
+
+ LinkedCertificate := SEQUENCE {
+ digest DigestInfo, -- digest of PQC certificate
+ certLocation GeneralName, -- location of PQC certificate
+ certIssuer [0] Name OPTIONAL, -- issuer of PQC cert (if different from current certificate)
+ cACerts [1] GeneralNames OPTIONAL, -- CA certificates for PQC cert (one of more locations)
+ }
+
+
+
+ A parser for indefinite-length BIT STRINGs.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ The caller is responsible for disposing the returned before disposing
+ this generator.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ See https://www.bsi.bund.de/cae/servlet/contentblob/471398/publicationFile/30615/BSI-TR-03111_pdf.pdf
+
+
+ 0.4.0.127.0.7.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963 OID: 0.4.0.127.0.7.1.1.5.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA-1
+ OID: 0.4.0.127.0.7.1.1.5.1.1.1
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA224
+ OID: 0.4.0.127.0.7.1.1.5.1.1.2
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA256
+ OID: 0.4.0.127.0.7.1.1.5.1.1.3
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA384
+ OID: 0.4.0.127.0.7.1.1.5.1.1.4
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function SHA512
+ OID: 0.4.0.127.0.7.1.1.5.1.1.5
+
+
+ ElGamal Elliptic Curve Key Agreement and Key Derivation according to X963
+ with hash function RIPEMD160
+ OID: 0.4.0.127.0.7.1.1.5.1.1.6
+
+
+ Key Derivation Function for Session Keys
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ CertAnnContent ::= CMPCertificate
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedKey
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 19}, < absent >
+ GenRep: {id-it 19}, CertReqTemplateContent | < absent >
+
+ CertReqTemplateValue ::= CertReqTemplateContent
+
+ CertReqTemplateContent ::= SEQUENCE {
+ certTemplate CertTemplate,
+ keySpec Controls OPTIONAL }
+
+ Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue
+
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ certReqId INTEGER,
+ statusInfo PKIStatusInfo OPTIONAL,
+ hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} OPTIONAL
+ }
+
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Rand is the inner type
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+ id-PasswordBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 13}
+
+
+ id-DHBasedMac OBJECT IDENTIFIER ::= {1 2 840 113533 7 66 30}
+
+
+ RFC 4120: id-it: PKIX.4 = 1.3.6.1.5.5.7.4
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.1
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.2
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.3
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.4
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.5
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.6
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.7
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.10
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.11
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.12
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.13
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.14
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.15
+
+
+ RFC 4120: 1.3.6.1.5.5.7.4.16
+
+
+ Update 16, RFC 4210
+ {id-it 17}
+
+
+ Update 16, RFC 4210
+ GenRep: {id-it 18}, RootCaKeyUpdateContent
+
+
+ Update 16, RFC 4210
+ {id-it 19}
+
+
+ Update 16, RFC 4210
+ GenMsg: {id-it 20}, RootCaCertValue
+
+
+ Update-16 to RFC 4210
+ id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21}
+
+
+ RFC 4211: it-pkip: PKIX.5 = 1.3.6.1.5.5.7.5
+
+
+ RFC 4211: it-regCtrl: 1.3.6.1.5.5.7.5.1
+
+
+ RFC 4211: it-regInfo: 1.3.6.1.5.5.7.5.2
+
+
+ 1.3.6.1.5.5.7.5.1.1
+
+
+ 1.3.6.1.5.5.7.5.1.2
+
+
+ 1.3.6.1.5.5.7.5.1.3
+
+
+ 1.3.6.1.5.5.7.5.1.4
+
+
+ 1.3.6.1.5.5.7.5.1.5
+
+
+ 1.3.6.1.5.5.7.5.1.6
+
+
+ From RFC4210:
+ id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= {id-regCtrl 7}; 1.3.6.1.5.5.7.1.7
+
+
+ RFC 4211: it-regInfo-utf8Pairs: 1.3.6.1.5.5.7.5.2.1
+
+
+ RFC 4211: it-regInfo-certReq: 1.3.6.1.5.5.7.5.2.1
+
+
+ 1.2.840.113549.1.9.16.1.21
+
+ id-ct OBJECT IDENTIFIER ::= { id-smime 1 } -- content types
+
+ id-ct-encKeyWithID OBJECT IDENTIFIER ::= {id-ct 21}
+
+
+
+ id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 }
+
+
+ id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1)
+ identified-organization(3) dod(6) internet(1) security(5)
+ mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 }
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it TBD1}, SEQUENCE SIZE (1..MAX) OF CRLStatus
+ GenRep: {id-it TBD2}, SEQUENCE SIZE (1..MAX) OF
+ CertificateList | < absent >
+
+ CRLSource ::= CHOICE {
+ dpn [0] DistributionPointName,
+ issuer [1] GeneralNames }
+
+
+
+ CRLStatus ::= SEQUENCE {
+ source CRLSource,
+ thisUpdate Time OPTIONAL }
+
+
+ DHBMParameter ::= SEQUENCE {
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KemBMParameter ::= SEQUENCE {
+ kdf AlgorithmIdentifier{KEY-DERIVATION, {...}},
+ len INTEGER (1..MAX),
+ mac AlgorithmIdentifier{MAC-ALGORITHM, {...}}
+ }
+
+
+
+
+ KemBMParameter ::= SEQUENCE {
+ kdf AlgorithmIdentifier{KEY-DERIVATION, {...}},
+ len INTEGER (1..MAX),
+ mac AlgorithmIdentifier{MAC-ALGORITHM, {...}}
+ }
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KemCiphertextInfo ::= SEQUENCE {
+ kem AlgorithmIdentifier{KEM-ALGORITHM, {...}},
+ ct OCTET STRING
+ }
+
+
+
+
+ KemCiphertextInfo ::= SEQUENCE {
+ kem AlgorithmIdentifier{KEM-ALGORITHM, {...}},
+ ct OCTET STRING
+ }
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KemOtherInfo ::= SEQUENCE {
+ staticString PKIFreeText, -- MUST be "CMP-KEM"
+ transactionID [0] OCTET STRING OPTIONAL,
+ senderNonce [1] OCTET STRING OPTIONAL,
+ recipNonce [2] OCTET STRING OPTIONAL,
+ len INTEGER (1..MAX),
+ mac AlgorithmIdentifier{MAC-ALGORITHM, {...}}
+ ct OCTET STRING
+ }
+
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ NestedMessageContent ::= PKIMessages
+
+
+ OOBCert ::= CMPCertificate
+
+
+
+ OOBCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the DER encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PBMParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ PKIConfirmContent ::= NULL
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL }
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+ Create a pollReqContent for a single certReqId.
+
+ @param certReqId the certificate request ID.
+
+
+ Create a pollReqContent for a multiple certReqIds.
+
+ @param certReqIds the certificate request IDs.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
+ OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ GenMsg: {id-it 20}, RootCaCertValue | < absent >
+ GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent >
+
+ RootCaCertValue ::= CMPCertificate
+
+ RootCaKeyUpdateValue ::= RootCaKeyUpdateContent
+
+ RootCaKeyUpdateContent ::= SEQUENCE {
+ newWithNew CMPCertificate,
+ newWithOld [0] CMPCertificate OPTIONAL,
+ oldWithNew [1] CMPCertificate OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ From RFC 6211
+
+ CMSAlgorithmProtection ::= SEQUENCE {
+ digestAlgorithm DigestAlgorithmIdentifier,
+ signatureAlgorithm [1] SignatureAlgorithmIdentifier OPTIONAL,
+ macAlgorithm [2] MessageAuthenticationCodeAlgorithm
+ OPTIONAL
+ }
+ (WITH COMPONENTS { signatureAlgorithm PRESENT,
+ macAlgorithm ABSENT } |
+ WITH COMPONENTS { signatureAlgorithm ABSENT,
+ macAlgorithm PRESENT })
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ 1.3.6.1.5.5.7.6
+
+
+ OtherRecipientInfo types
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ (IMPLICIT TAGS)
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PKIPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+
+
+ Constructor with a single pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfo the pubInfo to be published (can be null if don't care is required).
+
+
+ Constructor with multiple pubInfo, assumes pleasePublish as the action.
+
+ @param pubInfos the pubInfos to be published (can be null if don't care is required).
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Elliptic curve registry for GOST 3410-2001 / 2012.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ Registry of available named parameters for GOST 3410-94.
+
+
+ Look up the for the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Look up the for the parameter set with the given
+ OID.
+ The OID for the parameter set.
+
+
+ Look up the OID of the parameter set with the given name.
+
+ The name of the parameter set.
+
+
+ Enumerate the available parameter set names in this registry.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Boolean from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ IA5String object - this is an Ascii string.
+
+
+ return an IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ Apply the correct validation for an INTEGER primitive following the BER rules.
+
+ @param bytes The raw encoding of the integer.
+ @return true if the (in)put fails this validation.
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a numeric string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ Implementation limit on the length of the contents octets for an Object Identifier.
+
+ We adopt the same value used by OpenJDK. In theory there is no limit on the length of the contents, or the
+ number of subidentifiers, or the length of individual subidentifiers. In practice, supporting arbitrary
+ lengths can lead to issues, e.g. denial-of-service attacks when attempting to convert a parsed value to its
+ (decimal) string form.
+
+
+
+ return an OID from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a printable string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a T61 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param isExplicit true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ UniversalString object.
+
+
+ return a universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a universal string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a UTF8 string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ return a videotex string from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a videotex string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ VisibleString object.
+
+
+ return a visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a visible string from a tagged object.
+
+ @param taggedObject the tagged object holding the object we want
+ @param declaredExplicit true if the object is meant to be explicitly tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot be converted.
+
+
+ A Definite length BIT STRING
+
+
+ Parser for a DL encoded BIT STRING.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing two objects
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty set
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ Parser for definite-length tagged objects.
+
+
+ Edwards Elliptic Curve Object Identifiers (RFC 8410)
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ Elliptic curve registry for GM.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ <Information security technology — Cryptographic application identifier criterion specification>
+ http://c.gb688.cn/bzgk/gb/showGb?type=online&hcno=252CF0F72A7BE339A56DEA7D774E8994,
+ Page 21 only cover from 301.1 to 301.3
+
+
+ <WAPI certificate management—Part 5: Example of certificate format (draft)>
+ http://www.chinabwips.org.cn/zqyjgs1.htm and
+ http://www.chinabwips.org.cn/doc/101.pdf,
+ Page 9 and page 10 states the OID of ECDSA-192 algorithm based on SHA-256 is 1.2.156.11235.1.1.1
+
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ No longer provides any laziness.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+
+ KMACwithSHAKE128-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+
+ KMACwithSHAKE256-params ::= SEQUENCE {
+ kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits
+ customizationString OCTET STRING DEFAULT ''H
+ }
+
+
+
+ Elliptic curve registry for NIST curves.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ RFC 6211 - id-aa-cmsAlgorithmProtect OBJECT IDENTIFIER ::= {
+ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) 52 }
+
+
+
+ id-alg-AEADChaCha20Poly1305 OBJECT IDENTIFIER ::=
+ { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
+ pkcs9(9) smime(16) alg(3) 18 }
+
+ AEADChaCha20Poly1305Nonce ::= OCTET STRING (SIZE(12))
+
+
+
+ id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) alg(3) 17 }
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ RFC 5958
+
+
+ [IMPLICIT TAGS]
+
+ OneAsymmetricKey ::= SEQUENCE {
+ version Version,
+ privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
+ privateKey PrivateKey,
+ attributes [0] Attributes OPTIONAL,
+ ...,
+ [[2: publicKey [1] PublicKey OPTIONAL ]],
+ ...
+ }
+
+ PrivateKeyInfo ::= OneAsymmetricKey
+
+ Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
+
+ PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
+ { PUBLIC-KEY,
+ { PrivateKeyAlgorithms } }
+
+ PrivateKey ::= OCTET STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ PublicKey ::= BIT STRING
+ -- Content varies based on type of key. The
+ -- algorithm identifier dictates the format of
+ -- the key.
+
+ Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }
+
+
+
+ Return true if a public key is present, false otherwise.
+
+
+ For when the public key is an ASN.1 encoding.
+
+
+ Return the public key as a raw bit string.
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ Elliptic curve registry for the SEC standard.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ Elliptic curve registry for curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt .
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ Implementation of the Archive Timestamp type defined in RFC4998.
+ @see RFC 4998
+
+ ASN.1 Archive Timestamp
+
+ ArchiveTimeStamp ::= SEQUENCE {
+ digestAlgorithm [Ø] AlgorithmIdentifier OPTIONAL,
+ attributes [1] Attributes OPTIONAL,
+ reducedHashtree [2] SEQUENCE OF PartialHashtree OPTIONAL,
+ timeStamp ContentInfo}
+
+ PartialHashtree ::= SEQUENCE OF OCTET STRING
+
+ Attributes ::= SET SIZE (1..MAX) OF Attribute
+
+
+ Return an ArchiveTimestamp from the given object.
+
+ @param obj the object we want converted.
+ @return an ArchiveTimestamp instance, or null.
+ @throws IllegalArgumentException if the object cannot be converted.
+
+
+ Return the contents of the digestAlgorithm field - null if not set.
+
+ @return the contents of the digestAlgorithm field, or null if not set.
+
+
+ Return the first node in the reduced hash tree which contains the leaf node.
+
+ @return the node containing the data hashes, null if no reduced hash tree is present.
+
+
+ Implementation of ArchiveTimeStampChain type, as defined in RFC4998 and RFC6283.
+
+ An ArchiveTimeStampChain corresponds to a SEQUENCE OF ArchiveTimeStamps, and has the following
+ ASN.1 Syntax:
+
+ ArchiveTimeStampChain ::= SEQUENCE OF ArchiveTimeStamp
+
+
+ Return an ArchiveTimeStampChain from the given object.
+
+ @param obj the object we want converted.
+ @return an ArchiveTimeStampChain instance, or null.
+ @throws IllegalArgumentException if the object cannot be converted.
+
+
+ Adds an {@link ArchiveTimeStamp} object to the archive timestamp chain.
+
+ @param archiveTimeStamp the {@link ArchiveTimeStamp} to add.
+ @return returns the modified chain.
+
+
+ Implementation of ArchiveTimeStampSequence type, as defined in RFC4998.
+
+ An ArchiveTimeStampSequence corresponds to a SEQUENCE OF ArchiveTimeStampChains and has the
+ following ASN.1 Syntax:
+
+ ArchiveTimeStampSequence ::= SEQUENCE OF ArchiveTimeStampChain
+
+
+ Return an ArchiveTimestampSequence from the given object.
+
+ @param obj the object we want converted.
+ @return an ArchiveTimeStampSequence instance, or null.
+ @throws IllegalArgumentException if the object cannot be converted.
+
+
+ Returns the sequence of ArchiveTimeStamp chains that compose the ArchiveTimeStamp sequence.
+
+ @return the {@link ASN1Sequence} containing the ArchiveTimeStamp chains.
+
+
+ Adds an {@link ArchiveTimeStampChain} to the ArchiveTimeStamp sequence.
+
+ @param chain the {@link ArchiveTimeStampChain} to add
+ @return returns the modified sequence.
+
+
+ Implementation of the CryptoInfos element defined in RFC 4998:
+
+ CryptoInfos ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+
+ Implementation of the EncryptionInfo element defined in RFC 4998:
+
+ 1988 ASN.1 EncryptionInfo
+
+ EncryptionInfo ::= SEQUENCE {
+ encryptionInfoType OBJECT IDENTIFIER,
+ encryptionInfoValue ANY DEFINED BY encryptionInfoType
+ }
+
+ 1997-ASN.1 EncryptionInfo
+
+ EncryptionInfo ::= SEQUENCE {
+ encryptionInfoType ENCINFO-TYPE.&id
+ ({SupportedEncryptionAlgorithms}),
+ encryptionInfoValue ENCINFO-TYPE.&Type
+ ({SupportedEncryptionAlgorithms}{@encryptionInfoType})
+ }
+
+ ENCINFO-TYPE ::= TYPE-IDENTIFIER
+
+ SupportedEncryptionAlgorithms ENCINFO-TYPE ::= {...}
+
+
+ The OID for EncryptionInfo type.
+
+
+ The value of EncryptionInfo
+
+
+ RFC 4998:
+ Evidence Record Syntax (ERS)
+
+
+ EvidenceRecord ::= SEQUENCE {
+ version INTEGER { v1(1) } ,
+ digestAlgorithms SEQUENCE OF AlgorithmIdentifier,
+ cryptoInfos [0] CryptoInfos OPTIONAL,
+ encryptionInfo [1] EncryptionInfo OPTIONAL,
+ archiveTimeStampSequence ArchiveTimeStampSequence
+ }
+
+ CryptoInfos ::= SEQUENCE SIZE (1..MAX) OF Attribute
+
+
+
+ ERS {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) ltans(11)
+ id-mod(0) id-mod-ers88(2) id-mod-ers88-v1(1) }
+
+
+ Return an EvidenceRecord from the given object.
+
+ @param obj the object we want converted.
+ @return an EvidenceRecord instance, or null.
+ @throws IllegalArgumentException if the object cannot be converted.
+
+
+ Build a basic evidence record from an initial
+ ArchiveTimeStamp.
+
+ @param cryptoInfos
+ @param encryptionInfo
+ @param archiveTimeStamp
+
+
+ Return a new EvidenceRecord with an added ArchiveTimeStamp
+
+ @param ats the archive timestamp to add
+ @param newChain states whether this new archive timestamp must be added as part of a
+ new sequence (i.e. in the case of hashtree renewal) or not (i.e. in the case of timestamp
+ renewal)
+ @return the new EvidenceRecord
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+ Implementation of PartialHashtree, as defined in RFC 4998.
+
+ The ASN.1 notation for a PartialHashTree is:
+
+ PartialHashtree ::= SEQUENCE OF OCTET STRING
+
+
+ Return a PartialHashtree from the given object.
+
+ @param obj the object we want converted.
+ @return a PartialHashtree instance, or null.
+ @throws IllegalArgumentException if the object cannot be converted.
+
+
+ Hash values that constitute the hash tree, as ASN.1 Octet Strings.
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+ Ukrainian object identifiers
+
+ {iso(1) member-body(2) Ukraine(804) root(2) security(1) cryptography(1) pki(1)}
+
+ { ... pki-alg(1) pki-alg-sym(3) Dstu4145WithGost34311(1) PB(1)}
+
+ DSTU4145 in polynomial basis has 2 oids, one for little-endian representation and one for big-endian
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ Parse ASN.1 objects from input , and write them to the output.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+ Holding class for the AttributeTypeAndValue structures that make up an RDN.
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ Holding class for a single Relative Distinguished Name (RDN).
+
+
+ Create a single valued RDN.
+
+ @param oid RDN type.
+ @param value RDN value.
+
+
+ Create a multi-valued RDN.
+
+ @param aAndVs attribute type/value pairs making up the RDN
+
+
+ Return the number of AttributeTypeAndValue objects in this RDN,
+
+ @return size of RDN, greater than 1 if multi-valued.
+
+
+ *
+ * RelativeDistinguishedName ::=
+ * SET OF AttributeTypeAndValue
+
+ * AttributeTypeAndValue ::= SEQUENCE {
+ * type AttributeType,
+ * value AttributeValue }
+ *
+ * @return this object as its ASN1Primitive type
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+ X.509 Section 9.8.3.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension. It shall contain
+ the algorithm identifier for the alternative digital signature algorithm used by the signer when creating an alternative
+ digital signature and by the relying party when validating the alternative digital signature.
+
+ altSignatureAlgorithm EXTENSION ::= {
+ SYNTAX AltSignatureAlgorithm
+ IDENTIFIED BY id-ce-altSignatureAlgorithm }
+
+ AltSignatureAlgorithm ::= AlgorithmIdentifier{{SupportedAlgorithms}}
+
+ When the altSignatureAlgorithm extension is included in a particular value that is an instance of a data type that
+ supports extensions, the altSignatureValue extension shall also be included.
+
+ NOTE 1 – By having a separate altSignatureAlgorithm extension, instead of having it combined with the
+ altSignatureValue extension, the alternative digital signature algorithm is protected by the alternative signature.
+ This extension may be flagged either as critical or as non-critical.
+
+ NOTE 2 – It is recommended that it be flagged as non-critical. Flagging it as critical would require all relying parties to understand
+ the extension and the alternative public-key algorithms
+
+
+ X.509 Section 9.8.4.
+
+ This extension may be used as a public-key certificate extension, a CRL extension or an AVL extension.
+ This alternative signature shall be created by the issuer using its alternative private key, and it shall be verified using the
+ alternative public key of the issuer.
+
+ altSignatureValue EXTENSION ::= {
+ SYNTAX AltSignatureValue
+ IDENTIFIED BY id-ce-altSignatureValue }
+
+ AltSignatureValue ::= BIT STRING
+
+ This extension can only be created by a signer holding a multiple cryptographic algorithms public-key certificate. When
+ creating the alternative digital signature on an issued public-key certificate or CRL, the signer shall use its alternative
+ private key.
+
+ The procedures for creating and validating alternative digital signatures are specified in:
+
+ - clause 7.2.2 for public-key certificates;
+ - clause 7.10.3 for CRLs: and
+ - clause 11.4 for AVLs.
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] EXPLICIT IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] EXPLICIT GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ Microsoft Server Gated Crypto (msSGC).
+ see https://www.alvestrand.no/objectid/1.3.6.1.4.1.311.10.3.3.html
+
+
+ Netscape Server Gated Crypto (nsSGC).
+ see https://www.alvestrand.no/objectid/2.16.840.1.113730.4.1.html
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ The OtherName object.
+
+ OtherName ::= SEQUENCE {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+
+
+ OtherName factory method.
+ @param obj the object used to construct an instance of
+ OtherName. It must be an instance of OtherName
+ or ASN1Sequence.
+ @return the instance of OtherName built from the
+ supplied object.
+ @throws java.lang.IllegalArgumentException if the object passed
+ to the factory is not an instance of OtherName or something that
+ can be converted into an appropriate ASN1Sequence.
+
+
+ Base constructor.
+ @param typeID the type of the other name.
+ @param value the ANY object that represents the value.
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ X.509 Section 9.8.2.
+
+ This public-key certificate extension, when present, shall contain the subject’s alternative public key information
+
+ subjectAltPublicKeyInfo EXTENSION ::= {
+ SYNTAX SubjectAltPublicKeyInfo
+ IDENTIFIED BY id-ce-subjectAltPublicKeyInfo }
+
+ SubjectAltPublicKeyInfo ::= SEQUENCE {
+ algorithm AlgorithmIdentifier{{SupportedAlgorithms}},
+ subjectAltPublicKey BIT STRING }
+
+ The SubjectAltPublicKeyInfo data type has the following components:
+
+ - the algorithm subcomponent, which shall hold the algorithm that this public key is an instance of
+ - the subjectAltPublicKey subcomponent, which shall hold the alternative public key
+
+ This extension may be flagged as critical or as non-critical.
+
+ NOTE – It is recommended that it be flagged as non-critical. Flagging it as critical would require relying parties to understand this
+ extension and the alternative public-key algorithm.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ Return the public key as a raw bit string.
+
+
+ Return the public key as a raw bit string.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ the subject’s alternative public key information
+
+
+ the algorithm identifier for the alternative digital signature algorithm.
+
+
+ alternative signature shall be created by the issuer using its alternative private key.
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+ return the parsed value of the extension represented by the object identifier
+ passed in.
+
+ @return the parsed value of the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A unified elliptic curve registry of the various standard-specific registries.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in all the registries.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ Elliptic curve registry for the curves defined in X.962 EC-DSA.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ Packet representing AEAD encrypted data. At the moment this appears to exist in the following
+ expired draft only, but it's appearing despite this.
+
+ @ref https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ is detected and fails.
+
+ By default a missing CRC will not cause an exception. To force CRC detection use:
+
+ ArmoredInputStream aIn = ...
+
+ aIn.setDetectMissingCRC(true);
+
+
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Change how the stream should react if it encounters missing CRC checksum.
+ The default value is false (ignore missing CRC checksums). If the behavior is set to true,
+ an {@link IOException} will be thrown if a missing CRC checksum is encountered.
+
+ @param detectMissing ignore missing CRC sums
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. Any current value(s) under the same name will be
+ replaced by the new one. A null value will clear the entry for name. *
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Set an additional header entry. The current value(s) will continue to exist together
+ with the new one. Adding a null value has no effect.
+
+ @param name the name of the header entry.
+ @param value the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Base constructor specifying whether or not to use packets in the new format wherever possible.
+
+ Output stream to write to.
+ true if use new format packets, false if backwards compatible
+ preferred.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ Return the signatures fingerprint.
+ @return fingerprint (digest prefix) of the signature
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the Modification Detection (packets 18 and 19)
+
+
+ Identifier for the AEAD Encrypted Data Packet (packet 20) and version 5
+ Symmetric-Key Encrypted Session Key Packets (packet 3)
+
+
+ Identifier for the Version 5 Public-Key Packet format and corresponding new
+ fingerprint format
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ packet giving the intended recipient fingerprint.
+
+
+ packet giving the issuer key fingerprint.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ Regexp Packet - RFC 4880 5.2.3.14. Note: the RFC says the byte encoding is to be null terminated.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ RFC 4880, Section 5.2.3.25 - Signature Target subpacket.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a signing subkey to the key ring to be generated with default certification and a primary key binding signature.
+
+ The key pair.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification using SHA-1.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+
+ Add a signing subkey with specific hashed and unhashed packets associated with it and
+ default certifications, including the primary-key binding signature.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ The primary-key binding hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+ Thrown if the key checksum is invalid.
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+
+ Read all available objects, returning only those that are assignable to the specified type.
+
+ An containing the filtered objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The key ID associated with the public key.
+
+
+ The fingerprint of the public key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this could be a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Return any userIDs associated with the key in raw byte form.
+ No attempt is made to convert the IDs into strings.
+ An IEnumerable of byte[].
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Return any signatures associated with the passed in key identifier keyID.
+ the key id to be matched.
+ An IEnumerable of PgpSignature objects issued by the key with keyID.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Encode the key to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed in raw byte form.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from (in its raw byte form).
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+
+ Merge the given local public key with another, potentially fresher copy. The resulting public key
+ contains the sum of both keys' user-ids and signatures.
+
+
+ If joinTrustPackets is set to true and the copy carries a trust packet, the joined key will copy the
+ trust-packet from the copy. Otherwise, it will carry the trust packet of the local key.
+
+ local public key.
+ copy of the public key (e.g. from a key server).
+ if true, trust packets from the copy are copied over into the resulting key.
+
+ if true, subkey signatures on the copy will be present in the
+ merged key, even if key was not a subkey before.
+ joined key.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ This method will ignore trust packets on the second copy of the certificate and instead
+ copy the local certificate's trust packets to the joined certificate.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @return joined key ring
+ @throws PGPException
+
+
+ Join two copies of the same certificate.
+ The certificates must have the same primary key, but may carry different subkeys, user-ids and signatures.
+ The resulting certificate will carry the sum of both certificates subkeys, user-ids and signatures.
+
+ For each subkey holds: If joinTrustPackets is set to true and the second key is carrying a trust packet,
+ the trust packet will be copied to the joined key.
+ Otherwise, the joined key will carry the trust packet of the local copy.
+
+ @param first local copy of the certificate
+ @param second remote copy of the certificate (e.g. from a key server)
+ @param joinTrustPackets if true, trust packets from the second certificate copy will be carried over into the joined certificate
+ @param allowSubkeySigsOnNonSubkey if true, the resulting joined certificate may carry subkey signatures on its primary key
+ @return joined certificate
+ @throws PGPException
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ The fingerprint of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return any keys carrying a signature issued by the key represented by keyID.
+
+ @param keyID the key id to be matched against.
+ @return an iterator (possibly empty) of PGPPublicKey objects carrying signatures from keyID.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return the digest prefix of the signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+ Encode the signature to outStream, with trust packets stripped out if forTransfer is true.
+
+ @param outStream stream to write the key encoding to.
+ @param forTransfer if the purpose of encoding is to send key to other users.
+ @throws IOException in case of encoding error.
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Base constructor, creates an empty generator.
+
+
+
+
+ Constructor for pre-initialising the generator from an existing one.
+
+
+ sigSubV an initial set of subpackets.
+
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Return a copy of the subpackets in this vector.
+
+ @return an array containing the vector subpackets in order.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+ Return the EC curve name for the passed in OID.
+
+ @param oid the EC curve object identifier in the PGP key
+ @return a string representation of the OID.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ Wrap a PKIMessage ASN.1 structure.
+
+ PKI message.
+
+
+
+ Create a PKIMessage from the passed in bytes.
+
+ BER/DER encoding of the PKIMessage
+
+
+
+ Return true if this message has protection bits on it. A return value of true
+ indicates the message can be used to construct a ProtectedPKIMessage.
+
+
+
+
+ Wrapper for a PKIMessage with protection attached to it.
+
+
+
+
+ Wrap a general message.
+
+ If the general message does not have protection.
+ The General message
+
+
+
+ Wrap a PKI message.
+
+ If the PKI message does not have protection.
+ The PKI message
+
+
+ Message header
+
+
+ Message body
+
+
+
+ Return the underlying ASN.1 structure contained in this object.
+
+ PkiMessage structure
+
+
+
+ Determine whether the message is protected by a password based MAC. Use verify(PKMACBuilder, char[])
+ to verify the message if this method returns true.
+
+ true if protection MAC PBE based, false otherwise.
+
+
+ Return the message's protection algorithm.
+
+ @return the algorithm ID for the message's protection algorithm.
+
+
+
+ Return the extra certificates associated with this message.
+
+ an array of extra certificates, zero length if none present.
+
+
+
+ Verify a message with a public key based signature attached.
+
+ a factory of signature verifiers.
+ true if the provider is able to create a verifier that validates the signature, false otherwise.
+
+
+
+ Verify a message with password based MAC protection.
+
+ MAC builder that can be used to construct the appropriate MacCalculator
+ the MAC password
+ true if the passed in password and MAC builder verify the message, false otherwise.
+ if algorithm not MAC based, or an exception is thrown verifying the MAC.
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Add a generator to produce the recipient info required.
+
+ a generator of a recipient info object.
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ a holding class for a file of data to be processed.
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained in this message.
+
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained in this message.
+
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ Return the digest algorithm identifiers for the SignedData object
+
+ @return the set of digest algorithm identifiers
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ Return a new CMSSignedData which guarantees to have the passed in digestAlgorithm
+ in it. Uses the DefaultDigestAlgorithmFinder for creating the digest sets.
+
+ @param signedData the signed data object to be used as a base.
+ @param digestAlgorithm the digest algorithm to be added to the signed data.
+ @return a new signed data object.
+
+
+ Return a new CMSSignedData which guarantees to have the passed in digestAlgorithm
+ in it. Uses the passed in IDigestAlgorithmFinder for creating the digest sets.
+
+ @param signedData the signed data object to be used as a base.
+ @param digestAlgorithm the digest algorithm to be added to the signed data.
+ @param digestAlgorithmFinder the digest algorithm finder to generate the digest set with.
+ @return a new signed data object.
+
+
+ Replace the SignerInformation store associated with this CMSSignedData object with the new one passed in
+ using the DefaultDigestAlgorithmFinder for creating the digest sets. You would probably only want
+ to do this if you wanted to change the unsigned attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the SignerInformation store associated with this CMSSignedData object with the new one passed in
+ using the passed in IDigestAlgorithmFinder for creating the digest sets. You would probably only
+ want to do this if you wanted to change the unsigned attributes associated with a signer, or perhaps delete
+ one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param digestAlgorithmFinder the digest algorithm finder to generate the digest set with.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as string objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Dictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in X.509 certificate issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certificate X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ Protected constructor. In some cases clients have their own idea about how to encode
+ the signed attributes and calculate the signature. This constructor is to allow developers
+ to deal with that by extending off the class and overriding e.g. SignedAttributes property.
+
+ @param baseInfo the SignerInformation to base this one on.
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+
+ Carrier for an authenticator control.
+
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+
+
+ Return true if the message only contains X.509 public key certificates.
+
+ @return true if only X.509 PK, false otherwise.
+
+
+ Return the actual CMP certificates - useful if the array also contains non-X509 PK certificates.
+
+ @return CMPCertificate array
+
+
+ Builder for a CertificateRepMessage.
+
+
+ Base constructor which can accept 0 or more certificates representing the CA plus its chain.
+
+ @param caCerts the CA public key and it's support certificates (optional)
+
+
+
+ Create a CertificateRequestMessage from the passed in bytes.
+
+ BER/DER encoding of the CertReqMsg structure.
+
+
+
+ Return the underlying ASN.1 object defining this CertificateRequestMessage object.
+
+ A CertReqMsg
+
+
+
+ Return the certificate request ID for this message.
+
+ the certificate request ID.
+
+
+
+ Return the certificate template contained in this message.
+
+ a CertTemplate structure.
+
+
+
+ Return whether or not this request has control values associated with it.
+
+ true if there are control values present, false otherwise.
+
+
+
+ Return whether or not this request has a specific type of control value.
+
+ the type OID for the control value we are checking for.
+ true if a control value of type is present, false otherwise.
+
+
+
+ Return a control value of the specified type.
+
+ the type OID for the control value we are checking for.
+ the control value if present, null otherwise.
+
+
+
+ Return whether or not this request message has a proof-of-possession field in it.
+
+ true if proof-of-possession is present, false otherwise.
+
+
+
+ Return the type of the proof-of-possession this request message provides.
+
+ one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement
+
+
+
+ Return whether or not the proof-of-possession (POP) is of the type popSigningKey and
+ it has a public key MAC associated with it.
+
+ true if POP is popSigningKey and a PKMAC is present, false otherwise.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP) is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return whether or not a signing key proof-of-possession (POP), with an associated PKMAC, is valid.
+
+ a provider that can produce content verifiers for the signature contained in this POP.
+ a suitable PKMacBuilder to create the MAC verifier.
+ the password used to key the MAC calculation.
+ true if the POP is valid, false otherwise.
+ if there is a problem in verification or content verifier creation.
+ if POP not appropriate.
+
+
+
+ Return the ASN.1 encoding of the certReqMsg we wrap.
+
+ a byte array containing the binary encoding of the certReqMsg.
+
+
+ High level wrapper for the CertResponse CRMF structure.
+
+
+ Return true if the response contains an encrypted certificate.
+
+ @return true if certificate in response encrypted, false otherwise.
+
+
+ Return a CMSEnvelopedData representing the encrypted certificate contained in the response.
+
+ @return a CMEEnvelopedData if an encrypted certificate is present.
+ @throws IllegalStateException if no encrypted certificate is present, or there is an issue with the enveloped data.
+
+
+ Return the CMPCertificate representing the plaintext certificate in the response.
+
+ @return a CMPCertificate if a plaintext certificate is present.
+ @throws IllegalStateException if no plaintext certificate is present.
+
+
+ Return this object's underlying ASN.1 structure.
+
+ @return a CertResponse
+
+
+ Builder for CertificateResponse objects (the CertResponse CRMF equivalent).
+
+
+ Base constructor.
+
+ @param certReqId the request ID for the response.
+ @param statusInfo the status info to associate with the response.
+
+
+ Specify the certificate to assign to this response (in plaintext).
+
+ @param certificate the X.509 PK certificate to include.
+ @return the current builder.
+
+
+ Specify the certificate to assign to this response (in plaintext).
+
+ @param cmpCertificate the X.509 PK certificate to include.
+ @return the current builder.
+
+
+ Specify the encrypted certificate to assign to this response (in plaintext).
+
+ @param encryptedCertificate an encrypted
+ @return the current builder.
+
+
+ Specify the response info field on the response.
+
+ @param responseInfo a response info string.
+ @return the current builder.
+
+
+
+ Create a builder that makes EncryptedValue structures.
+
+ wrapper a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+
+
+
+
+ Create a builder that makes EncryptedValue structures with fixed length blocks padded using the passed in padder.
+
+ a wrapper for key used to encrypt the actual data contained in the EncryptedValue.
+ encryptor an output encryptor to encrypt the actual data contained in the EncryptedValue.
+ padder a padder to ensure that the EncryptedValue created will always be a constant length.
+
+
+
+
+ Build an EncryptedValue structure containing the passed in pass phrase.
+
+ a revocation pass phrase.
+ an EncryptedValue containing the encrypted pass phrase.
+
+
+
+
+ Build an EncryptedValue structure containing the certificate contained in
+ the passed in holder.
+
+ a holder containing a certificate.
+ an EncryptedValue containing the encrypted certificate.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+
+ Build an EncryptedValue structure containing the private key contained in
+ the passed info structure.
+
+ a PKCS#8 private key info structure.
+ an EncryptedValue containing an EncryptedPrivateKeyInfo structure.
+ on a failure to encrypt the data, or wrap the symmetric key for this value.
+
+
+
+ Parser for EncryptedValue structures.
+
+
+ Basic constructor - create a parser to read the passed in value.
+
+ @param value the value to be parsed.
+
+
+ Create a parser to read the passed in value, assuming the padder was
+ applied to the data prior to encryption.
+
+ @param value the value to be parsed.
+ @param padder the padder to be used to remove padding from the decrypted value..
+
+
+
+ Generic interface for a CertificateRequestMessage control value.
+
+
+
+
+ Return the type of this control.
+
+
+
+
+ Return the value contained in this control object.
+
+
+
+
+ An encrypted value padder is used to make sure that prior to a value been
+ encrypted the data is padded to a standard length.
+
+
+
+
+ Return a byte array of padded data.
+
+ the data to be padded.
+ a padded byte array containing data.
+
+
+
+
+ Return a byte array of with padding removed.
+
+ the data to be padded.
+ an array containing the original unpadded data.
+
+
+
+
+ Basic constructor - build from an PKIArchiveOptions structure.
+
+ the ASN.1 structure that will underlie this control.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_pkiArchiveOptions
+
+
+
+ Return the underlying ASN.1 object.
+
+ a PKIArchiveOptions structure.
+
+
+
+ Return the archive control type, one of: encryptedPrivKey,keyGenParameters,or archiveRemGenPrivKey.
+
+ the archive control type.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return whether this control contains enveloped data.
+
+ true if the control contains enveloped data, false otherwise.
+
+
+
+ Return the enveloped data structure contained in this control.
+
+ a CMSEnvelopedData object.
+
+
+
+ Basic constructor - specify the contents of the PKIArchiveControl structure.
+
+ the private key to be archived.
+ the general name to be associated with the private key.
+
+
+
+ Add a recipient generator to this control.
+ recipient generator created for a specific recipient.
+ this builder object.
+
+
+ Build the PKIArchiveControl using the passed in encryptor to encrypt its contents.
+ a suitable content encryptor.
+ a PKIArchiveControl object.
+
+
+
+ Default, IterationCount = 1000, OIW=IdSha1, Mac=HmacSHA1
+
+
+
+
+ Defaults with IPKMacPrimitivesProvider
+
+
+
+
+
+ Create.
+
+ The Mac provider
+ Digest Algorithm Id
+ Mac Algorithm Id
+
+
+
+ Create a PKMAC builder enforcing a ceiling on the maximum iteration count.
+
+ supporting calculator
+ max allowable value for iteration count.
+
+
+ Set the salt length in octets.
+
+ @param saltLength length in octets of the salt to be generated.
+ @return the generator
+
+
+
+ Set the iteration count.
+
+ the iteration count.
+ this
+ if iteration count is less than 100
+
+
+
+ The Secure random
+
+ The random.
+ this
+
+
+
+ Set PbmParameters
+
+ The parameters.
+ this
+
+
+
+ Build an IMacFactory.
+
+ The password.
+ IMacFactory
+
+
+
+ Basic constructor - build from a UTF-8 string representing the token.
+
+ UTF-8 string representing the token.
+
+
+
+ Basic constructor - build from a string representing the token.
+
+ string representing the token.
+
+
+
+ Return the type of this control.
+
+ CRMFObjectIdentifiers.id_regCtrl_regToken
+
+
+
+ Return the token associated with this control (a UTF8String).
+
+ a UTF8String.
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+ Converts the given password to a BigInteger mod q.
+
+
+ Converts the given password (UTF8 encoded) to a BigInteger mod q.
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The AEAD ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ This exception is thrown if a buffer that is meant to have output copied into it turns out to be too
+ short, or if we've been given insufficient input.
+
+ In general this exception will get thrown rather than an .
+
+
+
+ ASCON v1.2 Hash, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 Hash with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ ASCON v1.2 XOF, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 XOF with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ Implementation of the cryptographic hash function Blake2b.
+
+ Blake2b offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ Blake2b offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2b is optimized for 64-bit platforms and produces digests of any size
+ between 1 and 64 bytes.
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be a multiple of 8 and less than 256.
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ Implementation of the eXtendable Output Function (XOF) BLAKE2xs.
+
+ BLAKE2xs offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2xs offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2xs is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 2^16-2 bytes. The length can also be unknown and then the maximum
+ length will be 2^32 blocks of 32 bytes.
+
+
+ Magic number to indicate an unknown length of digest
+
+
+ Expected digest length for the xof. It can be unknown.
+
+
+ Root hash that will take the updates
+
+
+ Digest of the root hash
+
+
+ Digest of each round of the XOF
+
+
+ Current position for a round
+
+
+ Overall position of the digest. It is useful when the length is known
+ in advance to get last block length.
+
+
+ Keep track of the round number to detect the end of the digest after
+ 2^32 blocks of 32 bytes.
+
+
+ Current node offset incremented by 1 every round.
+
+
+ BLAKE2xs for hashing with unknown digest length
+
+
+ BLAKE2xs for hashing
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+
+
+ BLAKE2xs with key
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+
+
+ BLAKE2xs with key, salt and personalization
+
+ @param digestBytes The desired digest length in bytes. Must be above 1 and less than 2^16-1
+ @param key A key up to 32 bytes or null
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Return the maximum size in bytes the digest can produce when the length
+ is unknown
+
+ @return byte length of the largest digest with unknown length
+
+
+ Update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt, personal string remain.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+
+
+ Start outputting the results of the final calculation for this digest. Unlike doFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ @param out output array to write the output bytes to.
+ @param outOff offset to start writing the bytes at.
+ @param outLen the number of output bytes requested.
+ @return the number of bytes written
+
+
+ Already outputting error.
+
+
+ Number of Words.
+
+
+ Number of Rounds.
+
+
+ Buffer length.
+
+
+ Chunk length.
+
+
+ ChunkStart Flag.
+
+
+ ChunkEnd Flag.
+
+
+ Parent Flag.
+
+
+ Root Flag.
+
+
+ KeyedHash Flag.
+
+
+ DeriveContext Flag.
+
+
+ DeriveKey Flag.
+
+
+ Chaining0 State Locations.
+
+
+ Chaining1 State Location.
+
+
+ Chaining2 State Location.
+
+
+ Chaining3 State Location.
+
+
+ Chaining4 State Location.
+
+
+ Chaining5 State Location.
+
+
+ Chaining6 State Location.
+
+
+ Chaining7 State Location.
+
+
+ IV0 State Locations.
+
+
+ IV1 State Location.
+
+
+ IV2 State Location.
+
+
+ IV3 State Location.
+
+
+ Count0 State Location.
+
+
+ Count1 State Location.
+
+
+ DataLen State Location.
+
+
+ Flags State Location.
+
+
+ Message word permutations.
+
+
+ Blake3 Initialization Vector.
+
+
+ The byte input/output buffer.
+
+
+ The key.
+
+
+ The chaining value.
+
+
+ The state.
+
+
+ The message Buffer.
+
+
+ The indices.
+
+
+ The chainingStack.
+
+
+ The default digestLength.
+
+
+ Are we outputting?
+
+
+ How many more bytes can we output?
+
+
+ The current mode.
+
+
+ The output mode.
+
+
+ The output dataLen.
+
+
+ The block counter.
+
+
+ The # of bytes in the current block.
+
+
+ The position of the next byte in the buffer.
+
+
+ the default digest size (in bits)
+
+
+ Constructor.
+
+ @param pSource the source digest.
+
+
+ Initialise.
+
+ @param pParams the parameters.
+
+
+ Compress next block of the message.
+
+ @param pMessage the message buffer
+ @param pMsgPos the position within the message buffer
+
+
+ Initialise M from message.
+
+ @param pMessage the source message
+ @param pMsgPos the message position
+
+
+ Adjust the stack.
+
+
+ Compress final block.
+
+ @param pDataLen the data length
+
+
+ Process the stack.
+
+
+ Perform compression.
+
+
+ Perform a round.
+
+
+ Adjust Chaining after compression.
+
+
+ Mix function G.
+
+ @param msgIdx the message index
+ @param posA position A in V
+ @param posB position B in V
+ @param posC position C in V
+ @param posD poistion D in V
+
+
+ initialise the indices.
+
+
+ PermuteIndices.
+
+
+ Initialise null key.
+
+
+ Initialise key.
+
+ @param pKey the keyBytes
+
+
+ Initialise key from context.
+
+
+ Initialise chunk block.
+
+ @param pDataLen the dataLength
+ @param pFinal is this the final chunk?
+
+
+ Initialise parent block.
+
+
+ Initialise output block.
+
+
+ IncrementBlockCount.
+
+
+ ResetBlockCount.
+
+
+ Set root indication.
+
+
+
+ Customizable SHAKE function.
+
+
+
+
+ Base constructor
+
+ bit length of the underlying SHAKE function, 128 or 256.
+ the function name string, note this is reserved for use by NIST. Avoid using it if not required.
+ the customization string - available for local use.
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+
+ ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage,
+ of the parallelism available in modern processors with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+ @param B the blocksize (in bytes) for hashing.
+
+
+ Photon-Beetle, https://www.isical.ac.in/~lightweight/beetle/
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/readonlyist-round/updated-spec-doc/photon-beetle-spec-readonly.pdf
+
+ Photon-Beetle with reference to C Reference Impl from: https://github.com/PHOTON-Beetle/Software
+
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ .
+
+ Reference C implementation: https://github.com/cryptolu/sparkle.
+ Specification:
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf .
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
+ in an unambiguous way with an optional XOF mode.
+
+ From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
+
+
+
+
+ Base constructor.
+
+ @param bitLength bit length of the underlying SHAKE function, 128 or 256.
+ @param S the customization string - available for local use.
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto and Rijmen.
+
+
+ Copy constructor. This will copy the state of the provided message digest.
+
+
+ Reset the chaining variables
+
+
+ Elliptic curve registry for various customized curve implementations.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of the
+ full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Check the argument is a valid encoding with type 1. Returns the plaintext length if valid, or -1 if invalid.
+
+
+ Check the argument is a valid encoding with type 2. Returns the plaintext length if valid, or -1 if invalid.
+
+
+ Check the argument is a valid encoding with type 2 of a plaintext with the given length. Returns 0 if
+ valid, or -1 if invalid.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AesWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AESWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ RFC 5794.
+
+ ARIA is a 128-bit block cipher with 128-, 192-, and 256-bit keys.
+
+
+
+ An implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+
+ Create a regular AriaWrapEngine specifying the encrypt for wrapping, decrypt for unwrapping.
+
+
+
+
+ Create an AriaWrapEngine where the underlying cipher is (optionally) set to decrypt for wrapping, encrypt for
+ unwrapping.
+
+ true if underlying cipher should be used in decryption mode, false
+ otherwise.
+
+
+ ASCON v1.2 AEAD, https://ascon.iaik.tugraz.at/ .
+
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/ascon-spec-final.pdf
+ ASCON v1.2 AEAD with reference to C Reference Impl from: https://github.com/ascon/ascon-c .
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ Constants
+
+
+ Variables to hold the state of the engine during encryption and
+ decryption
+
+
+ Initialize a Grain-128AEAD cipher.
+
+ @param forEncryption Whether or not we are for encryption.
+ @param param The parameters required to set up the cipher.
+ @throws ArgumentException If the params argument is inappropriate.
+
+
+ 320 clocks initialization phase.
+
+
+ Get output from non-linear function g(x).
+
+ @return Output from NFSR.
+
+
+ Get output from linear function f(x).
+
+ @return Output from LFSR.
+
+
+ Get output from output function h(x).
+
+ @return y_t.
+
+
+ Shift array 1 bit and add val to index.Length - 1.
+
+ @param array The array to shift.
+ @param val The value to shift in.
+ @return The shifted array with val added to index.Length - 1.
+
+
+ Set keys, reset cipher.
+
+ @param keyBytes The key.
+ @param ivBytes The IV.
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (barring 1 typo at the
+ end of the MulInv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note: This algorithm was patented in the USA, Japan and Europe. These patents expired in 2011/2012.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+ An implementation of the AES Key Wrap with Padding specification as described in RFC 3349.
+
+ For further details see: Schaad, J. and R. Housley, "Advanced Encryption Standard (AES) Key Wrap Algorithm",
+ RFC 3394, DOI 10.17487/RFC3394, September 2002, <https://www.rfc-editor.org/info/rfc3394\>, and
+ http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ An implementation of the AES Key Wrap with Padding specification as described in RFC 5649.
+
+ For further details see: Housley, R. and M. Dworkin, "Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm",
+ RFC 5649, DOI 10.17487/RFC5649, September 2009, <https://www.rfc-editor.org/info/rfc5649>, and
+ http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ Performs steps 1 and 2 of the unwrap process defined in RFC 3394.
+ This code is duplicated from RFC3394WrapEngine because that class
+ will throw an error during unwrap because the IV won't match up.
+
+ @param in
+ @param inOff
+ @param inLen
+ @return Unwrapped data.
+
+
+ Pads the plaintext (i.e., the key to be wrapped)
+ as per section 4.1 of RFC 5649.
+
+ @param plaintext The key being wrapped.
+ @return The padded key.
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ This does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
+
+ The implementation here is based on the document http://eprint.iacr.org/2008/329.pdf
+ by Whitfield Diffie and George Ledin, which is a translation of Prof. LU Shu-wang's original standard.
+
+
+
+ Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ .
+
+ Reference C implementation: https://github.com/cryptolu/sparkle.
+ Specification:
+ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf .
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Base class for format-preserving encryption.
+
+
+
+ Process length bytes from inBuf, writing the output to outBuf.
+
+ number of bytes output.
+ input data.
+ offset in input data to start at.
+ number of bytes to process.
+ destination buffer.
+ offset to start writing at in destination buffer.
+
+
+
+ Initialize the FPE engine for encryption/decryption.
+
+ number of bytes output.
+ true if initialising for encryption, false otherwise.
+ the key and other parameters to use to set the engine up.
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Converts a character password to bytes incorporating the required trailing zero byte.
+
+ @param password the password to be encoded.
+ @return a byte representation of the password in UTF8 + trailing zero.
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD1 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ the digest to be used as the source of generated bytes
+
+
+ the underlying digest.
+
+
+ Fill len bytes of the output buffer with bytes generated from the derivation function.
+
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, 2y,2b or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$' using version
+ '2y'.
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param version the version, may be 2b, 2y or 2a. (2a is not backwards compatible.)
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+
+ Generator for PBE derived keys and IVs as usd by OpenSSL. Originally this scheme was a simple extension of
+ PKCS 5 V2.0 Scheme 1 using MD5 with an iteration count of 1. The default digest was changed to SHA-256 with
+ OpenSSL 1.1.0. This implementation still defaults to MD5, but the digest can now be set.
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest the original MD5.
+
+
+
+
+
+
+ Construct a OpenSSL Parameters generator - digest as specified.
+
+ the digest to use as the PRF.
+
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ int.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for mapping from an alphabet to a set of indexes
+ suitable for use with FPE.
+
+
+
+ Return the number of characters in the alphabet.
+
+ the radix for the alphabet.
+
+
+
+ Return the passed in char[] as a byte array of indexes (indexes
+ can be more than 1 byte)
+
+ an index array.
+ characters to be mapped.
+
+
+
+ Return a char[] for this alphabet based on the indexes passed.
+
+ an array of char corresponding to the index values.
+ input array of indexes.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Return an upper limit for the size of the result.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+
+ Base interface for a ciphers that do not require data to be block aligned.
+
+ Note: In cases where the underlying algorithm is block based, these ciphers may add or remove padding as needed.
+
+
+
+
+
+ Return the size of the output buffer required for a Write() plus a
+ close() with the write() being passed inputLen bytes.
+
+ The returned size may be dependent on the initialisation of this cipher
+ and may not be accurate once subsequent input data is processed as the cipher may
+ add, add or remove padding, as it sees fit.
+
+
+ The space required to accommodate a call to processBytes and doFinal with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Return the size of the output buffer required for a write() with the write() being
+ passed inputLen bytes and just updating the cipher output.
+
+ The space required to accommodate a call to processBytes with inputLen bytes of input.
+ The length of the expected input.
+
+
+
+ Gets the stream for reading/writing data processed/to be processed.
+
+ The stream associated with this cipher.
+
+
+
+ Base interface for cipher builders.
+
+
+
+
+ Return the algorithm and parameter details associated with any cipher built.
+
+
+
+
+ Return the maximum output size that a given input will produce.
+
+ the length of the expected input.
+ The maximum possible output size that can produced for the expected input length.
+
+
+
+ Build a cipher that operates on the passed in stream.
+
+ The stream to write/read any encrypted/decrypted data.
+ A cipher based around the given stream.
+
+
+
+ A cipher builder that can also return the key it was initialized with.
+
+
+
+
+ Return the key we were initialized with.
+
+
+
+ all parameter classes implement this.
+
+
+
+ Interface describing a provider of cipher builders for creating decrypting ciphers.
+
+
+
+
+ Return a cipher builder for creating decrypting ciphers.
+
+ The algorithm details/parameters to use to create the final cipher.
+ A new cipher builder.
+
+
+ Base interface for general purpose byte derivation functions.
+
+
+ The message digest used as the basis for the function.
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ Base interface for a message digest.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the digest produced by this message digest.
+ the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size, in bytes, of the internal buffer used by this digest.
+ the size, in bytes, of the internal buffer used by this digest.
+
+
+ Update the message digest with a single byte.
+ the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Close the digest, producing the final digest value.
+ This call leaves the digest reset.
+ the byte array the digest is to be copied into.
+ the offset into the byte array the digest is to start at.
+ the number of bytes written
+
+
+ Reset the digest back to its initial state.
+
+
+
+ Base interface for operator factories that create stream-based digest calculators.
+
+
+
+ The algorithm details object for calculators made by this factory.
+
+
+ Return the size of the digest associated with this factory.
+ The length of the digest produced by this calculators from this factory in bytes.
+
+
+
+ Create a stream calculator for the digest associated with this factory. The stream
+ calculator is used for the actual operation of entering the data to be digested
+ and producing the digest block.
+
+ A calculator producing an IBlockResult with the final digest in it.
+
+
+ Interface for classes implementing the Digital Signature Algorithm
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signature generation or signature verification.
+ true if we are generating a signature, false otherwise.
+ key parameters for signature generation.
+
+
+ Sign the passed in message (usually the output of a hash function).
+ the message to be signed.
+ two big integers representing the r and s values respectively.
+
+
+ The order of the group that the r, s values in signatures belong to.
+
+
+ Verify the message message against the signature values r and s.
+ the message that was supposed to have been signed.
+ the r signature value.
+ the s signature value.
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+ the encapsulated secret.
+
+
+
+ The length in bytes of the encapsulation.
+
+
+
+
+ Generate an exchange pair based on the recipient public key.
+
+
+ An SecretWithEncapsulation derived from the recipient public key.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+
+ Base interface for a key unwrapper.
+
+
+
+
+ The parameter set used to configure this key unwrapper.
+
+
+
+
+ Unwrap the passed in data.
+
+ The array containing the data to be unwrapped.
+ The offset into cipherText at which the unwrapped data starts.
+ The length of the data to be unwrapped.
+ an IBlockResult containing the unwrapped key data.
+
+
+
+ Base interface for a key wrapper.
+
+
+
+
+ The parameter set used to configure this key wrapper.
+
+
+
+
+ Wrap the passed in key data.
+
+ The key data to be wrapped.
+ an IBlockResult containing the wrapped key data.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+ The key or other data required by the MAC.
+
+
+ The algorithm name.
+
+
+ Return the size, in bytes, of the MAC produced by this implementation.
+ the size, in bytes, of the MAC produced by this implementation.
+
+
+ Update the MAC with a single byte.
+ the input byte to be entered.
+
+
+ Update the MAC with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Perform final calculations, producing the result MAC.
+ This call leaves the MAC reset.
+ the byte array the MAC is to be copied into.
+ the offset into the byte array the MAC is to start at.
+ the number of bytes written
+
+
+ Reset the MAC back to its initial state.
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ This exception is thrown whenever we find something we don't expect in a message.
+
+
+
+ Return the secret associated with the encapsulation.
+
+ the secret the encapsulation is for.
+
+
+
+ Return the data that carries the secret in its encapsulated form.
+
+ the encapsulation of the secret.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ The algorithm name.
+
+
+ Initialise the signer for signing or verification.
+ true if for signing, false otherwise.
+ necessary parameters.
+
+
+ Update the signer with a single byte.
+ the input byte to be entered.
+
+
+ Update the signer with a block of bytes.
+ the byte array containing the data.
+ the offset into the byte array where the data starts.
+ the length of the data.
+
+
+ Generate a signature for the message we've been loaded with using the key we were initialised with.
+
+ A byte array containing the signature for the message.
+
+
+ Return true if the internal state represents the signature described in the passed in array.
+
+ an array containing the candidate signature to verify.
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the signer back to its initial state.
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from , putting the result into .
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the input buffer is too small.
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra methods required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this XOF to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this XOF. Unlike DoFinal, this method
+ will continue producing output until the XOF is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ This exception is thrown whenever a cipher requires a change of key, IV or similar after x amount of
+ bytes enciphered.
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ GCM-SIV Mode.
+ It should be noted that the specified limit of 236 bytes is not supported. This is because all bytes are
+ cached in a ByteArrayOutputStream object (which has a limit of a little less than 231 bytes),
+ and are output on the DoFinal() call (which can only process a maximum of 231 bytes).
+ The practical limit of 231 - 24 bytes is policed, and attempts to breach the limit will be rejected
+ In order to properly support the higher limit, an extended form of ByteArrayOutputStream would be needed
+ which would use multiple arrays to store the data. In addition, a new doOutput method would be required (similar
+ to that in XOF digests), which would allow the data to be output over multiple calls. Alternatively an extended
+ form of ByteArrayInputStream could be used to deliver the data.
+
+
+ The buffer length.
+
+
+ The halfBuffer length.
+
+
+ The nonce length.
+
+
+ The maximum data length (AEAD/PlainText). Due to implementation constraints this is restricted to the maximum
+ array length (https://programming.guide/java/array-maximum-length.html) minus the BUFLEN to allow for the MAC
+
+
+ The top bit mask.
+
+
+ The addition constant.
+
+
+ The initialisation flag.
+
+
+ The aeadComplete flag.
+
+
+ The cipher.
+
+
+ The multiplier.
+
+
+ The gHash buffer.
+
+
+ The reverse buffer.
+
+
+ The aeadHasher.
+
+
+ The dataHasher.
+
+
+ The plainDataStream.
+
+
+ The encryptedDataStream (decryption only).
+
+
+ Are we encrypting?
+
+
+ The initialAEAD.
+
+
+ The nonce.
+
+
+ The flags.
+
+
+ Constructor.
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+
+
+ Constructor.
+ @param pCipher the underlying cipher
+ @param pMultiplier the multiplier
+
+
+ check AEAD status.
+ @param pLen the aeadLength
+
+
+ check status.
+ @param pLen the dataLength
+
+
+ Reset Streams.
+
+
+ Obtain buffer length (allowing for null).
+ @param pBuffer the buffere
+ @return the length
+
+
+ calculate tag.
+ @return the calculated tag
+
+
+ complete polyVAL.
+ @return the calculated value
+
+
+ process lengths.
+
+
+ perform the next GHASH step.
+ @param pNext the next value
+
+
+ xor a full block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+
+
+ xor a partial block buffer.
+ @param pLeft the left operand and result
+ @param pRight the right operand
+ @param pOffset the offset in the right operand
+ @param pLength the length of data in the right operand
+
+
+ increment the counter.
+ @param pCounter the counter to increment
+
+
+ multiply by X.
+ @param pValue the value to adjust
+
+
+ Derive Keys.
+ @param pKey the keyGeneration key
+
+
+ Hash Control.
+
+
+ Cache.
+
+
+ Single byte cache.
+
+
+ Count of active bytes in cache.
+
+
+ Count of hashed bytes.
+
+
+ Obtain the count of bytes hashed.
+ @return the count
+
+
+ Reset the hasher.
+
+
+ update hash.
+ @param pByte the byte
+
+
+ update hash.
+ @param pBuffer the buffer
+ @param pOffset the offset within the buffer
+ @param pLen the length of data
+
+
+ complete hash.
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ An IAeadCipher based on an IBlockCipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ The block cipher underlying this algorithm.
+
+
+
+ A cipher mode that includes authenticated encryption with a streaming mode and optional
+ associated data.
+
+
+ Implementations of this interface may operate in a packet mode (where all input data is
+ buffered and processed during the call to DoFinal, or in a streaming mode (where output
+ data is incrementally produced with each call to ProcessByte or ProcessBytes. This is
+ important to consider during decryption: in a streaming mode, unauthenticated plaintext
+ data may be output prior to the call to DoFinal that results in an authentication failure.
+ The higher level protocol utilising this cipher must ensure the plaintext data is handled
+ appropriately until the end of data is reached and the entire ciphertext is authenticated.
+
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+ Return the underlying this cipher mode.
+
+
+ Indicates whether this cipher mode can handle partial blocks.
+
+
+
+ Reset the cipher mode to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm.
+
+ For those still concerned about the original patents around this, please see:
+ https://mailarchive.ietf.org/arch/msg/cfrg/qLTveWOdTJcLn4HP3ev-vrj05Vg/
+ Text reproduced below:
+
+ Phillip Rogaway<rogaway@cs.ucdavis.edu> Sat, 27 February 2021 02:46 UTC
+
+ I can confirm that I have abandoned all OCB patents and placed into the public domain all OCB-related IP of
+ mine. While I have been telling people this for quite some time, I don't think I ever made a proper announcement
+ to the CFRG or on the OCB webpage. Consider that done.
+
+
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface.
+
+
+ Initialise the padder.
+ A source of randomness, if any required.
+
+
+ The name of the algorithm this padder implements.
+
+
+ Add padding to the passed in block.
+ the block to add padding to.
+ the offset into the block the padding is to start at.
+ the number of bytes of padding added.
+
+
+ Determine the length of padding present in the passed in block.
+ the block to check padding for.
+ the number of bytes of padding present.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+
+ A padder that adds the padding according to the scheme referenced in ISO 7814-4 - scheme 2 from ISO 9797-1.
+ The first byte is 0x80, rest is 0x00
+
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds PKCS7/PKCS5 padding to a block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+ This padding pads the block out compliment of the last bit of the plain text.
+
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is passed in random padding is assumed,
+ otherwise padding with zeros is used.
+
+
+
+ A padder that adds zero byte padding to a block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Blake3 Parameters.
+
+
+ Create a key parameter.
+ the context
+ the parameter
+
+
+ Create a key parameter.
+ the key
+ the parameter
+
+
+ Obtain the key.
+ the key
+
+
+ Clear the key bytes.
+
+
+ Obtain the salt.
+ the salt
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+
+ Base constructor - suffix fixed input data only.
+
+ the KDF seed
+ fixed input data to follow counter.
+ length of the counter in bits
+
+
+
+ Base constructor - prefix and suffix fixed input data.
+
+ the KDF seed
+ fixed input data to precede counter
+ fixed input data to follow counter.
+ length of the counter in bits.
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Supply additional input to HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1)).
+
+ RFC 6979 3.6. Additional data may be added to the input of HMAC [..]. A use case may be a protocol that
+ requires a non-deterministic signature algorithm on a system that does not have access to a high-quality
+ random source. It suffices that the additional data[..] is non-repeating(e.g., a signature counter or a
+ monotonic clock) to ensure "random-looking" signatures are indistinguishable, in a cryptographic way, from
+ plain (EC)DSA signatures.
+
+ By default there is no additional input. Override this method to supply additional input, bearing in mind
+ that this calculator may be used for many signatures.
+
+ The to which the additional input should be added.
+
+
+ Supply additional input to HMAC_K(V || 0x01 || int2octets(x) || bits2octets(h1)).
+
+ Refer to comments for .
+
+ The to which the additional input should be added.
+
+
+
+ An interface for different encoding formats for DSA signatures.
+
+
+
+ Decode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ An encoding of the (r, s) pair of a DSA signature.
+ The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.
+
+
+ Encode the (r, s) pair of a DSA signature.
+ The order of the group that r, s belong to.
+ The r value of a DSA signature.
+ The s value of a DSA signature.
+ An encoding of the DSA signature given by the provided (r, s) pair.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+ reset the internal state
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+
+ A simple block result object which just carries a byte array.
+
+
+
+
+ Base constructor - a wrapper for the passed in byte array.
+
+ The byte array to be wrapped.
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+ Check the argument is a valid encoding with type 2 of a plaintext with the given length. Returns 0 if
+ valid, or -1 if invalid.
+
+
+ Create an AlgorithmIdentifier for the passed in encryption algorithm.
+
+ @param encryptionOID OID for the encryption algorithm
+ @param keySize key size in bits (-1 if unknown)
+ @param random SecureRandom to use for parameter generation.
+ @return a full AlgorithmIdentifier including parameters
+ @throws IllegalArgumentException if encryptionOID cannot be matched
+
+
+ A basic alphabet mapper that just creates a mapper based on the
+ passed in array of characters.
+
+
+ Base constructor.
+
+ @param alphabet a string of characters making up the alphabet.
+
+
+ Base constructor.
+
+ @param alphabet an array of characters making up the alphabet.
+
+
+ Create a key generator for the passed in Object Identifier.
+
+ @param algorithm the Object Identifier indicating the algorithn the generator is for.
+ @param random a source of random to initialise the generator with.
+ @return an initialised CipherKeyGenerator.
+ @throws IllegalArgumentException if the algorithm cannot be identified.
+
+
+ Builder and holder class for preparing SP 800-56A compliant OtherInfo. The data is ultimately encoded as a DER SEQUENCE.
+ Empty octet strings are used to represent nulls in compulsory fields.
+
+
+ Builder to create OtherInfo
+
+
+ Create a basic builder with just the compulsory fields.
+
+ @param algorithmID the algorithm associated with this invocation of the KDF.
+ @param partyUInfo sender party info.
+ @param partyVInfo receiver party info.
+
+
+ Add optional supplementary public info (DER tagged, implicit, 0).
+
+ @param suppPubInfo supplementary public info.
+ @return the current builder instance.
+
+
+ Add optional supplementary private info (DER tagged, implicit, 1).
+
+ @param suppPrivInfo supplementary private info.
+ @return the current builder instance.
+
+
+ Build the KTSOtherInfo.
+
+ @return an KTSOtherInfo containing the data.
+
+
+ Magic value for proprietary OpenSSH private key.
+ C string so null terminated.
+
+
+ Encode a cipher parameters into an OpenSSH private key.
+ This does not add headers like ----BEGIN RSA PRIVATE KEY----
+
+ @param parameters the cipher parameters.
+ @return a byte array
+
+
+ Parse a private key.
+
+ This method accepts the body of the OpenSSH private key.
+ The easiest way to extract the body is to use PemReader, for example:
+
+ byte[] blob = new PemReader([reader]).readPemObject().getContent();
+ CipherParameters params = parsePrivateKeyBlob(blob);
+
+ @param blob The key.
+ @return A cipher parameters instance.
+
+
+ allIntegers returns true if the sequence holds only DerInteger types.
+
+
+
+ Parse a public key.
+
+ This method accepts the bytes that are Base64 encoded in an OpenSSH public key file.
+
+ @param encoded The key.
+ @return An AsymmetricKeyParameter instance.
+
+
+ Encode a public key from an AsymmetricKeyParameter instance.
+
+ @param cipherParameters The key to encode.
+ @return the key OpenSSH encoded.
+ @throws IOException
+
+
+ Parse a public key from an SSHBuffer instance.
+
+ @param buffer containing the SSH public key.
+ @return A CipherParameters instance.
+
+
+ Look up the for the curve with the given name.
+ The name of the curve.
+
+
+ Look up an for the curve with the given name.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The name of the curve.
+
+
+ Look up the for the curve with the given
+ OID.
+ The OID for the curve.
+
+
+ Look up an for the curve with the given
+ OID.
+
+ Allows accessing the curve without necessarily triggering the creation of
+ the full .
+
+ The OID for the curve.
+
+
+ Look up the name of the curve with the given OID.
+ The OID for the curve.
+
+
+ Look up the OID of the curve with the given name.
+ The name of the curve.
+
+
+ Enumerate the available curve names in this registry.
+
+
+ Use KeyTransRecipientInfoGenerator
+
+
+
+ Base interface for a finder of digest algorithm identifiers used with signatures.
+
+
+
+
+ Find the digest algorithm identifier that matches with the passed in signature algorithm identifier.
+
+ the signature algorithm of interest.
+ an algorithm identifier for the corresponding digest.
+
+
+
+ Find the digest algorithm identifier that matches with the passed in digest name.
+
+ the OID of the digest algorithm of interest.
+ an algorithm identifier for the digest signature.
+
+
+
+ Find the digest algorithm identifier that matches with the passed in digest name.
+
+ the name of the digest algorithm of interest.
+ an algorithm identifier for the digest signature.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly
+ faster) implementations, and for very small scalars. CAUTION: This implementation is NOT
+ constant-time in any way. It is only intended to be used for diagnostics.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier, unless already set.
+
+ We avoid locking for performance reasons, so there is no uniqueness guarantee.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Elliptic curve points over F2m
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoints used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @param maxWidth the maximum window width to return
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+
+ A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital
+ Signature Algorithm specified in RFC 8032.
+
+
+ The implementation strategy is mostly drawn from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography", notably the "signed multi-comb" algorithm (for
+ scalar multiplication by a fixed point), the "half Niels coordinates" (for precomputed points), and the
+ "extensible coordinates" (for accumulators). Standard
+ extended coordinates are used during
+ precomputations, needing only a single extra point addition formula.
+
+
+
+
+ A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature
+ Algorithm specified in RFC 8032.
+
+
+ The implementation uses the "signed mult-comb" algorithm (for scalar multiplication by a fixed point) from
+ Mike Hamburg, "Fast and compact elliptic-curve cryptography". Standard
+ projective coordinates are used
+ for most point arithmetic.
+
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+
+ Enhanced Miller-Rabin Probabilistic Primality Test
+
+
+ Used to return the output from the
+ Shawe-Taylor Random_Prime Routine
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine.
+ Construct a provable prime number using a hash function.
+ The instance to use (as "Hash()"). Cannot be null.
+ The length (in bits) of the prime to be generated. Must be at least 2.
+ The seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ An instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test.
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an alternative to
+ that provides more information about a
+ composite candidate, which may be useful when generating or validating RSA moduli.
+
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+ An instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+ The instance to test for division by small factors.
+ true if the candidate is found to have any small factors, false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test.
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+ The instance to test for primality.
+ The source of randomness to use to choose bases.
+ The number of randomly-chosen bases to perform the test for.
+
+ false if any witness to compositeness is found amongst the chosen bases (so
+ is definitely NOT prime), or else true (indicating primality with some
+ probability dependent on the number of iterations that were performed).
+
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+ The instance to test for primality.
+ The base value to use for this iteration.
+ false if is a witness to compositeness (so
+ is definitely NOT prime), or else true.
+
+
+
+ Modular inversion as implemented in this class is based on the paper "Fast constant-time gcd computation and
+ modular inversion" by Daniel J. Bernstein and Bo-Yin Yang.
+
+
+ In some cases (when it is faster) we use the "half delta" variant of safegcd based on
+ hddivsteps.
+
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ Wrapper for the RevokedInfo object
+
+
+ Return the revocation reason, if there is one.
+ This field is optional; test for it with first.
+ The revocation reason, if available.
+ If no revocation reason is available.
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns an ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WARNING: If is null, no integrity check is performed.
+
+
+
+ Load without any integrity check.
+
+
+
+
+
+
+ JksTrustedCertEntry is a internal container for the certificate entry.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given signature mechanism.
+
+ A string representation of the signature mechanism.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ Returns X509Extensions if the Extensions Request attribute can be found and returns the extensions block.
+
+ X509Extensions block or null if one cannot be found.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ A holding class for a PKCS#8 encrypted private key info object that allows for its decryption.
+
+
+
+
+ Base constructor from a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A PKCS#8 EncryptedPrivateKeyInfo object.
+
+
+
+ Base constructor from a BER encoding of a PKCS#8 EncryptedPrivateKeyInfo object.
+
+ A BER encoding of a PKCS#8 EncryptedPrivateKeyInfo objects.
+
+
+
+ Returns the underlying ASN.1 structure inside this object.
+
+ Return the EncryptedPrivateKeyInfo structure in this object.
+
+
+
+ Returns a copy of the encrypted data in this structure.
+
+ Return a copy of the encrypted data in this object.
+
+
+
+ Return a binary ASN.1 encoding of the EncryptedPrivateKeyInfo structure in this object.
+
+ A byte array containing the encoded object.
+
+
+
+ Get a decryptor from the passed in provider and decrypt the encrypted private key info, returning the result.
+
+ A provider to query for decryptors for the object.
+ The decrypted private key info structure.
+
+
+
+ Create the encrypted private key info using the passed in encryptor.
+
+ The encryptor to use.
+ An encrypted private key info containing the original private key info.
+
+
+ Base exception for PKCS related issues.
+
+
+ Base exception for parsing related issues in the PKCS namespace.
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+
+ @param privateKey the key to be encoded into the info object.
+ @param attributes the set of attributes to be included.
+ @return the appropriate PrivateKeyInfo
+ @throws java.io.IOException on an error encoding the key
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the index of
+ the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #Index Index} property to retrieve
+ this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the index of the certificate in the certification path that *
+
+
+ eturns the index of the certificate in the certification path that caused the exception to be
+ thrown.
+
+ Note that the list of certificates in a is zero based. If no index has been set,
+ -1 is returned.
+
+ The index that has been set, or -1 if none has been set.
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @param ip The IP address.
+ @return true if constrained, false
+ otherwise.
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+
+
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+
+
+
+
+
+
+
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Crystal Kyber Private Key Format.
+ See https://www.ietf.org/archive/id/draft-uni-qsckeys-kyber-00.html for details.
+
+ KyberPrivateKey ::= SEQUENCE {
+ version INTEGER {v0(0)} -- version (round 3)
+ s OCTET STRING, -- EMPTY
+ hpk OCTET STRING -- EMPTY
+ nonce OCTET STRING, -- d
+ publicKey [0] IMPLICIT KyberPublicKey OPTIONAL,
+ -- see next section
+ }
+
+
+
+ Crystal Kyber Public Key Format.
+ See https://www.ietf.org/archive/id/draft-uni-qsckeys-kyber-00.html for details.
+
+ KyberPublicKey ::= SEQUENCE {
+ t OCTET STRING,
+ rho OCTET STRING
+ }
+
+
+
+ 1.3.6.1.4.1.8301.3.1.3.5.3.2
+
+
+ 1.3.6.1.4.1.8301.3.1.3.5.3.2.1
+
+
+ 1.3.6.1.4.1.8301.3.1.3.5.3.2.2
+
+
+ 1.3.6.1.4.1.8301.3.1.3.5.3.2.3
+
+
+ 1.3.6.1.4.1.8301.3.1.3.5.3.2.4
+
+
+ 1.3.6.1.4.1.8301.3.1.3.5.3.2.5
+
+
+ 1.3.6.1.4.1.8301.3.1.3.3
+
+
+ 1.3.6.1.4.1.8301.3.1.3.3.1
+
+
+ 1.3.6.1.4.1.8301.3.1.3.3.2
+
+
+ 1.3.6.1.4.1.8301.3.1.3.3.3
+
+
+ 1.3.6.1.4.1.8301.3.1.3.3.4
+
+
+ 1.3.6.1.4.1.8301.3.1.3.3.5
+
+
+ 1.3.6.1.4.1.8301.3.1.3.4.1
+
+
+ 1.3.6.1.4.1.8301.3.1.3.4.2
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ qTESLA
+
+
+ Explicit composite algorithms
+
+
+ See https://datatracker.ietf.org/doc/draft-uni-qsckeys-sphincsplus/00/ for details
+ ASN.1 Encoding for a
+ SphincsPlus private key for fully populated:
+
+ SPHINCSPLUSPrivateKey ::= SEQUENCE {
+ version INTEGER {v2(1)} --syntax version 2 (round 3)
+ skseed OCTET STRING, --n-byte private key seed
+ skprf OCTET STRING, --n-byte private key seed
+ PublicKey SPHINCSPLUSPublicKey --public key
+ }
+
+
+
+ See https://datatracker.ietf.org/doc/draft-uni-qsckeys-sphincsplus/00/ for details.
+ ASN.1 Encoding for a
+ SphincsPlus public key for fully populated:
+
+ SPHINCSPPLUSPublicKey := SEQUENCE {
+ pkseed OCTET STRING, --n-byte public key seed
+ pkroot OCTET STRING --n-byte public hypertree root
+ }
+
+
+
+ Generate key pairs
+ - Secret key : (h0, h1, sigma)
+ - Public key: h
+ * @param h0 h0
+ * @param h1 h1
+ * @param sigma sigma
+ * @param h h
+ * @param random Secure Random
+ *
+
+
+ KEM Encapsulation
+ - Input: h
+ - Output: (c0,c1,k)
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ * @param h public key
+ * @param random Secure Random
+ *
+
+
+ KEM Decapsulation
+ - Input: (h0, h1, sigma), (c0, c1)
+ - Output: k
+ * @param h0 private key
+ * @param h1 private key
+ * @param sigma private key
+ * @param c0 ciphertext
+ * @param c1 ciphertext
+ * @param k session key
+ *
+
+
+ Karatsuba multiplication of a and b, Implementation inspired from the NTL library.
+
+ \param[out] o Polynomial
+ \param[in] a Polynomial
+ \param[in] b Polynomial
+ \param[in] size Length of polynomial
+ \param[in] stack Length of polynomial
+
+
+ @brief Compute o(x) = a(x) mod \f$ X^n - 1\f$
+
+ This function computes the modular reduction of the polynomial a(x)
+
+ @param[in] a Pointer to the polynomial a(x)
+ @param[out] o Pointer to the result
+
+
+ Generate key pairs
+ - Secret key : (x,y)
+ - Public key: (h,s)
+ @param pk output pk = (publicSeed||s)
+
+
+
+
+ HQC Encapsulation
+ - Input: pk, seed
+ - Output: c = (u,v,d), K
+
+ @param u u
+ @param v v
+ @param d d
+ @param K session key
+ @param pk public key
+ @param seed seed
+
+
+
+ HQC Decapsulation
+ - Input: ct, sk
+ - Output: ss
+
+ @param ss session key
+ @param ct ciphertext
+ @param sk secret key
+
+
+
+ HQC Encryption
+ - Input: (h,s, m)
+ - Output: (u,v) = c
+
+ @param h public key
+ @param s public key
+ @param m message
+ @param u ciphertext
+ @param v ciphertext
+
+
+
+ Base interface for a PQC signature algorithm.
+
+
+ Initialise this instance for signature generation or verification.
+ true if we are generating a signature, false otherwise.
+ parameters for signature generation or verification.
+
+
+ Sign a message.
+ the message to be signed.
+ the signature of the message.
+
+
+ Verify a purported signature for a message.
+ the message supposedly signed.
+ the purported signature to verify.
+ true if and only if the signature verified against the message.
+
+
+ Type to assist in build LMS messages.
+
+
+ Increments an HSS private key without doing any work on it.
+ HSS private keys are automatically incremented when when used to create signatures.
+
+ The HSS private key is ranged tested before this incrementation is applied.
+ LMS keys will be replaced as required.
+
+ @param keyPair
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters array of LMS parameters, one per level in the hierarchy (up to 8 levels).
+ @param random the random byte source.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+ Reset to index will ensure that all LMS keys are correct for a given HSS index value.
+ Normally LMS keys updated in sync with their parent HSS key but in cases of sharding
+ the normal monotonic updating does not apply and the state of the LMS keys needs to be
+ reset to match the current HSS index.
+
+
+ @param src byte[], InputStream or HSSSignature
+ @param L The HSS depth, available from public key.
+ @return An HSSSignature instance.
+ @throws IOException
+
+
+ Base constructor - parameters and a source of randomness.
+
+ @param lmsParameters LMS parameter set to use.
+ @param random the random byte source.
+
+
+ Return the key index (the q value).
+
+ @return private key index number.
+
+
+ Return a key that can be used usageCount times.
+
+ Note: this will use the range [index...index + usageCount) for the current key.
+
+
+ @param usageCount the number of usages the key should have.
+ @return a key based on the current key that can be used usageCount times.
+
+
+
+ Encapsulated secret encapsulated by NTRU.
+
+
+
+
+ NTRU secret encapsulation extractor.
+
+
+
+
+ Encapsulate a secret using NTRU. Returns an as encapsulation.
+
+
+
+ NTRU website
+
+
+
+ NTRU sampling.
+
+ NTRU specification section 1.10
+
+
+
+
+ Sample_fg
+
+ random byte array
+ a pair of polynomial f and g
+
+
+
+
+ Sample_rm
+
+ random byte array
+ a pair of polynomial r and m
+
+
+
+
+ Ternary
+
+ random byte array
+ A ternary polynomial
+
+
+
+ Fixed_Type
+
+ random byte array
+ a ternary polynomial with exactly q/16 − 1 coefficients equal to 1 and q/16 − 1 coefficient equal to −1
+
+
+
+ Ternary_Plus
+
+ random byte array
+ a ternary polynomial that satisfies the non-negative correlation property
+
+
+
+ An OW-CPA secure deterministic public key encryption scheme (DPKE).
+
+
+
+
+ Generate a DPKE key pair.
+
+ a random byte array
+ DPKE key pair
+
+
+
+ DPKE encryption.
+
+
+
+
+ DPKE ciphertext
+
+
+
+ DPKE decryption.
+
+
+
+ an instance of containing packed_rm an fail flag
+
+
+ Largest serialized public key size, in bytes
+
+
+ Largest signature size, in bytes
+
+
+ parameters
+
+
+
+
+
+ Compressed Dlogs
+
+
+ DLOG
+
+
+
+
+
+ Interprets m as SPX_FORS_HEIGHT-bit unsigned integers.
+ Assumes m contains at least SPX_FORS_HEIGHT * SPX_FORS_TREES bits.
+ Assumes indices has space for SPX_FORS_TREES integers.
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
+
+ Haraka512-256 with reference to Python Reference Impl from: https://github.com/sphincs/sphincsplus
+
+
+
+ Return the SPHINCS+ parameters that map to the passed in parameter ID.
+
+ @param id the oid of interest.
+ @return the parameter set.
+
+
+ Return the OID that maps to the passed in SPHINCS+ parameters.
+
+ @param params the parameters of interest.
+ @return the OID for the parameter set.
+
+
+ SPHINCS+ signer.
+
+ This version is based on the 3rd submission with deference to the updated reference
+ implementation on github as at November 9th 2021. This version includes the changes
+ for the countermeasure for the long-message second preimage attack - see
+ "https://github.com/sphincs/sphincsplus/commit/61cd2695c6f984b4f4d6ed675378ed9a486cbede"
+ for further details.
+
+
+
+ Base constructor.
+
+
+ OtherInfo Generator for which can be used for populating the SuppPrivInfo field used to provide shared
+ secret data used with NIST SP 800-56A agreement algorithms.
+
+
+ Create a basic builder with just the compulsory fields.
+
+ @param algorithmID the algorithm associated with this invocation of the KDF.
+ @param partyUInfo sender party info.
+ @param partyVInfo receiver party info.
+ @param random a source of randomness.
+
+
+ Party U (initiator) generation.
+
+
+ Create a basic builder with just the compulsory fields for the initiator.
+
+ @param kemParams the key type parameters for populating the private info field.
+ @param algorithmID the algorithm associated with this invocation of the KDF.
+ @param partyUInfo sender party info.
+ @param partyVInfo receiver party info.
+ @param random a source of randomness.
+
+
+ Add optional supplementary public info (DER tagged, implicit, 0).
+
+ @param suppPubInfo supplementary public info.
+ @return the current builder instance.
+
+
+ Party V (responder) generation.
+
+
+ Create a basic builder with just the compulsory fields for the responder.
+
+ @param kemParams the key type parameters for populating the private info field.
+ @param algorithmID the algorithm associated with this invocation of the KDF.
+ @param partyUInfo sender party info.
+ @param partyVInfo receiver party info.
+ @param random a source of randomness.
+
+
+ Add optional supplementary public info (DER tagged, implicit, 0).
+
+ @param suppPubInfo supplementary public info.
+ @return the current builder instance.
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding.
+ the PrivateKeyInfo encoding
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from a PKCS8 PrivateKeyInfo encoding read from a stream
+ the stream to read the PrivateKeyInfo encoding from
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a private key parameter from the passed in PKCS8 PrivateKeyInfo object.
+ the PrivateKeyInfo object containing the key material
+ a suitable private key parameter
+ on an error decoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key.
+ the key to be encoded into the info object.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a PrivateKeyInfo representation of a private key with attributes.
+ the key to be encoded into the info object.
+ the set of attributes to be included.
+ the appropriate PrivateKeyInfo
+ on an error encoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding
+ the SubjectPublicKeyInfo encoding
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from a SubjectPublicKeyInfo encoding read from a stream
+ the stream to read the SubjectPublicKeyInfo encoding from
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ the appropriate key parameter
+ on an error decoding the key
+
+
+ Create a public key from the passed in SubjectPublicKeyInfo
+ the SubjectPublicKeyInfo containing the key data
+ default parameters that might be needed.
+ the appropriate key parameter
+ on an error decoding the key
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+ Base class for a TLS client.
+
+
+
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ The default implementation calls this to get the connection_id extension
+ the client will send. As future communication doesn't include the connection IDs length, this should either
+ be fixed-length or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+
+
+
+
+
+
+ an of (or null).
+
+
+ The default implementation calls this to determine which named
+ groups to include in the supported_groups extension for the ClientHello.
+ The named group roles for which there should
+ be at least one supported group. By default this is inferred from the offered cipher suites and signature
+ algorithms.
+ an of . See for group constants.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for supporting a TLS key exchange implementation.
+
+
+ Base class for supporting a TLS key exchange factory implementation.
+
+
+ Base class for a TLS client or server.
+
+
+ Get the values that are supported by this peer.
+
+ WARNING: Mixing DTLS and TLS versions in the returned array is currently NOT supported. Use a separate
+ (sub-)class for each case.
+
+ an array of supported values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for a TLS server.
+
+
+
+
+
+ RFC 9146 DTLS connection ID.
+
+ This method will be called if a connection_id extension was sent by the client.
+ If the return value is non-null, the server will send this connection ID to the client to use in future packets.
+ As future communication doesn't include the connection IDs length, this should either be fixed-length
+ or include the connection ID's length. (see explanation in RFC 9146 4. "cid:")
+
+ The connection ID to use.
+
+
+ RFC 5246 7.2.
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection.
+
+ Note that as of TLS 1.1, failure to properly close a connection no longer requires that a session not be
+ resumed. This is a change from TLS 1.0 ("The session becomes unresumable if any connection is terminated
+ without proper close_notify messages with level equal to warning.") to conform with widespread
+ implementation practice.
+
+
+
+ An inappropriate message was received.
+
+ This alert is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ This alert is returned if a record is received with an incorrect MAC.
+
+ This alert also MUST be returned if an alert is sent because a TLSCiphertext decrypted in an invalid way:
+ either it wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks against the CBC
+ mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes.
+
+ This message is always fatal and should never be observed in communication between proper implementations
+ (except when messages were corrupted in the network).
+
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length).
+
+ This message is always fatal and should never be observed in communication between proper implementations.
+
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to negotiate
+ an acceptable set of security parameters given the options available.
+
+ This is a fatal error.
+
+
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable.
+
+
+
+ A field in the handshake was out of range or inconsistent with other fields.
+
+ This message is always fatal.
+
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted CA.
+
+ This message is always fatal.
+
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not to
+ proceed with negotiation.
+
+ This message is always fatal.
+
+
+
+ A message could not be decoded because some field was out of the specified range or the length of
+ the message was incorrect.
+
+ This message is always fatal and should never be observed in communication between proper
+ implementations (except when messages were corrupted in the network).
+
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a signature
+ or validate a Finished message.
+
+ This message is always fatal.
+
+
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant implementations.
+
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+
+
+ (For example, old protocol versions might be avoided for security reasons.) This message is always fatal.
+
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client.
+
+ This message is always fatal.
+
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue.
+
+ This message is always fatal.
+
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure.
+
+ If the user cancels an operation after the handshake is complete, just closing the connection by sending a
+ close_notify is more appropriate. This alert should be followed by a close_notify. This message is
+ generally a warning.
+
+
+
+ Sent by the client in response to a hello request or by the server in response to a client hello
+ after initial handshaking.
+
+ Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should
+ respond with this alert. At that point, the original requester can decide whether to proceed with the
+ connection. One case where this would be appropriate is where a server has spawned a process to satisfy a
+ request; the process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This message is always a
+ warning.
+
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did not
+ put in the corresponding client hello.
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL supplied
+ by the client(see Section 3.3).
+
+ This message MAY be fatal - for example if client authentication is required by the server for the
+ handshake to continue and the server is unable to retrieve the certificate chain, it may send a fatal
+ alert.
+
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not recognize
+ the server name.
+
+ This message MAY be fatal.
+
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see Section 3.6
+ ).
+
+ This message is always fatal.
+
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash.
+
+ This message is always fatal.
+
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an "unknown_psk_identity"
+ alert message.
+
+
+ In the event that the server supports no protocols that the client advertises, then the server
+ SHALL respond with a fatal "no_application_protocol" alert.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version, the server MUST
+ respond with a fatal inappropriate_fallback alert[..].
+
+
+ Sent by endpoints that receive a handshake message not containing an extension that is mandatory
+ to send for the offered TLS version or other negotiated parameters.
+
+
+ Sent by servers when a client certificate is desired but none was provided by the client.
+
+
+
+ RFC 5246 7.2
+
+
+ A basic PSK Identity holder.
+
+
+ A basic SRP Identity holder.
+
+
+ A queue for bytes. This file could be more optimized.
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided .
+ The to copy the bytes to.
+ How many bytes to copy.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a over some bytes at the beginning of the data.
+
+ How many bytes will be readable.
+ A over the data.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Remove data from the buffer.
+ The buffer where the removed data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ OutputStream based on a ByteQueue implementation.
+
+
+ Implementation of the RFC 3546 3.3. CertChainType.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+
+
+ an array of representing a certificate chain.
+
+
+ true if this certificate chain contains no certificates, or false otherwise.
+
+
+
+ Encode this to a , and optionally calculate the
+ "end point hash" (per RFC 5929's tls-server-end-point binding).
+ the of the current connection.
+ the to encode to.
+ the to write the "end point hash" to (or null).
+
+
+
+
+ Parse a from a .
+ the to apply during parsing.
+ the of the current connection.
+ the to parse from.
+ the to write the "end point hash" to (or null).
+
+ a object.
+
+
+
+ RFC 8879
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>;
+ } CertificateRequest;
+
+ Updated for RFC 5246:
+
+ struct {
+ ClientCertificateType certificate_types <1..2 ^ 8 - 1>;
+ SignatureAndHashAlgorithm supported_signature_algorithms <2 ^ 16 - 1>;
+ DistinguishedName certificate_authorities <0..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+ Revised for RFC 8446:
+
+ struct {
+ opaque certificate_request_context <0..2 ^ 8 - 1>;
+ Extension extensions <2..2 ^ 16 - 1>;
+ } CertificateRequest;
+
+
+
+
+
+
+
+
+
+ see for valid constants.
+
+ an of .
+
+
+
+
+
+ an array of certificate types
+
+
+
+ an of (or null before TLS 1.2).
+
+
+
+ an optional of . May be non-null from
+ TLS 1.3 onwards.
+
+
+ an of .
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ an of (possibly null) .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ Implementation of the RFC 3546 3.6. CertificateStatusRequest.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Implementation of the RFC 6961 2.2. CertificateStatusRequestItemV2.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6091
+
+
+ RFC 3546 3.3
+
+
+ see for valid constants.
+ an of .
+
+
+
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ a value.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 5056
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g.serialization).
+
+
+
+ RFC 2246 A.5
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ for DTLS this should be non-null; the input is copied to this
+ , minus the cookie field.
+ a object.
+
+
+
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ RFC 2246 6.1
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values(e.g.serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+ Carrier class for Diffie-Hellman group parameters.
+
+
+ Base constructor with the prime factor of (p - 1).
+ the prime modulus.
+ specifies the prime factor of (p - 1).
+ the base generator.
+
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+ Base class for a TlsCrypto implementation that provides some needed methods from elsewhere in the impl
+ package.
+
+
+ Base class for a TlsSecret implementation which captures common code and fields.
+
+
+ Base constructor.
+ the byte[] making up the secret value.
+
+
+
+
+
+ Credentialed class generating agreed secrets from a peer's public key for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class decrypting RSA encrypted secrets sent from a peer for our end of the TLS connection
+ using the BC light-weight API.
+
+
+ Credentialed class for generating signatures based on the use of primitives from the BC light-weight API.
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104).
+
+ The difference is that padding is concatenated versus XORed with the key, e.g:
+ H(K + opad, H(K + ipad, text))
+
+
+
+ Base constructor for one of the standard digest algorithms for which the byteLength is known.
+
+
+ Behaviour is undefined for digests other than MD5 or SHA1.
+
+ the digest.
+
+
+ Reset the mac generator.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class for providing cryptographic services for TLS based on implementations in the BC light-weight API.
+
+ This class provides default implementations for everything. If you need to customise it, extend the class
+ and override the appropriate methods.
+
+
+
+ Support class for ephemeral Diffie-Hellman using the BC light-weight library.
+
+
+ BC light-weight support class for Diffie-Hellman key pair generation and key agreement over a
+ specified Diffie-Hellman configuration.
+
+
+
+
+
+
+
+
+ Implementation class for generation of the raw DSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw DSA signature type using the BC light-weight API.
+
+
+
+ BC light-weight base class for the signers implementing the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ BC light-weight base class for the verifiers supporting the two DSA style algorithms from FIPS PUB
+ 186-4: DSA and ECDSA.
+
+
+ Support class for ephemeral Elliptic Curve Diffie-Hellman using the BC light-weight library.
+
+
+ EC domain class for generating key pairs and performing key agreement.
+
+
+
+
+
+ Implementation class for generation of ECDSA signatures in TLS 1.3+ using the BC light-weight API.
+
+
+
+ Implementation class for generation of the raw ECDSA signature type using the BC light-weight API.
+
+
+
+ Implementation class for the verification of the raw ECDSA signature type using the BC light-weight
+ API.
+
+
+ Implementation class for a single X.509 certificate based on the BC light-weight API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operator supporting the generation of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the verification of RSASSA-PSS signatures using the BC light-weight API.
+
+
+ Operator supporting the generation of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ Operator supporting the verification of RSASSA-PKCS1-v1_5 signatures using the BC light-weight API.
+
+
+
+ BC light-weight support class for handling TLS secrets and deriving key material and other secrets
+ from them.
+
+
+ Support class for X25519 using the BC light-weight library.
+
+
+ Support class for X448 using the BC light-weight library.
+
+
+ A generic TLS 1.2 AEAD cipher.
+
+
+
+
+
+ Base interface for services supporting AEAD encryption/decryption.
+
+
+ Set the key to be used by the AEAD cipher implementation supporting this service.
+ array holding the AEAD cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for the AEAD operator.
+ the nonce.
+ MAC size in bytes.
+ any additional data to be included in the MAC calculation.
+ if the parameters are inappropriate.
+
+
+ Return the maximum size of the output for input of inputLength bytes.
+ the length (in bytes) of the proposed input.
+ the maximum size of the output.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ any additional data to be included in the MAC calculation.
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ A generic TLS 1.0-1.2 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+ Interface for block cipher services.
+
+
+ Set the key to be used by the block cipher implementation supporting this service.
+ array holding the block cipher key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+
+ Initialise the parameters for operator.
+ array holding the initialization vector (IV).
+ offset into the array the IV starts at.
+ length of the IV in the array.
+ if the parameters are inappropriate.
+
+
+ Perform the cipher encryption/decryption returning the output in output.
+
+ Note: we have to use DoFinal() here as it is the only way to guarantee output from the underlying cipher.
+
+ array holding input data to the cipher.
+ offset into input array data starts at.
+ length of the input data in the array.
+ array to hold the cipher output.
+ offset into output array to start saving output.
+ the amount of data written to output.
+ in case of failure.
+
+
+ Return the blocksize (in bytes) of the underlying block cipher.
+ the cipher's blocksize.
+
+
+ Useful utility methods.
+
+
+ The NULL cipher.
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+ Generate a new instance of a TlsMac.
+ the TLS client context specific crypto parameters.
+ The MAC to use.
+
+
+ Base interface for a generic TLS MAC implementation for use with a bulk cipher.
+
+
+ Return the output length (in bytes) of this MAC.
+ The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ A new byte array containing the MAC value.
+
+
+ Constant time calculation of the MAC for some given data with a given expected length.
+ The sequence number of the record.
+ The content type of the message.
+ A byte array containing the message.
+ The number of bytes to skip, before the message starts.
+ The length of the message.
+ The expected length of the full message.
+ Random data for padding out the MAC calculation if required.
+ A new byte array containing the MAC value.
+
+
+ Carrier class for SRP-6 group parameters.
+
+
+ Base constructor.
+ the n value.
+ the g value.
+
+
+ A selection of standard groups for SRP-6.
+
+
+
+
+
+
+
+
+ Base interface for ephemeral key agreement calculator.
+
+
+ Generate an ephemeral key pair, returning the encoding of the public key.
+ a byte encoding of the public key.
+
+
+
+ Pass in the public key for the peer to the agreement calculator.
+ a byte encoding of the peer public key.
+
+
+
+ Calculate the agreed secret based on the calculator's current state.
+ the calculated secret.
+
+
+
+ Interface providing the functional representation of a single X.509 certificate.
+
+
+ Return an encryptor based on the public key in this certificate.
+
+ a based on this certificate's public key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the OID of this certificate's 'signatureAlgorithm', as a string.
+
+
+
+
+
+
+
+
+
+
+ true if (and only if) this certificate can be used to verify the given signature algorithm.
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS bulk cipher.
+
+
+ Return the maximum input size for a ciphertext given a maximum output size for the plaintext of
+ plaintextLimit bytes.
+ the maximum output size for the plaintext.
+ the maximum input size of the ciphertext for plaintextlimit bytes of output.
+
+
+ Return the maximum output size for a ciphertext given an actual input plaintext size of
+ plaintextLength bytes and a maximum input plaintext size of plaintextLimit bytes.
+ the actual input size for the plaintext.
+ the maximum input size for the plaintext.
+ the maximum output size of the ciphertext for plaintextlimit bytes of input.
+
+
+ Return the maximum size for the plaintext given ciphertextlimit bytes of ciphertext.
+ the maximum number of bytes of ciphertext.
+ the maximum size of the plaintext for ciphertextlimit bytes of input.
+
+
+ Encode the passed in plaintext using the current bulk cipher.
+ sequence number of the message represented by plaintext.
+ content type of the message represented by plaintext.
+ used for the record.
+ extra bytes to allocate at start of returned byte array.
+ array holding input plaintext to the cipher.
+ offset into input array the plaintext starts at.
+ length of the plaintext in the array.
+ A containing the result of encoding (after 'headerAllocation' unused
+ bytes).
+
+
+
+ Decode the passed in ciphertext using the current bulk cipher.
+ sequence number of the message represented by ciphertext.
+ content type used in the record for this message.
+ used for the record.
+ array holding input ciphertext to the cipher.
+ offset into input array the ciphertext starts at.
+ length of the ciphertext in the array.
+ A containing the result of decoding.
+
+
+
+
+
+
+
+
+
+ Service and object creation interface for the primitive types and services that are associated with
+ cryptography in the API.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS 1.2.
+ A list of
+ values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto would use a stream verifier for any of the passed in algorithms.
+
+ This method is only relevant to handshakes negotiating (D)TLS versions older than 1.2.
+ An array of values.
+ true if this instance would use a stream verifier for any of the passed in algorithms, otherwise
+ false.
+
+
+ Return true if this TlsCrypto can support the passed in hash algorithm.
+ the algorithm of interest.
+ true if cryptoHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ the algorithm of interest.
+ true if cryptoSignatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support DH key agreement.
+ true if this instance can support DH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support ECDH key agreement.
+ true if this instance can support ECDH key agreement, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in block/stream encryption algorithm.
+
+ the algorithm of interest.
+ true if encryptionAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support HKDF with the passed in hash algorithm.
+ the algorithm of interest.
+ true if HKDF is supported with cryptoHashAlgorithm, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in MAC algorithm.
+ the algorithm of interest.
+ true if macAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto supports the passed in named group
+ value.
+ true if this instance supports the passed in named group value.
+
+
+
+ Return true if this TlsCrypto can support RSA encryption/decryption.
+ true if this instance can support RSA encryption/decryption, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm (not necessarily in
+ combination with EVERY hash algorithm).
+ true if signatureAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature algorithm.
+ the algorithm of interest.
+ true if sigAndHashAlgorithm is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support the passed in signature scheme.
+ the scheme of interest.
+ true if signatureScheme is supported, false otherwise.
+
+
+ Return true if this TlsCrypto can support SRP authentication.
+ true if this instance can support SRP authentication, false otherwise.
+
+
+ Create a TlsSecret object based on provided data.
+ the data to base the TlsSecret on.
+ a TlsSecret based on the provided data.
+
+
+ Create a TlsSecret object containing a randomly-generated RSA PreMasterSecret
+ the client version to place in the first 2 bytes
+ a TlsSecret containing the PreMasterSecret.
+
+
+ Return the primary (safest) SecureRandom for this crypto.
+ a SecureRandom suitable for key generation.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of an X.509 certificate.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a TlsCertificate from an ASN.1 binary encoding of a certificate.
+ Certificate type as per IANA TLS Certificate Types registry.
+ DER/BER encoding of the certificate of interest.
+ a TlsCertificate.
+ if there is an issue on decoding or constructing the certificate.
+
+
+ Create a cipher for the specified encryption and MAC algorithms.
+
+ See enumeration classes , for appropriate
+ argument values.
+
+ context specific parameters.
+ the encryption algorithm to be employed by the cipher.
+ the MAC algorithm to be employed by the cipher.
+ a implementing the encryption and MAC algorithms.
+
+
+
+ Create a domain object supporting the domain parameters described in dhConfig.
+ the config describing the DH parameters to use.
+ a TlsDHDomain supporting the parameters in dhConfig.
+
+
+ Create a domain object supporting the domain parameters described in ecConfig.
+ the config describing the EC parameters to use.
+ a TlsECDomain supporting the parameters in ecConfig.
+
+
+ Adopt the passed in secret, creating a new copy of it.
+ the secret to make a copy of.
+ a TlsSecret based on the original secret.
+
+
+ Create a suitable hash for the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the hash needs to implement.
+ a .
+
+
+ Create a suitable HMAC for the MAC algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the MAC algorithm the HMAC needs to match.
+ a .
+
+
+ Create a suitable HMAC using the hash algorithm identifier passed in.
+
+ See enumeration class for appropriate argument values.
+
+ the hash algorithm the HMAC should use.
+ a .
+
+
+ Create a nonce generator.
+
+ Each call should construct a new generator, and the generator should be returned from this call only after
+ automatically seeding from this 's entropy source, and from the provided additional
+ seed material. The output of each returned generator must be completely independent of the others.
+
+ context-specific seed material
+ a .
+
+
+ Create an SRP-6 client.
+ client config.
+ an initialised SRP6 client object.
+
+
+ Create an SRP-6 server.
+ server config.
+ the SRP6 verifier value.
+ an initialised SRP6 server object.
+
+
+ Create an SRP-6 verifier generator.
+ generator config.
+ an initialized SRP6 verifier generator.
+
+
+ Setup an initial "secret" for a chain of HKDF calls (RFC 5869), containing a string of HashLen
+ zeroes.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+
+
+ Basic exception class for crypto services to pass back a cause.
+
+
+ Carrier class for context-related parameters needed for creating secrets and ciphers.
+
+
+ Base constructor.
+ the context for this parameters object.
+
+
+
+
+
+ Basic config for Diffie-Hellman.
+
+
+ Domain interface to service factory for creating Diffie-Hellman operators.
+
+
+ Return an agreement operator suitable for ephemeral Diffie-Hellman.
+ a key agreement operator.
+
+
+ Carrier class for Elliptic Curve parameter configuration.
+
+
+ Return the group used.
+ the named group used.
+
+
+ Domain interface to service factory for creating Elliptic-Curve (EC) based operators.
+
+
+ Return an agreement operator suitable for ephemeral EC Diffie-Hellman.
+ a key agreement operator.
+
+
+ Base interface for an encryptor.
+
+
+ Encrypt data from the passed in input array.
+ byte array containing the input data.
+ offset into input where the data starts.
+ the length of the data to encrypt.
+ the encrypted data.
+
+
+
+ Interface for message digest, or hash, services.
+
+
+ Update the hash with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated hash for any input passed in.
+ the hash value.
+
+
+ Return a clone of this hash object representing its current state.
+ a clone of the current hash.
+
+
+ Reset the hash underlying this service.
+
+
+ Interface for MAC services based on HMAC.
+
+
+ Return the internal block size for the message digest underlying this HMAC service.
+ the internal block size for the digest (in bytes).
+
+
+ Interface for MAC services.
+
+
+ Set the key to be used by the MAC implementation supporting this service.
+ array holding the MAC key.
+ offset into the array the key starts at.
+ length of the key in the array.
+
+
+ Update the MAC with the passed in input.
+ input array containing the data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return calculated MAC for any input passed in.
+ the MAC value.
+
+
+ Write the calculated MAC to an output buffer.
+ output array to write the MAC to.
+ offset into the output array to write the MAC to.
+
+
+ Return the length of the MAC generated by this service.
+ the MAC length.
+
+
+ Reset the MAC underlying this service.
+
+
+ Generate a nonce byte[] string.
+ the length, in bytes, of the nonce to generate.
+ the nonce value.
+
+
+ The cipher for TLS_NULL_WITH_NULL_NULL.
+
+
+ Interface supporting the generation of key material and other SSL/TLS secret values from PRFs.
+
+
+
+ Calculate an HMAC with this secret's data as the key.
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ array containing the input data.
+ offset into the input array the input starts at.
+ the length of the input data.
+
+
+ Return a new secret based on applying a PRF to this one.
+ PRF algorithm to use.
+ the label details.
+ the seed details.
+ the size (in bytes) of the secret to generate.
+ the new secret.
+
+
+ Destroy the internal state of the secret.
+
+ After this call, any attempt to use the will result in an
+ being thrown.
+
+
+
+ Return an encrypted copy of the data this secret is based on.
+ the encryptor to use for protecting the internal data.
+ an encrypted copy of this secret's internal data.
+
+
+
+ Return the internal data from this secret.
+
+ The does not keep a copy of the data. After this call, any attempt to use the
+ will result in an being thrown.
+
+ the secret's internal data.
+
+
+ RFC 5869 HKDF-Expand function, with this secret's data as the pseudo-random key ('prk').
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ optional context and application specific information (can be zero-length).
+ length of output keying material in octets.
+ output keying material (of 'length' octets).
+
+
+ RFC 5869 HKDF-Extract function, with this secret's data as the 'salt'.
+
+ The does not keep a copy of the data. After this call, any attempt to use
+ the will result in an being thrown.
+
+ the hash algorithm to instantiate HMAC with. See
+ for values.
+ input keying material.
+ a pseudo-random key (of HashLen octets).
+
+
+ Base interface for a TLS signer that works on raw message digests.
+
+
+ Generate an encoded signature based on the passed in hash.
+ the signature algorithm to use.
+ the hash calculated for the signature.
+ an encoded signature.
+ in case of an exception processing the hash.
+
+
+
+
+
+ Basic interface for an SRP-6 client implementation.
+
+
+ Generates the secret S given the server's credentials
+ The server's credentials
+ Client's verification message for the server
+ If server's credentials are invalid
+
+
+ Generates client's credentials given the client's salt, identity and password
+ The salt used in the client's verifier.
+ The user's identity (eg. username)
+ The user's password
+ Client's public value to send to server
+
+
+ Basic interface for an SRP-6 server implementation.
+
+
+ Generates the server's credentials that are to be sent to the client.
+ The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+
+ The client's credentials.
+ A shared secret .
+ If client's credentials are invalid.
+
+
+ Base interface for a generator for SRP-6 verifiers.
+
+
+ Creates a new SRP-6 verifier value.
+ The salt to use, generally should be large and random
+ The user's identifying information (eg. username)
+ The user's password
+ A new verifier for use in future SRP authentication
+
+
+ Basic config for SRP.
+
+
+ Return the (N, g) values used in SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+ Set the (N, g) values used for SRP-6.
+ (N, g) as a BigInteger array (N=[0], g=[1]).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS verifier that works with signatures and either raw message digests, or entire
+ messages.
+
+
+
+
+
+ Return true if the passed in signature and hash represent a real signature.
+ the signature object containing the signature to be verified.
+ the hash calculated for the signature.
+ true if signature verifies, false otherwise.
+ in case of an exception verifying signature.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object sending and receiving DTLS data.
+
+
+ Container class for generating signatures that carries the signature type, parameters, public key
+ certificate and public key's associated signer object.
+
+
+ Accept named groups and various standard DH groups with 'P' at least
+ bits.
+
+
+ Accept named groups and various standard DH groups with 'P' at least the specified number of bits.
+
+ the minimum bitlength of 'P'.
+
+
+ Accept named groups and a custom set of group parameters, subject to a minimum bitlength for 'P'.
+
+ a list of acceptable s.
+ the minimum bitlength of 'P'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+ an of acceptable .
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+
+
+
+
+
+
+ a (or null before TLS 1.2).
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ the 48-bit DTLSPlainText.sequence_number field of a received record.
+ true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+ indicates whether is now the latest confirmed
+ sequence number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The record is newer (by epoch and sequence number) than any record received previously.
+
+
+ The record includes the (valid) connection ID (RFC 9146) for this connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements cookie generation/verification for a DTLS server as described in RFC 4347,
+ 4.2.1. Denial of Service Countermeasures.
+
+
+ RFC 4347 4.2.1 additionally recommends changing the secret frequently. This class does not handle that
+ internally, so the instance should be replaced instead.
+
+
+
+ RFC 4492 5.4
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+ RFC 4492 5.1.2
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6520 3.
+
+
+ RFC 6066
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 8446 4.6.3
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7919
+
+
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 3546 3.6
+
+
+ an of , specifying the list of
+ trusted OCSP responders. An empty list has the special meaning that the responders are implicitly known to
+ the server - e.g., by prior arrangement.
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+
+ an of .
+
+
+ OCSP request extensions.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse an from a .
+ the to parse from.
+ an object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to depend on the
+ particular values (e.g. serialization).
+
+
+
+ RFC 7301 Represents a protocol name for use with ALPN.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connection ID we use during communication to the peer.
+
+
+ Connection ID our peer uses for communication to us.
+
+
+ Encode this to a .
+ the of the current connection.
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 3. Server Name Indication
+
+ Current implementation uses this guidance: "For backward compatibility, all future data structures associated
+ with new NameTypes MUST begin with a 16-bit length field. TLS MAY treat provided server names as opaque data
+ and pass the names and types to the application.". RFC 6066 specifies ASCII encoding for host_name (possibly
+ using A-labels for IDNs), but note that the previous version (RFC 4366) specified UTF-8 encoding (see RFC 6066
+ Appendix A). For maximum compatibility, it is recommended that client code tolerate receiving UTF-8 from the
+ peer, but only generate ASCII itself.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ an of .
+
+
+ an of .
+
+
+ Encode this to a .
+ the to encode to .
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ For TLS 1.3+ usage, some signature schemes are constrained to use a particular
+ ({@link NamedGroup}. Not relevant for TLS 1.2 and below.
+
+
+ An implementation of that simulates the existence of "unknown"
+ identities to obscure the fact that there is no verifier for them.
+
+
+ Create a that implements the algorithm from RFC 5054
+ 2.5.1.3.
+
+ the defining the group that SRP is operating in.
+ the secret "seed key" referred to in RFC 5054 2.5.1.3.
+ an instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 4680
+
+
+ Base interface to provide TLS authentication credentials.
+
+
+ Called by the protocol handler to report the server certificate.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the server certificate received.
+
+
+
+ Return client credentials in response to server's certificate request.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated and the details of
+ the .
+
+ details of the certificate request.
+ a object or null for no client authentication.
+
+
+
+ Return the session this client wants to resume, if any.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection, or
+ null to use a new session.
+
+
+
+ Return the external PSKs to offer in the ClientHello.
+ This will only be called when TLS 1.3 or higher is amongst the offered protocol versions.
+ an of instances, or null if none should be
+ offered.
+
+
+ (Int32 -> byte[])
+
+
+
+ If this client is offering TLS 1.3 or higher, this method may be called to determine for which
+ groups a key share should be included in the initial ClientHello.
+
+ Groups that were not included in the supported_groups extension (by will
+ be ignored. The protocol will then add a suitable key_share extension to the ClientHello extensions.
+
+ an of named group values, possibly empty or
+ null.
+
+
+
+
+
+
+ Notifies the client of the session that will be offered in ClientHello for resumption, if any.
+
+
+ This will be either the session returned from {@link #getSessionToResume()} or null if that session was
+ unusable. NOTE: the actual negotiated session_id is notified by .
+
+ The representing the resumable session to be offered for
+ this connection, or null if there is none.
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+
+
+
+
+
+
+ The protocol implementation validates that any server extensions received correspond to client
+ extensions sent.
+
+ If further processing of the server extensions is needed, it can be done in this callback. NOTE: This is
+ not called for session resumption handshakes.
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The ticket is
+ opaque to the client and clients MUST NOT examine the ticket under the assumption that it complies with e.g.
+ RFC 5077 4. "Recommended Ticket Construction".
+
+ The ticket.
+
+
+
+ Marker interface to distinguish a TLS client context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a TLS context implementation.
+
+
+ Return true if this context is for a server, false otherwise.
+ true for a server based context, false for a client based one.
+
+
+ Used to get the resumable session, if any, used by this connection.
+
+ Only available after the handshake has successfully completed.
+
+ A representing the resumable session used by this connection, or null if
+ no resumable session available.
+
+
+
+ Used to get the session information for this connection.
+
+ Only available after the handshake has successfully completed. Use
+ to find out if the session is resumable.
+
+ A representing the session used by this connection.
+
+
+
+ Export the value of the specified channel binding.
+
+ Only available after the handshake has successfully completed.
+
+ A constant specifying the channel binding to
+ export.
+ A copy of the channel binding data as a byte[], or null if the binding could not be
+ determined.
+
+
+ Export (early data) keying material according to RFC 5705: "Keying Material Exporters for TLS", as
+ updated for TLS 1.3 (RFC 8446).
+
+ NOTE: for use in settings where an exporter is needed for 0-RTT data.
+
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS", as updated for
+ TLS 1.3 (RFC 8446) when negotiated.
+ indicates which application will use the exported keys.
+ allows the application using the exporter to mix its own data with the TLS PRF
+ for the exporter output.
+ the number of bytes to generate.
+ a pseudorandom bit string of 'length' bytes generated from the (exporter_)master_secret.
+
+
+ Support interface for generating a secret based on the credentials sent by a TLS peer.
+
+
+ Calculate an agreed secret based on our credentials and the public key credentials of our peer.
+
+ public key certificate of our TLS peer.
+ the agreed secret.
+ in case of an exception on generation of the secret.
+
+
+ Base interface for a class that decrypts TLS secrets.
+
+
+ Decrypt the passed in cipher text using the parameters available.
+ the parameters to use for the decryption.
+ the cipher text containing the secret.
+ a TLS secret.
+ on a parsing or decryption error.
+
+
+ Support interface for generating a signature based on our private credentials.
+
+
+ Generate a signature against the passed in hash.
+ a message digest calculated across the message the signature is to apply to.
+ an encoded signature.
+ if the hash cannot be processed, or there is an issue with the private
+ credentials.
+
+
+ Return the algorithm IDs for the signature algorithm and the associated hash it uses.
+ the full algorithm details for the signature.
+
+
+
+
+
+ Base interface for interfaces/classes carrying TLS credentials.
+
+
+ Return the certificate structure representing our identity.
+ our certificate structure.
+
+
+ (D)TLS DH_anon key exchange.
+
+
+ Interface for verifying explicit Diffie-Hellman group parameters.
+
+
+ Check whether the given DH group is acceptable for use.
+ the to check.
+ true if (and only if) the specified group is acceptable.
+
+
+ (D)TLS DH key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (D)TLS ECDH_anon key exchange (see RFC 4492).
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+ (Int32 -> byte[])
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ an of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for an object that can calculate a handshake hash.
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for a key exchange factory offering a variety of specific algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This exception will be thrown (only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+ Object Identifiers associated with TLS extensions.
+
+
+ RFC 7633
+
+
+ Base interface for a (D)TLS endpoint.
+
+
+
+
+
+ Notifies the peer that a new handshake is about to begin.
+
+
+
+ Specify the timeout, in milliseconds, to use for the complete handshake process.
+
+ NOTE: Currently only respected by DTLS protocols. Negative values are not allowed. A timeout of zero means
+ an infinite timeout (i.e.the handshake will never time out).
+
+ the handshake timeout, in milliseconds.
+
+
+
+ This option is provided as a last resort for interoperability with TLS peers that fail to correctly send a
+ close_notify alert at end of stream. Implementations SHOULD return true; caution is advised if returning
+ false without a full understanding of the implications.
+
+
+
+ This implementation supports RFC 7627 and will always negotiate the extended_master_secret
+ extension where possible. When connecting to a peer that does not offer/accept this extension, it is
+ recommended to abort the handshake.This option is provided for interoperability with legacy peers, although
+ some TLS features will be disabled in that case (see RFC 7627 5.4).
+
+ true if the handshake should be aborted when the peer does not negotiate the
+ extended_master_secret extension, or false to support legacy interoperability.
+
+
+ See RFC 5246 6.2.3.2. Controls whether block cipher encryption may randomly add extra padding
+ beyond the minimum.
+
+ Note that in configurations where this is known to be potential security risk this setting will be ignored
+ (and extended padding disabled). Extra padding is always supported when decrypting received records.
+
+ true if random extra padding should be added during block cipher encryption, or
+ false to always use the minimum amount of required padding.
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the ability to set
+ gmt_unix_time as an option only, off by default.".
+
+ NOTE: For a server that has negotiated TLS 1.3 (or later), or a client that has offered TLS 1.3 (or later),
+ this is not called and gmt_unix_time is not used.
+
+ true if the current time should be used in the gmt_unix_time field of Random, or
+ false if gmt_unix_time should contain a cryptographically random value.
+
+
+ RFC 5746 3.4/3.6. In case this is false, peers may want to terminate the handshake instead of
+ continuing; see Section 4.1/4.3 for discussion.
+
+ NOTE: TLS 1.3 forbids renegotiation, so this is never called when TLS 1.3 (or later) was negotiated.
+
+
+
+
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ Return a instance that will control the generation of heartbeats
+ locally (if permitted by the remote peer), or null to not generate heartbeats. Heartbeats are described in
+ RFC 6520.
+ an instance of .
+
+
+
+ Return the heartbeat mode applicable to the remote peer. Heartbeats are described in RFC 6520.
+
+
+ See enumeration class for appropriate return values.
+
+ the value.
+
+
+ Indicates whether a DTLS connection should ignore corrupt records (bad_record_mac) instead of
+ failing the connection.
+ Called only once at the start of a connection and applies throughout.
+ The value true to ignore corrupt DTLS records, or false to fail the connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method is called, when a change cipher spec message is received.
+ If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network.
+
+ The method will return immediately, if there is still some data left in the buffer, or block until some
+ application data has been read from the network.
+
+ The buffer where the data will be copied to.
+ The position where the data will be placed in the buffer.
+ The maximum number of bytes to read.
+ The number of bytes read.
+ If something goes wrong during reading data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write some application data.
+
+ Fragmentation is handled internally. Usable in both blocking/non-blocking modes.
+ In blocking mode, the output will be automatically sent via the underlying transport. In non-blocking mode,
+ call to get the output bytes to send to the peer.
+ This method must not be called until after the initial handshake is complete. Attempting to call it earlier
+ will result in an .
+
+ The buffer containing application data to send.
+ The offset at which the application data begins
+ The number of bytes of application data.
+ If called before the initial handshake has completed.
+
+ If connection is already closed, or for encryption or transport errors.
+
+
+
+
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+
+
+
+
+
+
+
+ Equivalent to OfferInput(input, 0, input.Length).
+ The input buffer to offer.
+
+
+
+
+ Offer input from an arbitrary source.
+ Only allowed in non-blocking mode.
+ This method will decrypt and process all records that are fully available. If only part of a record is
+ available, the buffer will be retained until the remainder of the record is offered.
+ If any records containing application data were processed, the decrypted data can be obtained using
+ . If any records containing protocol data were processed, a
+ response may have been generated. You should always check to see if there is any available output after
+ calling this method by calling .
+
+ The input buffer to offer.
+ The offset within the input buffer that input begins.
+ The number of bytes of input being offered.
+ If an error occurs while decrypting or processing a record.
+
+
+ Gets the amount of received application data.
+ A call to is guaranteed to be able to return at least
+ this much data.
+ Only allowed in non-blocking mode.
+
+ The number of bytes of available application data.
+
+
+ Retrieves received application data.
+
+ Use to check how much application data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned.
+ Only allowed in non-blocking mode.
+
+ The buffer to hold the application data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+ Gets the amount of encrypted data available to be sent.
+
+ A call to is guaranteed to be able to return at least this much
+ data. Only allowed in non-blocking mode.
+
+ The number of bytes of available encrypted data.
+
+
+ Retrieves encrypted data to be sent.
+
+ Use to check how much encrypted data is currently available. This
+ method functions similarly to , except that it never blocks. If
+ no data is available, nothing will be copied and zero will be returned. Only allowed in non-blocking mode.
+
+ The buffer to hold the encrypted data.
+ The start offset in the buffer at which the data is written.
+ The maximum number of bytes to read.
+ The total number of bytes copied to the buffer. May be less than the length specified if the
+ length was greater than the amount of available data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make sure the 'buf' is now empty. Fail otherwise.
+ The to check.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Processor interface for a PSK identity.
+
+
+ Base interface for an object that can process a PSK identity.
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS RSA key exchange.
+
+
+ Interface describing a TLS server endpoint.
+
+
+ Return the specified session, if available.
+
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ the ID of the session to resume.
+ A with the specified session ID, or null.
+
+
+
+ Return the external PSK to select from the ClientHello.
+
+ WARNING: EXPERIMENTAL FEATURE, UNSTABLE API
+ Note that this will only be called when TLS 1.3 or higher is amongst the offered protocol versions, and one
+ or more PSKs are actually offered.
+
+ an of instances.
+ The corresponding to the selected identity, or null to not select
+ any.
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+
+
+
+
+
+
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (Int32 -> byte[])
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Return server credentials to use.
+
+ The returned value may be null, or else it MUST implement exactly one of
+ , , or
+ , depending on the key exchange that was negotiated.
+
+ a object or null for anonymous key exchanges.
+
+
+
+
+ This method will be called (only) if the server included an extension of type "status_request" with empty
+ "extension_data" in the extended server hello. See RFC 3546 3.6. Certificate Status Request. If a
+ non-null is returned, it is sent to the client as a handshake message of
+ type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (SupplementalDataEntry)
+
+
+
+ Called by the protocol handler to report the client certificate, only if
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See RFC 5077
+ 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket.
+
+
+
+ Server certificate carrier interface.
+
+
+ Marker interface to distinguish a TLS server context.
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use to provide the received ciphertext,
+ then use to read the corresponding cleartext.
+ Similarly, when data needs to be sent, use
+ to provide the cleartext, then use to get the
+ corresponding ciphertext.
+
+
+
+ Constructor for blocking mode.
+ The of data to/from the server.
+
+
+ Constructor for blocking mode.
+ The of data from the server.
+ The of data to the server.
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete. In non-blocking mode, use
+ to receive a callback when the handshake is complete.
+
+ The to use for the handshake.
+ If in blocking mode and handshake was not successful.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base interface for a carrier object for a TLS session.
+
+
+ Interface for verifying SRP config needs to conform to.
+
+
+ Check whether the given SRP configuration is acceptable for use.
+ the to check.
+ true if (and only if) the specified configuration is acceptable.
+
+
+ Processor interface for an SRP identity.
+
+
+ Base interface for an object that can return login parameters from an SRP identity.
+
+
+ Lookup the corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC 5054 2.5.1.3.
+ is provided for this purpose.
+
+ the SRP identity sent by the connecting client.
+ the for the specified identity, or else 'simulated' parameters
+ if the identity is not recognized. A null value is also allowed, but not recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether a server can select the specified cipher suite given the available signature algorithms
+ for ServerKeyExchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check the signature algorithm for certificates in the peer's CertPath as specified in RFC 5246
+ 7.4.2, 7.4.4, 7.4.6 and similar rules for earlier TLS versions.
+
+ The supplied CertPath should include the trust anchor (its signature algorithm isn't checked, but in the
+ general case checking a certificate requires the issuer certificate).
+
+ if any certificate in the CertPath (excepting the trust anchor) has a
+ signature algorithm that is not one of the locally supported signature algorithms.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a pre_master_secret and send it encrypted to the server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the to parse from.
+ a object.
+
+
+
+ RFC 6066 5.
+
+
+ Encode this to a .
+ the to encode to.
+
+
+
+ Parse a from a .
+ the of the current connection.
+ the to parse from.
+ a object.
+
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ see for valid constants.
+ valid lengths from 0 to 255.
+
+
+ see for valid constants.
+
+
+ valid lengths from 0 to 255.
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ return the ASN.1 encoded representation of this object for the specific encoding type.
+
+ @param encoding encoding style ("DER", "DL", "BER")
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ return the ASN.1 encoded representation of this object using the specified encoding.
+
+ @param encoding the ASN.1 encoding format to use ("BER" or "DER").
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ The failure code associated with this exception, if one is set.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value the value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of the specified length, padded with
+ leading zeros as necessary.
+ @param length the fixed length of the result.
+ @param n the value to be converted.
+ @return a byte array padded to a fixed length with leading zeros.
+
+
+ Write the passed in value as unsigned bytes to the specified buffer range, padded with
+ leading zeros as necessary.
+
+ @param n
+ the value to be converted.
+ @param buf
+ the buffer to which the value is written.
+ @param off
+ the start offset in array buf at which the data is written.
+ @param len
+ the fixed length of data written (possibly padded with leading zeros).
+
+
+
+ Creates a Random BigInteger from the secure random of a given bit length.
+
+
+
+
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+ Interface for matching objects in an .
+ The contravariant type of selectable objects.
+
+
+ Match the passed in object, returning true if it would be selected by this selector, false
+ otherwise.
+ The object to be matched.
+ true if the objects is matched by this selector, false otherwise.
+
+
+ A generic interface describing a simple store of objects.
+ The covariant type of stored objects.
+
+
+ Enumerate the (possibly empty) collection of objects matched by the given selector.
+ The used to select matching objects.
+ An of the matching objects.
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ The DateTime value will be converted to UTC (using before
+ conversion.
+ A DateTime value not before the epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before the epoch.
+
+
+
+ Create a UTC DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+ 'unixMs' is before 'MinUnixMs' or after 'MaxUnixMs'.
+
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the hexadecimal-encoded string strictly i.e. any non-hexadecimal characters will be
+ considered an error.
+
+ @return a byte array representing the decoded data.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Return a byte array representing the implementing object.
+ An encoding of this object as a byte array.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ An
+
+
+
+
+
+ A
+
+
+
+
+
+ Seek ':" up to the limit.
+
+
+
+
+
+
+ Consume the dashes
+
+
+
+
+
+ Skip white space leave char in stream.
+
+
+
+
+ Read forward consuming the expected string.
+
+ expected string
+ false if not consumed
+
+
+
+ Consume until dash.
+
+ true if stream end not met
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ In case of IO failure.
+
+
+ Write the full contents of inStr to the destination stream outStr.
+ Source stream.
+ Destination stream.
+ The size of temporary buffer to use.
+ In case of IO failure.
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extensions object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (e.g. SHA1WITHRSA)
+
+ A string representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+ The signature algorithm.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Return the plain SubjectPublicKeyInfo that holds the encoded public key.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return the DER encoding of this certificate.
+
+ A byte array containing the DER encoding of this certificate.
+ If there is an error encoding the certificate.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ If verifier provider is not appropriate or the certificate signature algorithm
+ is invalid.
+
+
+ Verify the certificate's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the certificate's alternative
+ signature.
+ If verifier provider is not appropriate or the certificate alternative signature
+ algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Verify the CRL's alternative signature using a verifier created using the passed in
+ verifier provider.
+ An appropriate provider for verifying the CRL's alternative signature.
+
+ If verifier provider is not appropriate or the CRL alternative signature
+ algorithm is invalid.
+
+
+
+ A meaningful version of the Signature Algorithm. (e.g. SHA1WITHRSA)
+
+ A string representing the signature algorithm.
+
+
+
+ Return the DER encoding of this CRL.
+
+ A byte array containing the DER encoding of this CRL.
+ If there is an error encoding the CRL.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+ Value of is ignored.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ Create a builder for a version 2 CRL, initialised with another CRL.
+ Template CRL to base the new one on.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+ Create a generator for a version 3 certificate, initialised with another certificate.
+ Template certificate to base the new one on.
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the SubjectPublicKeyInfo for the public key that this certificate identifies.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate a new using the provided .
+
+ A signature factory with the necessary
+ algorithm details.
+ An .
+
+
+
+ Generate a new using the provided and
+ containing altSignatureAlgorithm and altSignatureValue extensions based on the passed
+ .
+
+ A signature factory with the necessary
+ algorithm details.
+ Whether the 'alt' extensions should be marked critical.
+ A signature factory used to create the
+ altSignatureAlgorithm and altSignatureValue extensions.
+ An .
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
diff --git a/bin/Debug/CommandSetDic.flx b/bin/Debug/CommandSetDic.flx
new file mode 100644
index 0000000..67e6394
Binary files /dev/null and b/bin/Debug/CommandSetDic.flx differ
diff --git a/bin/Debug/EntityFramework.SqlServer.dll b/bin/Debug/EntityFramework.SqlServer.dll
new file mode 100644
index 0000000..e11b437
Binary files /dev/null and b/bin/Debug/EntityFramework.SqlServer.dll differ
diff --git a/bin/Debug/EntityFramework.SqlServer.xml b/bin/Debug/EntityFramework.SqlServer.xml
new file mode 100644
index 0000000..ea081f1
--- /dev/null
+++ b/bin/Debug/EntityFramework.SqlServer.xml
@@ -0,0 +1,2156 @@
+
+
+
+ EntityFramework.SqlServer
+
+
+
+
+ An that retries actions that throw exceptions caused by SQL Azure transient failures.
+
+
+ This execution strategy will retry the operation on and
+ if the contains any of the following error numbers:
+ 40613, 40501, 40197, 10929, 10928, 10060, 10054, 10053, 233, 64 and 20
+
+
+
+
+ Creates a new instance of .
+
+
+ The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor.
+
+
+
+
+ Creates a new instance of with the specified limits for
+ number of retries and the delay between retries.
+
+ The maximum number of retry attempts.
+ The maximum delay in milliseconds between retries.
+
+
+
+
+
+
+ Contains function stubs that expose SqlServer methods in Linq to Entities.
+
+
+
+ Returns the checksum of the values in a collection. Null values are ignored.
+ The checksum computed from the input collection.
+ The collection of values over which the checksum is computed.
+
+
+ Returns the checksum of the values in a collection. Null values are ignored.
+ The checksum computed from the input collection.
+ The collection of values over which the checksum is computed.
+
+
+ Returns the ASCII code value of the left-most character of a character expression.
+ The ASCII code of the first character in the input string.
+ A valid string.
+
+
+ Returns the character that corresponds to the specified integer ASCII value.
+ The character that corresponds to the specified ASCII value.
+ An ASCII code.
+
+
+ Returns the starting position of one expression found within another expression.
+ The starting position of toFind if it is found in toSearch .
+ The string expression to be found.
+ The string expression to be searched.
+
+
+ Returns the starting position of one expression found within another expression.
+ The starting position of toFind if it is found in toSearch .
+ The string expression to be found.
+ The string expression to be searched.
+
+
+ Returns the starting position of one expression found within another expression.
+ The starting position of toFind if it is found in toSearch .
+ The string expression to be found.
+ The string expression to be searched.
+ The character position in toSearch where searching begins.
+
+
+ Returns the starting position of one expression found within another expression.
+ The starting position of toFind if it is found in toSearch .
+ The string expression to be found.
+ The string expression to be searched.
+ The character position in toSearch where searching begins.
+
+
+ Returns the starting position of one expression found within another expression.
+
+ A of value that is the starting position of toFind if it is found in toSearch .
+
+ The string expression to be found.
+ The string expression to be searched.
+ The character position in toSearch where searching begins.
+
+
+ Returns the starting position of one expression found within another expression.
+ The starting position of toFind if it is found in toSearch .
+ The string expression to be found.
+ The string expression to be searched.
+ The character position in toSearch where searching begins.
+
+
+ Returns an integer value that indicates the difference between the SOUNDEX values of two character expressions.
+ The SOUNDEX difference between the two strings.
+ The first string.
+ The second string.
+
+
+ Returns the Unicode character with the specified integer code, as defined by the Unicode standard.
+ The character that corresponds to the input character code.
+ A character code.
+
+
+ Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types.
+ The starting character position where the string pattern was found.
+ A string pattern to search for.
+ The string to search.
+
+
+ Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier.
+ The original string with brackets added.
+ The expression that quote characters will be added to.
+
+
+ Returns a Unicode string with the delimiters added to make the input string a valid Microsoft SQL Server delimited identifier.
+ The original string with the specified quote characters added.
+ The expression that quote characters will be added to.
+ The one-character string to use as the delimiter. It can be a single quotation mark ( ' ), a left or right bracket ( [ ] ), or a double quotation mark ( " ). If quote_character is not specified, brackets are used.
+
+
+ Repeats a string value a specified number of times.
+ The target string, repeated the number of times specified by count .
+ A valid string.
+ The value that specifies how many time to repeat target .
+
+
+ Converts an alphanumeric string to a four-character (SOUNDEX) code to find similar-sounding words or names.
+ The SOUNDEX code of the input string.
+ A valid string.
+
+
+ Returns a string of repeated spaces.
+ A string that consists of the specified number of spaces.
+ The number of spaces. If negative, a null string is returned.
+
+
+ Returns character data converted from numeric data.
+ The numeric input expression converted to a string.
+ A numeric expression.
+
+
+ Returns character data converted from numeric data.
+ The input expression converted to a string.
+ A numeric expression.
+
+
+ Returns character data converted from numeric data.
+ The numeric input expression converted to a string.
+ A numeric expression.
+ The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10.
+
+
+ Returns character data converted from numeric data.
+ The input expression converted to a string.
+ A numeric expression.
+ The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10.
+
+
+ Returns character data converted from numeric data.
+ The numeric input expression converted to a string.
+ A numeric expression.
+ The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10.
+ The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point.
+
+
+ Returns character data converted from numeric data.
+ The input expression converted to a string.
+ A numeric expression.
+ The total length of the string. This includes decimal point, sign, digits, and spaces. The default is 10.
+ The number of places to the right of the decimal point. decimal must be less than or equal to 16. If decimal is more than 16 then the result is truncated to sixteen places to the right of the decimal point.
+
+
+ Inserts a string into another string. It deletes a specified length of characters in the target string at the start position and then inserts the second string into the target string at the start position.
+ A string consisting of the two strings.
+ The target string.
+ The character position in stringinput where the replacement string is to be inserted.
+ The number of characters to delete from stringInput . If length is longer than stringInput , deletion occurs up to the last character in stringReplacement .
+ The substring to be inserted into stringInput .
+
+
+ Returns the integer value, as defined by the Unicode standard, for the first character of the input expression.
+ The character code for the first character in the input string.
+ A valid string.
+
+
+ A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine.
+ The angle, in radians, defined by the input cosine value.
+ The cosine of an angle.
+
+
+ A mathematical function that returns the angle, in radians, whose cosine is the specified numerical value. This angle is called the arccosine.
+ An angle, measured in radians.
+ The cosine of an angle.
+
+
+ A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine.
+ An angle, measured in radians.
+ The sine of an angle.
+
+
+ A mathematical function that returns the angle, in radians, whose sine is the specified numerical value. This angle is called the arcsine.
+ An angle, measured in radians.
+ The sine of an angle.
+
+
+ A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent.
+ An angle, measured in radians.
+ The tangent of an angle.
+
+
+ A mathematical function that returns the angle, in radians, whose tangent is the specified numerical value. This angle is called the arctangent.
+ An angle, measured in radians.
+ The tangent of an angle.
+
+
+ Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value.
+ An angle, measured in radians.
+ The y-coordinate of a point.
+ The x-coordinate of a point.
+
+
+ Returns the positive angle, in radians, between the positive x-axis and the ray from the origin through the point (x, y), where x and y are the two specified numerical values. The first parameter passed to the function is the y-value and the second parameter is the x-value.
+ An angle, measured in radians.
+ The y-coordinate of a point.
+ The x-coordinate of a point.
+
+
+ Returns the trigonometric cosine of the specified angle, in radians, in the specified expression.
+ The trigonometric cosine of the specified angle.
+ An angle, measured in radians.
+
+
+ Returns the trigonometric cosine of the specified angle, in radians, in the specified expression.
+ The trigonometric cosine of the specified angle.
+ An angle, measured in radians.
+
+
+ A mathematical function that returns the trigonometric cotangent of the specified angle, in radians.
+ The trigonometric cotangent of the specified angle.
+ An angle, measured in radians.
+
+
+ A mathematical function that returns the trigonometric cotangent of the specified angle, in radians.
+ The trigonometric cotangent of the specified angle.
+ An angle, measured in radians.
+
+
+ Returns the corresponding angle in degrees for an angle specified in radians.
+ The specified angle converted to degrees.
+ An angle, measured in radians.
+
+
+ Returns the corresponding angle in degrees for an angle specified in radians.
+ The specified angle converted to degrees.
+ An angle, measured in radians.
+
+
+ Returns the corresponding angle in degrees for an angle specified in radians.
+ The specified angle converted to degrees.
+ An angle, measured in radians.
+
+
+ Returns the corresponding angle in degrees for an angle specified in radians.
+ The specified angle converted to degrees.
+ An angle, measured in radians.
+
+
+ Returns the exponential value of the specified float expression.
+ The constant e raised to the power of the input value.
+ The input value.
+
+
+ Returns the exponential value of the specified float expression.
+ The constant e raised to the power of the input value.
+ The input value.
+
+
+ Returns the natural logarithm of the specified input value.
+ The natural logarithm of the input value.
+ A numeric expression.
+
+
+ Returns the natural logarithm of the specified input value.
+ The natural logarithm of the input value.
+ A numeric expression.
+
+
+ Returns the base-10 logarithm of the specified input value.
+ The base-10 logarithm of the input value.
+ A numeric expression.
+
+
+ Returns the base-10 logarithm of the specified input value.
+ The base-10 logarithm of the input value.
+ A numeric expression.
+
+
+ Returns the constant value of pi.
+ The numeric value of pi.
+
+
+ Returns the radian measure corresponding to the specified angle in degrees.
+ The radian measure of the specified angle.
+ The angle, measured in degrees
+
+
+ Returns the radian measure corresponding to the specified angle in degrees.
+ The radian measure of the specified angle.
+ The angle, measured in degrees
+
+
+ Returns the radian measure corresponding to the specified angle in degrees.
+ The radian measure of the specified angle.
+ The angle, measured in degrees.
+
+
+ Returns the radian measure corresponding to the specified angle in degrees.
+ The radian measure of the specified angle.
+ The angle, measured in degrees.
+
+
+ Returns a pseudo-random float value from 0 through 1, exclusive.
+ The pseudo-random value.
+
+
+ Returns a pseudo-random float value from 0 through 1, exclusive.
+ The pseudo-random value.
+ The seed value. If seed is not specified, the SQL Server Database Engine assigns a seed value at random. For a specified seed value, the result returned is always the same.
+
+
+ Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression.
+ The sign of the input expression.
+ A numeric expression.
+
+
+ Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression.
+ The sign of the input expression.
+ A numeric expression.
+
+
+ Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression.
+ The sign of the input expression.
+ A numeric expression.
+
+
+ Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression.
+ The sign of the input expression.
+ A numeric expression.
+
+
+ Returns the trigonometric sine of the specified angle.
+ The trigonometric sine of the input expression.
+ An angle, measured in radians.
+
+
+ Returns the trigonometric sine of the specified angle.
+ The trigonometric sine of the input expression.
+ An angle, measured in radians.
+
+
+ Returns the square root of the specified number.
+ The square root of the input value.
+ A numeric expression.
+
+
+ Returns the square root of the specified number.
+ The square root of the input value.
+ A numeric expression.
+
+
+ Returns the square of the specified number.
+ The square of the input value.
+ A numeric expression.
+
+
+ Returns the square of the specified number.
+ The square of the input value.
+ A numeric expression.
+
+
+ Returns the trigonometric tangent of the input expression.
+ The tangent of the input angle.
+ An angle, measured in radians.
+
+
+ Returns the trigonometric tangent of the input expression.
+ The tangent of the input angle.
+ An angle, measured in radians.
+
+
+ Returns a new datetime value based on adding an interval to the specified date.
+ The new date.
+ The part of the date to increment.
+ The value used to increment a date by a specified amount.
+ The date to increment.
+
+
+ Returns a new time span value based on adding an interval to the specified time span.
+ The new time span.
+ The part of the date to increment.
+ The value used to increment a date by a specified amount.
+ The time span to increment.
+
+
+ Returns a new date value based on adding an interval to the specified date.
+ The new point in time, expressed as a date and time of day, relative to Coordinated Universal Time (UTC).
+ The part of the date to increment.
+ The value used to increment a date by a specified amount.
+ The date to increment.
+
+
+ Returns a new datetime value based on adding an interval to the specified date.
+
+ A of value that is the new date.
+
+ The part of the date to increment.
+ The value used to increment a date by a specified amount.
+ The date to increment.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The value specifying the number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two Dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns the count of the specified datepart boundaries crossed between the specified start date and end date.
+ The number of time intervals between the two dates.
+ The part of the date to calculate the differing number of time intervals.
+ The first date.
+ The second date.
+
+
+ Returns a character string that represents the specified datepart of the specified date.
+ The specified part of the specified date.
+ The part of the date to calculate the differing number of time intervals.
+ The date.
+
+
+ Returns a character string that represents the specified datepart of the specified date.
+ The specified part of the specified date.
+ The part of the date to calculate the differing number of time intervals.
+ The date.
+
+
+ Returns a character string that represents the specified datepart of the specified date.
+ The specified part of the specified date.
+ The part of the date to calculate the differing number of time intervals.
+ The date.
+
+
+ Returns a character string that represents the specified datepart of the specified date.
+ The specified part of the specified date.
+ The part of the date to calculate the differing number of time intervals.
+ The date.
+
+
+ Returns an integer that represents the specified datepart of the specified date.
+ The specified datepart of the specified date.
+ The part of the date to return the value.
+ The date.
+
+
+ Returns an integer that represents the specified datepart of the specified date.
+ The specified datepart of the specified date.
+ The part of the date to return the value.
+ The date.
+
+
+ Returns an integer that represents the specified datepart of the specified date.
+ The specified datepart of the specified date.
+ The part of the date to return the value.
+ The date.
+
+
+ Returns an integer that represents the specified datepart of the specified date.
+ The specified datepart of the specified date.
+ The part of the date to return the value.
+ The date.
+
+
+ Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running.
+ The current database timestamp.
+
+
+ Returns the current database system timestamp as a datetime value. The database time zone offset is not included. This value represents the current UTC time (Coordinated Universal Time). This value is derived from the operating system of the computer on which the instance of SQL Server is running.
+ The current database UTC timestamp.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for length.
+
+
+ Returns the number of bytes used to represent any expression.
+ The number of bytes in the input value.
+ The value to be examined for data length.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The character array for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input argument.
+ The checksum computed over the input value.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The character array for which the checksum is calculated.
+ The character array for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The character array for which the checksum is calculated.
+ The character array for which the checksum is calculated.
+ The character array for which the checksum is calculated.
+
+
+ Returns the checksum value computed over the input arguments.
+ The checksum computed over the input values.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+ The value for which the checksum is calculated.
+
+
+ Returns the current date and time.
+ The current date and time.
+
+
+ Returns the name of the current user.
+ The name of the current user.
+
+
+ Returns the workstation name.
+ The name of the workstation.
+
+
+ Returns a database user name corresponding to a specified identification number.
+ The user name.
+ A user ID.
+
+
+ Returns a database user name corresponding to a specified identification number.
+ The user name.
+
+
+ Indicates whether the input value is a valid numeric type.
+ 1 if the input expression is a valid numeric data type; otherwise, 0.
+ A string expression.
+
+
+ Indicates whether the input value is a valid date or time.
+ 1 if the input expression is a valid date or time value of datetime or smalldatetime data types; otherwise, 0.
+ The tested value.
+
+
+
+ Contains function stubs that expose SqlServer methods in Linq to Entities.
+
+
+
+ Returns a hierarchyid representing the nth ancestor of this.
+ A hierarchyid representing the nth ancestor of this.
+ The hierarchyid value.
+ n
+
+
+ Returns a child node of the parent.
+ The hierarchyid value.
+ null or the hierarchyid of a child of the current node.
+ null or the hierarchyid of a child of the current node.
+
+ Returns one child node that is a descendant of the parent.
+ If parent is null, returns null.
+ If parent is not null, and both child1 and child2 are null, returns a child of parent.
+ If parent and child1 are not null, and child2 is null, returns a child of parent greater than child1.
+ If parent and child2 are not null and child1 is null, returns a child of parent less than child2.
+ If parent, child1, and child2 are not null, returns a child of parent greater than child1 and less than child2.
+ If child1 is not null and not a child of parent, an exception is raised.
+ If child2 is not null and not a child of parent, an exception is raised.
+ If child1 >= child2, an exception is raised.
+
+
+
+ Returns an integer that represents the depth of the node this in the tree.
+ An integer that represents the depth of the node this in the tree.
+ The hierarchyid value.
+
+
+ Returns the root of the hierarchy tree.
+ The root of the hierarchy tree.
+
+
+ Returns true if this is a descendant of parent.
+ True if this is a descendant of parent.
+ The hierarchyid value.
+ parent
+
+
+ Returns a node whose path from the root is the path to newRoot, followed by the path from oldRoot to this.
+ Hierarchyid value.
+ The hierarchyid value.
+ oldRoot
+ newRoot
+
+
+ Converts the canonical string representation of a hierarchyid to a hierarchyid value.
+ Hierarchyid value.
+ input
+
+
+
+ Indicates if the provider supports the parameter optimization described in EntityFramework6 GitHub issue #195.
+
+ True since this provider supports the parameter optimization.
+
+
+
+ The DbProviderServices implementation for the SqlClient provider for SQL Server.
+
+
+ Note that instance of this type also resolve additional provider services for Microsoft SQL Server
+ when this type is registered as an EF provider either using an entry in the application's config file
+ or through code-based registration in .
+ The services resolved are:
+ Requests for are resolved to a Singleton instance of
+ to create connections to LocalDB by default.
+ Requests for for the invariant name "System.Data.SqlClient"
+ for any server name are resolved to a delegate that returns a
+ to provide a non-retrying policy for SQL Server.
+ Requests for for the invariant name "System.Data.SqlClient" are
+ resolved to instances to provide default Migrations SQL
+ generation for SQL Server.
+ Requests for for the invariant name "System.Data.SqlClient" are
+ resolved to a Singleton instance of to provide default spatial
+ services for SQL Server.
+
+
+
+
+ This is the well-known string using in configuration files and code-based configuration as
+ the "provider invariant name" used to specify Microsoft SQL Server for ADO.NET and
+ Entity Framework provider services.
+
+
+
+
+ The Singleton instance of the SqlProviderServices type.
+
+
+
+
+ Set to the full name of the Microsoft.SqlServer.Types assembly to override the default selection
+
+
+
+
+ Get or sets a value indicating whether parameter values are truncated to
+ the scale (number of decimal places) defined for their corresponding columns when they are sent
+ to the database. A value of true indicates that objects
+ created for columns will have their
+ properties set, which will cause the parameter values to be truncated. If set to false
+ then the properties will not be set, avoiding the truncation
+ behavior of and allowing SQL Server to round values if necessary.
+ The default value is true to prevent breaking existing applications that depend on this
+ behavior.
+
+
+
+
+ Gets or sets a value indicating whether to use the SCOPE_IDENTITY() function to retrieve values
+ generated by the database for numeric columns during an INSERT operation. The default value of
+ true is recommended and can provide better performance if all numeric values are generated
+ using IDENTITY columns. If set to false, an OUTPUT clause will be used instead. An OUTPUT
+ clause makes it possible to retrieve values generated by sequences or other means.
+
+
+
+
+ Gets or sets a value indicating whether the ROW_NUMBER() function is used in sort expression
+ passed to the ORDER BY clause when OFFSET is present in query. The default value of true
+ is recommended to obtain query results that are stable for paging operations. The value of
+ false can be used for compatibility with previous versions of EF and will cause the sort
+ expression to be passed unmodified to the ORDER BY clause, which can lead to unstable results
+ if the ordering is ambiguous.
+
+
+ This flag only applies to SQL Server 2012 or later. This flag does not affect queries that have
+ already been translated to SQL and cached, therefore applications that need to set the value to
+ false for compatibility should do so before executing any queries.
+
+
+
+
+ Registers a handler to process non-error messages coming from the database provider.
+
+ The connection to receive information for.
+ The handler to process messages.
+
+
+
+ Create a Command Definition object, given the connection and command tree
+
+ provider manifest that was determined from metadata
+ command tree for the statement
+ an executable command definition object
+
+
+
+ See issue 2390 - cloning the DesignTimeVisible property on the
+ can cause deadlocks.
+ So here overriding to provide a method that does not clone DesignTimeVisible.
+
+ the object to clone
+ a clone of the
+
+
+
+ Sets the parameter value and appropriate facets for the given .
+
+ The parameter.
+ The type of the parameter.
+ The value of the parameter.
+
+
+
+ Returns provider manifest token for a given connection.
+
+ Connection to find manifest token from.
+ The provider manifest token for the specified connection.
+
+
+
+ Returns the provider manifest by using the specified version information.
+
+ The token information associated with the provider manifest.
+ The provider manifest by using the specified version information.
+
+
+
+ Gets a spatial data reader for SQL Server.
+
+ The reader where the spatial data came from.
+ The manifest token associated with the provider manifest.
+ The spatial data reader.
+
+
+
+ Gets a spatial data reader for SQL Server.
+
+ The manifest token associated with the provider manifest.
+ The spatial data reader.
+
+
+
+ Generates a data definition language (DDL) script that creates schema objects
+ (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection
+ parameter and targeted for the version of the database corresponding to the provider manifest token.
+
+ The provider manifest token identifying the target version.
+ The structure of the database.
+
+ A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter
+ and targeted for the version of the database corresponding to the provider manifest token.
+
+
+
+
+ Create the database and the database objects.
+ If initial catalog is not specified, but AttachDBFilename is specified, we generate a random database name based on the AttachDBFilename.
+ Note: this causes pollution of the db, as when the connection string is later used, the mdf will get attached under a different name.
+ However if we try to replicate the name under which it would be attached, the following scenario would fail:
+ The file does not exist, but registered with database.
+ The user calls: If (DatabaseExists) DeleteDatabase
+ CreateDatabase
+ For further details on the behavior when AttachDBFilename is specified see Dev10# 188936
+
+ Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter.
+ Execution timeout for any commands needed to create the database.
+ The collection of all store items based on which the script should be created.
+
+
+
+ Determines whether the database for the given connection exists.
+ There are three cases:
+ 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0
+ 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 then true,
+ if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0
+ 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise
+ if the there are no databases corresponding to the given file return false, otherwise throw.
+ Note: We open the connection to cover the scenario when the mdf exists, but is not attached.
+ Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case.
+ Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487)
+ For further details on the behavior when AttachDBFilename is specified see Dev10# 188936
+
+ Connection to a database whose existence is checked by this method.
+ Execution timeout for any commands needed to determine the existence of the database.
+ The collection of all store items from the model. This parameter is no longer used for determining database existence.
+ True if the provider can deduce the database only based on the connection.
+
+
+
+ Determines whether the database for the given connection exists.
+ There are three cases:
+ 1. Initial Catalog = X, AttachDBFilename = null: (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0
+ 2. Initial Catalog = X, AttachDBFilename = F: if (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0 then true,
+ if not, try to open the connection and then return (SELECT Count(*) FROM sys.databases WHERE [name]= X) > 0
+ 3. Initial Catalog = null, AttachDBFilename = F: Try to open the connection. If that succeeds the result is true, otherwise
+ if the there are no databases corresponding to the given file return false, otherwise throw.
+ Note: We open the connection to cover the scenario when the mdf exists, but is not attached.
+ Given that opening the connection would auto-attach it, it would not be appropriate to return false in this case.
+ Also note that checking for the existence of the file does not work for a remote server. (Dev11 #290487)
+ For further details on the behavior when AttachDBFilename is specified see Dev10# 188936
+
+ Connection to a database whose existence is checked by this method.
+ Execution timeout for any commands needed to determine the existence of the database.
+ The collection of all store items from the model. This parameter is no longer used for determining database existence.
+ True if the provider can deduce the database only based on the connection.
+
+
+
+ Delete the database for the given connection.
+ There are three cases:
+ 1. If Initial Catalog is specified (X) drop database X
+ 2. Else if AttachDBFilename is specified (F) drop all the databases corresponding to F
+ if none throw
+ 3. If niether the catalog not the file name is specified - throw
+ Note that directly deleting the files does not work for a remote server. However, even for not attached
+ databases the current logic would work assuming the user does: if (DatabaseExists) DeleteDatabase
+
+ Connection
+ Timeout for internal commands.
+ Item Collection.
+
+
+
+ Clones the connection.
+
+ The original connection.
+ The factory to use.
+ Cloned connection
+
+
+
+ Provider to convert provider agnostic migration operations into SQL commands
+ that can be run against a Microsoft SQL Server database.
+
+
+
+
+ Determines if a provider specific exception corresponds to a database-level permission denied error.
+
+ The database exception.
+ true if the supplied exception corresponds to a database-level permission denied error; otherwise false.
+
+
+
+ Converts a set of migration operations into Microsoft SQL Server specific SQL.
+
+ The operations to be converted.
+ Token representing the version of SQL Server being targeted (i.e. "2005", "2008").
+ A list of SQL statements to be executed to perform the migration operations.
+
+
+
+ Generates the SQL body for a stored procedure.
+
+ The command trees representing the commands for an insert, update or delete operation.
+ The rows affected parameter name.
+ The provider manifest token.
+ The SQL body for the stored procedure.
+
+
+
+ Generates the specified update database operation which represents applying a series of migrations.
+ The generated script is idempotent, meaning it contains conditional logic to check if individual migrations
+ have already been applied and only apply the pending ones.
+
+ The update database operation.
+
+
+
+ Generates SQL for a .
+ Allows derived providers to handle additional operation types.
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Creates an empty connection for the current provider.
+ Allows derived providers to use connection other than .
+
+ An empty connection for the current provider.
+
+
+
+ Generates the specified create procedure operation.
+
+ The create procedure operation.
+
+
+
+ Generates the specified alter procedure operation.
+
+ The alter procedure operation.
+
+
+
+ Generates the specified drop procedure operation.
+
+ The drop procedure operation.
+
+
+
+ Generates SQL for a . This method differs from
+ in that it will
+ create the target database schema if it does not already exist.
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Writes CREATE TABLE SQL to the target writer.
+
+ The operation to produce SQL for.
+ The target writer.
+
+
+
+ Override this method to generate SQL when the definition of a table or its attributes are changed.
+ The default implementation of this method does nothing.
+
+ The operation describing changes to the table.
+
+
+
+ Generates SQL to mark a table as a system table.
+ Generated SQL should be added using the Statement method.
+
+ The table to mark as a system table.
+ The to write the generated SQL to.
+
+
+
+ Generates SQL to create a database schema.
+ Generated SQL should be added using the Statement method.
+
+ The name of the schema to create.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Call this method to generate SQL that will attempt to drop the default constraint created
+ when a column is created. This method is usually called by code that overrides the creation or
+ altering of columns.
+
+ The table to which the constraint applies.
+ The column to which the constraint applies.
+ The writer to which generated SQL should be written.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement or StatementBatch methods.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates the specified rename procedure operation.
+
+ The rename procedure operation.
+
+
+
+ Generates the specified move procedure operation.
+
+ The move procedure operation.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL for the given column model. This method is called by other methods that
+ process columns and can be overridden to change the SQL generated.
+
+ The column for which SQL is being generated.
+ The writer to which generated SQL should be written.
+
+
+
+ Returns the column default value to use for store-generated GUID columns when
+ no default value is explicitly specified in the migration.
+ Returns newsequentialid() for on-premises SQL Server 2005 and later.
+ Returns newid() for SQL Azure.
+
+ Either newsequentialid() or newid() as described above.
+
+
+
+ Generates SQL for a .
+ Generated SQL should be added using the Statement method.
+
+ The operation to produce SQL for.
+
+
+
+ Generates SQL to specify a constant byte[] default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant bool default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant DateTime default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant DateTimeOffset default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant Guid default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant string default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant TimeSpan default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant hierarchyid default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant geogrpahy default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant geometry default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify a constant default value being set on a column.
+ This method just generates the actual value, not the SQL to set the default value.
+
+ The value to be set.
+ SQL representing the default value.
+
+
+
+ Generates SQL to specify the data type of a column.
+ This method just generates the actual type, not the SQL to create the column.
+
+ The definition of the column.
+ SQL representing the data type.
+
+
+
+ Generates a quoted name. The supplied name may or may not contain the schema.
+
+ The name to be quoted.
+ The quoted name.
+
+
+
+ Quotes an identifier for SQL Server.
+
+ The identifier to be quoted.
+ The quoted identifier.
+
+
+
+ Adds a new Statement to be executed against the database.
+
+ The statement to be executed.
+ Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails.
+ The batch terminator for the database provider.
+
+
+
+ Gets a new that can be used to build SQL.
+ This is just a helper method to create a writer. Writing to the writer will
+ not cause SQL to be registered for execution. You must pass the generated
+ SQL to the Statement method.
+
+ An empty text writer to use for SQL generation.
+
+
+
+ Adds a new Statement to be executed against the database.
+
+ The writer containing the SQL to be executed.
+ The batch terminator for the database provider.
+
+
+
+ Breaks sql string into one or more statements, handling T-SQL utility statements as necessary.
+
+ The SQL to split into one ore more statements to be executed.
+ Gets or sets a value indicating whether this statement should be performed outside of the transaction scope that is used to make the migration process transactional. If set to true, this operation will not be rolled back if the migration process fails.
+
+
+
+ Contains function stubs that expose SqlServer methods in Linq to Entities.
+
+
+
+ Constructs a geography instance representing a Point instance from its x and y values and a spatial reference ID (SRID).
+ The constructed geography instance.
+ The x-coordinate of the Point being generated.
+ The y-coordinate of the Point being generated
+ The SRID of the geography instance.
+
+
+ Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance.
+ The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance.
+ The geography value.
+
+
+ Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance.
+ The union of all point values whose distance from a geography instance is less than or equal to a specified value
+ The geography value.
+ The distance.
+ The specified tolerance.
+ Specifying whether the tolerance value is relative or absolute.
+
+
+ Returns the maximum angle between the point returned by EnvelopeCenter() and a point in the geography instance in degrees.
+ the maximum angle between the point returned by EnvelopeCenter().
+ The geography value.
+
+
+ Returns a point that can be used as the center of a bounding circle for the geography instance.
+ A SqlGeography value that specifies the location of the center of a bounding circle.
+ The geography value.
+
+
+ Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeography instance, assuming an index is available.
+ True if a geography instance potentially intersects another SqlGeography instance; otherwise, false.
+ The geography value.
+ Another geography instance to compare against the instance on which Filter is invoked.
+
+
+ Tests if the SqlGeography instance is the same as the specified type.
+ A string that specifies one of the 12 types exposed in the geography type hierarchy.
+ The geography value.
+ A string that specifies one of the 12 types exposed in the geography type hierarchy.
+
+
+ Returns the total number of rings in a Polygon instance.
+ The total number of rings.
+ The geography value.
+
+
+ Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance.
+
+ Returns .
+
+ The geography value.
+ The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number.
+
+
+ Returns the specified ring of the SqlGeography instance: 1 ≤ n ≤ NumRings().
+ A SqlGeography object that represents the ring specified by n.
+ The geography value.
+ An int expression between 1 and the number of rings in a polygon instance.
+
+
+ Constructs a geometry instance representing a Point instance from its x and y values and a spatial reference ID (SRID).
+ The constructed geometry instance.
+ The x-coordinate of the Point being generated.
+ The y-coordinate of the Point being generated
+ The SRID of the geography instance.
+
+
+ Returns the Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geography instance augmented with any Z (elevation) and M (measure) values carried by the instance.
+ The Open Geospatial Consortium (OGC) Well-Known Text (WKT) representation of a geometry instance.
+ The geometry value.
+
+
+ Returns a geometric object representing the union of all point values whose distance from a geometry instance is less than or equal to a specified value, allowing for a specified tolerance.
+ The union of all point values whose distance from a geometry instance is less than or equal to a specified value
+ The geometry value.
+ The distance.
+ The specified tolerance.
+ Specifying whether the tolerance value is relative or absolute.
+
+
+ Tests if the SqlGeometry instance is the same as the specified type.
+ A string that specifies one of the 12 types exposed in the geography type hierarchy.
+ The geometry value.
+ A string that specifies one of the 12 types exposed in the geography type hierarchy.
+
+
+ Offers a fast, index-only intersection method to determine if a geography instance intersects another SqlGeometry instance, assuming an index is available.
+ True if a geography instance potentially intersects another SqlGeography instance; otherwise, false.
+ The geometry value.
+ Another geography instance to compare against the instance on which Filter is invoked.
+
+
+ Converts an invalid geometry instance into a geometry instance with a valid Open Geospatial Consortium (OGC) type.
+ The converted geometry instance.
+ The geometry value.
+
+
+ Returns an approximation of the given geography instance produced by running the Douglas-Peucker algorithm on the instance with the given tolerance.
+
+ Returns .
+
+ The geometry value.
+ The tolerance to input to the Douglas-Peucker algorithm. tolerance must be a positive number.
+
+
+
+ An implementation of to provide support for geospatial types when using
+ Entity Framework with Microsoft SQL Server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contains extension methods for the class.
+
+
+
+
+ Configures an awaiter used to await this to avoid
+ marshalling the continuation
+ back to the original context, but preserve the current culture and UI culture.
+
+
+ The type of the result produced by the associated .
+
+ The task to be awaited on.
+ An object used to await this task.
+
+
+
+ Configures an awaiter used to await this to avoid
+ marshalling the continuation
+ back to the original context, but preserve the current culture and UI culture.
+
+ The task to be awaited on.
+ An object used to await this task.
+
+
+
+ Provides an awaitable object that allows for awaits on that
+ preserve the culture.
+
+
+ The type of the result produced by the associated .
+
+ This type is intended for compiler use only.
+
+
+
+ Constructs a new instance of the class.
+
+ The task to be awaited on.
+
+
+ Gets an awaiter used to await this .
+ An awaiter instance.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Gets whether this Task has completed.
+
+
+ will return true when the Task is in one of the three
+ final states: RanToCompletion,
+ Faulted, or
+ Canceled.
+
+
+
+ Ends the await on the completed .
+ The result of the completed .
+ The awaiter was not properly initialized.
+ The task was canceled.
+ The task completed in a Faulted state.
+
+
+ This method is not implemented and should not be called.
+ The action to invoke when the await operation completes.
+
+
+
+ Schedules the continuation onto the associated with this
+ .
+
+ The action to invoke when the await operation completes.
+
+ The argument is null
+ (Nothing in Visual Basic).
+
+ The awaiter was not properly initialized.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Provides an awaitable object that allows for awaits on that
+ preserve the culture.
+
+ This type is intended for compiler use only.
+
+
+
+ Constructs a new instance of the class.
+
+ The task to be awaited on.
+
+
+ Gets an awaiter used to await this .
+ An awaiter instance.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Gets whether this Task has completed.
+
+
+ will return true when the Task is in one of the three
+ final states: RanToCompletion,
+ Faulted, or
+ Canceled.
+
+
+
+ Ends the await on the completed .
+ The awaiter was not properly initialized.
+ The task was canceled.
+ The task completed in a Faulted state.
+
+
+ This method is not implemented and should not be called.
+ The action to invoke when the await operation completes.
+
+
+
+ Schedules the continuation onto the associated with this
+ .
+
+ The action to invoke when the await operation completes.
+
+ The argument is null
+ (Nothing in Visual Basic).
+
+ The awaiter was not properly initialized.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
diff --git a/bin/Debug/EntityFramework.dll b/bin/Debug/EntityFramework.dll
new file mode 100644
index 0000000..8400163
Binary files /dev/null and b/bin/Debug/EntityFramework.dll differ
diff --git a/bin/Debug/EntityFramework.xml b/bin/Debug/EntityFramework.xml
new file mode 100644
index 0000000..46df344
--- /dev/null
+++ b/bin/Debug/EntityFramework.xml
@@ -0,0 +1,54121 @@
+
+
+
+ EntityFramework
+
+
+
+
+ An abstract base type for types that implement the IExpressionVisitor interface to derive from.
+
+
+
+ Implements the visitor pattern for the set clause.
+ The set clause.
+
+
+ Implements the visitor pattern for the modification clause.
+ The modification clause.
+
+
+ Implements the visitor pattern for the collection of modification clauses.
+ The modification clauses.
+
+
+ Implements the visitor pattern for the command tree.
+ The command tree.
+
+
+ Implements the visitor pattern for the delete command tree.
+ The delete command tree.
+
+
+ Implements the visitor pattern for the function command tree.
+ The function command tree.
+
+
+ Implements the visitor pattern for the insert command tree.
+ The insert command tree.
+
+
+ Implements the visitor pattern for the query command tree.
+ The query command tree.
+
+
+ Implements the visitor pattern for the update command tree.
+ The update command tree.
+
+
+
+ An abstract base type for types that implement the IExpressionVisitor interface to derive from.
+
+
+
+
+ Convenience method to visit the specified .
+
+ The DbUnaryExpression to visit.
+
+
+ is null
+
+
+
+
+ Convenience method to visit the specified .
+
+ The DbBinaryExpression to visit.
+
+
+ is null
+
+
+
+
+ Convenience method to visit the specified .
+
+ The DbExpressionBinding to visit.
+
+
+ is null
+
+
+
+
+ Convenience method for post-processing after a DbExpressionBinding has been visited.
+
+ The previously visited DbExpressionBinding.
+
+
+
+ Convenience method to visit the specified .
+
+ The DbGroupExpressionBinding to visit.
+
+
+ is null
+
+
+
+
+ Convenience method indicating that the grouping keys of a have been visited and the aggregates are now about to be visited.
+
+ The DbGroupExpressionBinding of the DbGroupByExpression
+
+
+
+ Convenience method for post-processing after a DbGroupExpressionBinding has been visited.
+
+ The previously visited DbGroupExpressionBinding.
+
+
+
+ Convenience method indicating that the body of a Lambda is now about to be visited.
+
+ The DbLambda that is about to be visited
+
+
+ is null
+
+
+
+
+ Convenience method for post-processing after a DbLambda has been visited.
+
+ The previously visited DbLambda.
+
+
+
+ Convenience method to visit the specified , if non-null.
+
+ The expression to visit.
+
+
+ is null
+
+
+
+
+ Convenience method to visit each in the given list, if the list is non-null.
+
+ The list of expressions to visit.
+
+
+ is null
+
+
+
+
+ Convenience method to visit each in the list, if the list is non-null.
+
+ The list of aggregates to visit.
+
+
+ is null
+
+
+
+
+ Convenience method to visit the specified .
+
+ The aggregate to visit.
+
+
+ is null
+
+
+
+
+ Called when an of an otherwise unrecognized type is encountered.
+
+ The expression
+
+
+ is null
+
+
+ Always thrown if this method is called, since it indicates that
+
+ is of an unsupported type
+
+
+
+
+ Visitor pattern method for .
+
+ The DbConstantExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbNullExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbVariableReferenceExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbParameterReferenceExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbFunctionExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbLambdaExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbPropertyExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbComparisonExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbLikeExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbLimitExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbIsNullExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbArithmeticExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbAndExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbOrExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbInExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbNotExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbDistinctExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbElementExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbIsEmptyExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbUnionAllExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbIntersectExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbExceptExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbOfTypeExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbTreatExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbCastExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbIsOfExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbCaseExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbNewInstanceExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbRefExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbRelationshipNavigationExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DeRefExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbRefKeyExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbEntityRefExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbScanExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbFilterExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbProjectExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbCrossJoinExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbJoinExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbApplyExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbSkipExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbSortExpression that is being visited.
+
+
+ is null
+
+
+
+
+ Visitor pattern method for .
+
+ The DbQuantifierExpression that is being visited.
+
+
+ is null
+
+
+
+ Implements the basic functionality required by aggregates in a GroupBy clause.
+
+
+
+ Gets the result type of this .
+
+
+ The result type of this .
+
+
+
+
+ Gets the list of expressions that define the arguments to this
+
+ .
+
+
+ The list of expressions that define the arguments to this
+
+ .
+
+
+
+ Represents the logical AND of two Boolean arguments. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by the visitor .
+ visitor is null.
+
+
+ Represents an apply operation, which is the invocation of the specified function for each element in the specified input set. This class cannot be inherited.
+
+
+
+ Gets the that specifies the function that is invoked for each element in the input set.
+
+
+ The that specifies the function that is invoked for each element in the input set.
+
+
+
+
+ Gets the that specifies the input set.
+
+
+ The that specifies the input set.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by the visitor .
+ visitor is null.
+
+
+
+ Represents an arithmetic operation applied to numeric arguments.
+ Addition, subtraction, multiplication, division, modulo, and negation are arithmetic operations.
+ This class cannot be inherited.
+
+
+
+
+ Gets the list of elements that define the current arguments.
+
+
+ A fixed-size list of elements.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Implements the basic functionality required by expressions that accept two expression operands.
+
+
+
+ Gets the that defines the left argument.
+
+
+ The that defines the left argument.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ ,or its result type is not equal or promotable to the required type for the left argument.
+
+
+
+
+ Gets the that defines the right argument.
+
+
+ The that defines the right argument.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ ,or its result type is not equal or promotable to the required type for the right argument.
+
+
+
+
+ Represents the When, Then, and Else clauses of the
+
+ . This class cannot be inherited.
+
+
+
+
+ Gets the When clauses of this .
+
+
+ The When clauses of this .
+
+
+
+
+ Gets the Then clauses of this .
+
+
+ The Then clauses of this .
+
+
+
+
+ Gets the Else clause of this .
+
+
+ The Else clause of this .
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ ,or its result type is not equal or promotable to the result type of the
+
+ .
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents the type conversion of a single argument to the specified type. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ An immutable class that implements the basic functionality for the Query, Insert, Update, Delete, and function invocation command tree types.
+
+
+
+ Gets a value indicating whether database null semantics are exhibited when comparing
+ two operands, both of which are potentially nullable. The default value is true.
+
+ For example (operand1 == operand2) will be translated as:
+
+ (operand1 = operand2)
+
+ if UseDatabaseNullSemantics is true, respectively
+
+ (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL)))
+
+ if UseDatabaseNullSemantics is false.
+
+
+ true if database null comparison behavior is enabled, otherwise false .
+
+
+
+
+ Gets the name and corresponding type of each parameter that can be referenced within this
+
+ .
+
+
+ The name and corresponding type of each parameter that can be referenced within this
+
+ .
+
+
+
+
+ Gets the kind of this command tree.
+
+
+
+
+ Gets the metadata workspace used by this command tree.
+
+
+
+
+ Gets the data space in which metadata used by this command tree must reside.
+
+
+
+
+ Returns a that represents this command.
+
+
+ A that represents this command.
+
+
+
+
+ Describes the different "kinds" (classes) of command trees.
+
+
+
+
+ A query to retrieve data
+
+
+
+
+ Update existing data
+
+
+
+
+ Insert new data
+
+
+
+
+ Deleted existing data
+
+
+
+
+ Call a function
+
+
+
+ Represents a comparison operation applied to two arguments. Equality, greater than, greater than or equal, less than, less than or equal, and inequality are comparison operations. This class cannot be inherited.
+
+ DbComparisonExpression requires that its arguments have a common result type
+ that is equality comparable (for .Equals and .NotEquals),
+ order comparable (for .GreaterThan and .LessThan),
+ or both (for .GreaterThanOrEquals and .LessThanOrEquals).
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents different kinds of constants (literals). This class cannot be inherited.
+
+
+ Gets the constant value.
+ The constant value.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents an unconditional join operation between the given collection arguments. This class cannot be inherited.
+
+
+
+ Gets a list that provides the input sets to the join.
+
+
+ A list that provides the input sets to the join.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents a single row delete operation expressed as a command tree. This class cannot be inherited.
+
+
+
+ Initializes a new instance of the class.
+
+ The model this command will operate on.
+ The data space.
+ The target table for the data manipulation language (DML) operation.
+ A predicate used to determine which members of the target collection should be deleted.
+
+
+
+ Gets an that specifies the predicate used to determine which members of the target collection should be deleted.
+
+
+ The predicate can include only the following elements:
+
+ - Equality expression
+ - Constant expression
+ - IsNull expression
+ - Property expression
+ - Reference expression to the target
+ - And expression
+ - Or expression
+ - Not expression
+
+
+
+ An that specifies the predicate used to determine which members of the target collection should be deleted.
+
+
+
+ Gets the kind of this command tree.
+ The kind of this command tree.
+
+
+ Represents the an expression that retrieves an entity based on the specified reference. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Removes duplicate elements from the specified set argument. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents the conversion of the specified set argument to a singleton. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents an expression that extracts a reference from the underlying entity instance. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents the set subtraction operation between the left and right operands. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor.
+ visitor is null.
+
+
+ Represents the base type for all expressions.
+
+
+ Gets the type metadata for the result type of the expression.
+ The type metadata for the result type of the expression.
+
+
+ Gets the kind of the expression, which indicates the operation of this expression.
+ The kind of the expression, which indicates the operation of this expression.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ The type of the result produced by .
+
+
+ An instance of .
+
+ The type of the result produced by visitor.
+
+
+
+ Determines whether the specified is equal to the current DbExpression instance.
+
+
+ True if the specified is equal to the current DbExpression instance; otherwise, false.
+
+
+ The object to compare to the current .
+
+
+
+ Serves as a hash function for the type.
+ A hash code for the current expression.
+
+
+
+ Creates a that represents the specified binary value, which may be null
+
+
+ A that represents the specified binary value.
+
+ The binary value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from a byte array.
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) Boolean value.
+
+
+ A that represents the specified Boolean value.
+
+ The Boolean value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) byte value.
+
+
+ A that represents the specified byte value.
+
+ The byte value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable)
+
+ value.
+
+
+ A that represents the specified DateTime value.
+
+ The DateTime value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The expression to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable)
+
+ value.
+
+
+ A that represents the specified DateTimeOffset value.
+
+ The DateTimeOffset value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) decimal value.
+
+
+ A that represents the specified decimal value.
+
+ The decimal value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) double value.
+
+
+ A that represents the specified double value.
+
+ The double value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified
+
+ value, which may be null.
+
+
+ A that represents the specified DbGeography value.
+
+ The DbGeography value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified
+
+ value, which may be null.
+
+
+ A that represents the specified DbGeometry value.
+
+ The DbGeometry value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable)
+
+ value.
+
+
+ A that represents the specified Guid value.
+
+ The Guid value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) Int16 value.
+
+
+ A that represents the specified Int16 value.
+
+ The Int16 value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) Int32 value.
+
+
+ A that represents the specified Int32 value.
+
+ The Int32 value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) Int64 value.
+
+
+ A that represents the specified Int64 value.
+
+ The Int64 value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified (nullable) Single value.
+
+
+ A that represents the specified Single value.
+
+ The Single value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Creates a that represents the specified string value.
+
+
+ A that represents the specified string value.
+
+ The string value on which the returned expression should be based.
+
+
+
+ Enables implicit casting from .
+
+ The value to be converted.
+ The converted value.
+
+
+
+ Describes a binding for an expression. Conceptually similar to a foreach loop
+ in C#. The DbExpression property defines the collection being iterated over,
+ while the Var property provides a means to reference the current element
+ of the collection during the iteration. DbExpressionBinding is used to describe the set arguments
+ to relational expressions such as ,
+ and .
+
+
+
+
+
+
+ Gets the that defines the input set.
+
+
+ The that defines the input set.
+
+ The expression is null.
+ The expression is not associated with the command tree of the binding, or its result type is not equal or promotable to the result type of the current value of the property.
+
+
+ Gets the name assigned to the element variable.
+ The name assigned to the element variable.
+
+
+ Gets the type metadata of the element variable.
+ The type metadata of the element variable.
+
+
+
+ Gets the that references the element variable.
+
+ The variable reference.
+
+
+
+ Contains values that each expression class uses to denote the operation it represents. The
+
+ property of an
+
+ can be retrieved to determine which operation that expression represents.
+
+
+
+
+ True for all.
+
+
+
+
+ Logical And.
+
+
+
+
+ True for any.
+
+
+
+
+ Conditional case statement.
+
+
+
+
+ Polymorphic type cast.
+
+
+
+
+ A constant value.
+
+
+
+
+ Cross apply
+
+
+
+
+ Cross join
+
+
+
+
+ Dereference.
+
+
+
+
+ Duplicate removal.
+
+
+
+
+ Division.
+
+
+
+
+ Set to singleton conversion.
+
+
+
+
+ Entity ref value retrieval.
+
+
+
+
+ Equality
+
+
+
+
+ Set subtraction
+
+
+
+
+ Restriction.
+
+
+
+
+ Full outer join
+
+
+
+
+ Invocation of a stand-alone function
+
+
+
+
+ Greater than.
+
+
+
+
+ Greater than or equal.
+
+
+
+
+ Grouping.
+
+
+
+
+ Inner join
+
+
+
+
+ Set intersection.
+
+
+
+
+ Empty set determination.
+
+
+
+
+ Null determination.
+
+
+
+
+ Type comparison (specified Type or Subtype).
+
+
+
+
+ Type comparison (specified Type only).
+
+
+
+
+ Left outer join
+
+
+
+
+ Less than.
+
+
+
+
+ Less than or equal.
+
+
+
+
+ String comparison.
+
+
+
+
+ Result count restriction (TOP n).
+
+
+
+
+ Subtraction.
+
+
+
+
+ Modulo.
+
+
+
+
+ Multiplication.
+
+
+
+
+ Instance, row, and set construction.
+
+
+
+
+ Logical Not.
+
+
+
+
+ Inequality.
+
+
+
+
+ Null.
+
+
+
+
+ Set members by type (or subtype).
+
+
+
+
+ Set members by (exact) type.
+
+
+
+
+ Logical Or.
+
+
+
+
+ Outer apply.
+
+
+
+
+ A reference to a parameter.
+
+
+
+
+ Addition.
+
+
+
+
+ Projection.
+
+
+
+
+ Retrieval of a static or instance property.
+
+
+
+
+ Reference.
+
+
+
+
+ Ref key value retrieval.
+
+
+
+
+ Navigation of a (composition or association) relationship.
+
+
+
+
+ Entity or relationship set scan.
+
+
+
+
+ Skip elements of an ordered collection.
+
+
+
+
+ Sorting.
+
+
+
+
+ Type conversion.
+
+
+
+
+ Negation.
+
+
+
+
+ Set union (with duplicates).
+
+
+
+
+ A reference to a variable.
+
+
+
+
+ Application of a lambda function
+
+
+
+
+ In.
+
+
+
+ Defines the basic functionality that should be implemented by visitors that do not return a result value.
+
+
+ When overridden in a derived class, handles any expression of an unrecognized type.
+ The expression to be handled.
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+
+ The that is visited.
+
+
+
+
+ Visitor pattern method for DbInExpression.
+
+ The DbInExpression that is being visited.
+
+
+ Defines the basic functionality that should be implemented by visitors that return a result value of a specific type.
+ The type of the result produced by the visitor.
+
+
+ When overridden in a derived class, handles any expression of an unrecognized type.
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern method for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ When overridden in a derived class, implements the visitor pattern for
+
+ .
+
+ A result value of a specific type.
+
+ The that is being visited.
+
+
+
+
+ Typed visitor pattern method for DbInExpression.
+
+ The DbInExpression that is being visited.
+ An instance of TResultType.
+
+
+ Represents a predicate applied to filter an input set. This produces the set of elements that satisfy the predicate. This class cannot be inherited.
+
+
+
+ Gets the that specifies the input set.
+
+
+ The that specifies the input set.
+
+
+
+
+ Gets the that specifies the predicate used to filter the input set.
+
+
+ The that specifies the predicate used to filter the input set.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not a Boolean type.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Supports standard aggregate functions, such as MIN, MAX, AVG, SUM, and so on. This class cannot be inherited.
+
+
+ Gets a value indicating whether this aggregate is a distinct aggregate.
+ true if the aggregate is a distinct aggregate; otherwise, false.
+
+
+ Gets the method metadata that specifies the aggregate function to invoke.
+ The method metadata that specifies the aggregate function to invoke.
+
+
+ Represents the invocation of a database function.
+
+
+
+ Constructs a new DbFunctionCommandTree that uses the specified metadata workspace, data space and function metadata
+
+ The metadata workspace that the command tree should use.
+ The logical 'space' that metadata in the expressions used in this command tree must belong to.
+ The that represents the function that is being invoked.
+ The expected result type for the function’s first result set.
+ The function's parameters.
+
+ , or is null
+
+
+ does not represent a valid data space or
+ is a composable function
+
+
+
+
+ Gets the that represents the function that is being invoked.
+
+
+ The that represents the function that is being invoked.
+
+
+
+ Gets the expected result type for the function’s first result set.
+ The expected result type for the function’s first result set.
+
+
+ Gets or sets the command tree kind.
+ The command tree kind.
+
+
+ Represents an invocation of a function. This class cannot be inherited.
+
+
+ Gets the metadata for the function to invoke.
+ The metadata for the function to invoke.
+
+
+
+ Gets an list that provides the arguments to the function.
+
+
+ An list that provides the arguments to the function.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents a collection of elements that compose a group.
+
+
+ Represents a group by operation. A group by operation is a grouping of the elements in the input set based on the specified key expressions followed by the application of the specified aggregates. This class cannot be inherited.
+
+
+
+ Gets the that specifies the input set and provides access to the set element and group element variables.
+
+
+ The that specifies the input set and provides access to the set element and group element variables.
+
+
+
+
+ Gets a list that provides grouping keys.
+
+
+ A list that provides grouping keys.
+
+
+
+
+ Gets a list that provides the aggregates to apply.
+
+
+ A list that provides the aggregates to apply.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+
+ Defines the binding for the input set to a .
+ In addition to the properties of , DbGroupExpressionBinding
+ also provides access to the group element via the variable reference
+ and to the group aggregate via the property.
+
+
+
+
+ Gets the that defines the input set.
+
+
+ The that defines the input set.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not equal or promotable to the result type of the current value of the property.
+
+
+
+ Gets the name assigned to the element variable.
+ The name assigned to the element variable.
+
+
+ Gets the type metadata of the element variable.
+ The type metadata of the element variable.
+
+
+
+ Gets the that references the element variable.
+
+ A reference to the element variable.
+
+
+ Gets the name assigned to the group element variable.
+ The name assigned to the group element variable.
+
+
+ Gets the type metadata of the group element variable.
+ The type metadata of the group element variable.
+
+
+
+ Gets the that references the group element variable.
+
+ A reference to the group element variable.
+
+
+
+ Gets the that represents the collection of elements in the group.
+
+ The elements in the group.
+
+
+
+ Represents a boolean expression that tests whether a specified item matches any element in a list.
+
+
+
+
+ Gets a DbExpression that specifies the item to be matched.
+
+
+
+
+ Gets the list of DbExpression to test for a match.
+
+
+
+
+ The visitor pattern method for expression visitors that do not produce a result value.
+
+ An instance of DbExpressionVisitor.
+
+
+ is null
+
+
+
+
+ The visitor pattern method for expression visitors that produce a result value of a specific type.
+
+ An instance of a typed DbExpressionVisitor that produces a result value of type TResultType.
+
+ The type of the result produced by
+
+
+
+ is null
+
+
+ An instance of .
+
+
+
+ Represents a single row insert operation expressed as a command tree. This class cannot be inherited.
+
+ Represents a single row insert operation expressed as a canonical command tree.
+ When the property is set, the command returns a reader; otherwise,
+ it returns a scalar value indicating the number of rows affected.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The model this command will operate on.
+ The data space.
+ The target table for the data manipulation language (DML) operation.
+ The list of insert set clauses that define the insert operation. .
+ A that specifies a projection of results to be returned, based on the modified rows.
+
+
+ Gets the list of insert set clauses that define the insert operation.
+ The list of insert set clauses that define the insert operation.
+
+
+
+ Gets an that specifies a projection of results to be returned based on the modified rows.
+
+
+ An that specifies a projection of results to be returned based on the modified rows. null indicates that no results should be returned from this command.
+
+
+
+ Gets the command tree kind.
+ The command tree kind.
+
+
+ Represents the set intersection operation between the left and right operands. This class cannot be inherited.
+
+ DbIntersectExpression requires that its arguments have a common collection result type
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents an empty set determination applied to a single set argument. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents null determination applied to a single argument. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the type comparison of a single argument against the specified type. This class cannot be inherited.
+
+
+ Gets the type metadata that the type metadata of the argument should be compared to.
+ The type metadata that the type metadata of the argument should be compared to.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition.
+
+
+
+ Gets the that provides the left input.
+
+
+ The that provides the left input.
+
+
+
+
+ Gets the that provides the right input.
+
+
+ The that provides the right input.
+
+
+
+ Gets the join condition to apply.
+ The join condition to apply.
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not a Boolean type.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+
+ Represents a Lambda function that can be invoked to produce a
+
+ .
+
+
+
+ Gets the body of the lambda expression.
+
+ A that represents the body of the lambda function.
+
+
+
+ Gets the parameters of the lambda expression.
+ The list of lambda function parameters represented as DbVariableReferenceExpression objects.
+
+
+
+ Creates a with the specified inline Lambda function implementation and formal parameters.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters
+ An expression that defines the logic of the Lambda function
+
+ A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression.
+
+
+
+ is null or contains null, or
+
+ is null
+
+
+
+ contains more than one element with the same variable name.
+
+
+
+
+ Creates a with the specified inline Lambda function implementation and formal parameters.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters
+ An expression that defines the logic of the Lambda function
+
+ A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression.
+
+
+
+ is null or contains null, or
+
+ is null.
+
+
+
+ contains more than one element with the same variable name.
+
+
+
+
+ Creates a new with a single argument of the specified type, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and single formal parameter.
+
+ A that defines the EDM type of the argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A that defines the EDM type of the eleventh argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A that defines the EDM type of the eleventh argument to the Lambda function
+
+
+ A that defines the EDM type of the twelfth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A that defines the EDM type of the eleventh argument to the Lambda function
+
+
+ A that defines the EDM type of the twelfth argument to the Lambda function
+
+
+ A that defines the EDM type of the thirteenth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A that defines the EDM type of the eleventh argument to the Lambda function
+
+
+ A that defines the EDM type of the twelfth argument to the Lambda function
+
+
+ A that defines the EDM type of the thirteenth argument to the Lambda function
+
+
+ A that defines the EDM type of the fourteenth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A that defines the EDM type of the eleventh argument to the Lambda function
+
+
+ A that defines the EDM type of the twelfth argument to the Lambda function
+
+
+ A that defines the EDM type of the thirteenth argument to the Lambda function
+
+
+ A that defines the EDM type of the fourteenth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifteenth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+ or
+
+ is null or produces a result of null.
+
+
+
+
+ Creates a new with arguments of the specified types, as defined by the specified function.
+
+ A new DbLambda that describes an inline Lambda function with the specified body and formal parameters.
+
+ A that defines the EDM type of the first argument to the Lambda function
+
+
+ A that defines the EDM type of the second argument to the Lambda function
+
+
+ A that defines the EDM type of the third argument to the Lambda function
+
+
+ A that defines the EDM type of the fourth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixth argument to the Lambda function
+
+
+ A that defines the EDM type of the seventh argument to the Lambda function
+
+
+ A that defines the EDM type of the eighth argument to the Lambda function
+
+
+ A that defines the EDM type of the ninth argument to the Lambda function
+
+
+ A that defines the EDM type of the tenth argument to the Lambda function
+
+
+ A that defines the EDM type of the eleventh argument to the Lambda function
+
+
+ A that defines the EDM type of the twelfth argument to the Lambda function
+
+
+ A that defines the EDM type of the thirteenth argument to the Lambda function
+
+
+ A that defines the EDM type of the fourteenth argument to the Lambda function
+
+
+ A that defines the EDM type of the fifteenth argument to the Lambda function
+
+
+ A that defines the EDM type of the sixteenth argument to the Lambda function
+
+
+ A function that defines the logic of the Lambda function as a
+
+
+
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null,
+
+ is null, or
+
+ is null or produces a result of null.
+
+
+
+
+ Allows the application of a lambda function to arguments represented by
+
+ objects.
+
+
+
+
+ Gets the representing the Lambda function applied by this expression.
+
+
+ The representing the Lambda function applied by this expression.
+
+
+
+
+ Gets a list that provides the arguments to which the Lambda function should be applied.
+
+
+ The list.
+
+
+
+ The visitor pattern method for expression visitors that do not produce a result value.
+
+ An instance of .
+
+ visitor is null
+
+
+ The visitor pattern method for expression visitors that produce a result value of a specific type.
+ The type of the result produced by the expression visitor.
+
+ An instance of a typed that produces a result value of type TResultType.
+
+ The type of the result produced by visitor
+ visitor is null
+
+
+ Represents a string comparison against the specified pattern with an optional escape string. This class cannot be inherited.
+
+
+ Gets an expression that specifies the string to compare against the given pattern.
+ An expression that specifies the string to compare against the given pattern.
+ The expression is null.
+
+ The expression is not associated with the command tree of
+
+ , or its result type is not a string type.
+
+
+
+ Gets an expression that specifies the pattern against which the given string should be compared.
+ An expression that specifies the pattern against which the given string should be compared.
+ The expression is null.
+
+ The expression is not associated with the command tree of
+
+ , or its result type is not a string type.
+
+
+
+ Gets an expression that provides an optional escape string to use for the comparison.
+ An expression that provides an optional escape string to use for the comparison.
+ The expression is null.
+
+ The expression is not associated with the command tree of
+
+ , or its result type is not a string type.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the restriction of the number of elements in the argument collection to the specified limit value.
+
+
+ Gets an expression that specifies the input collection.
+ An expression that specifies the input collection.
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not a collection type.
+
+
+
+ Gets an expression that specifies the limit on the number of elements returned from the input collection.
+ An expression that specifies the limit on the number of elements returned from the input collection.
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or is not one of
+
+ or
+
+ , or its result type is not equal or promotable to a 64-bit integer type.
+
+
+
+
+ Gets whether the limit operation will include tied results. Including tied results might produce more results than specified by the
+
+ value.
+
+ true if the limit operation will include tied results; otherwise, false. The default is false.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+
+ Specifies a single clause in an insert or update modification operation, see
+ and
+
+
+ An abstract base class allows the possibility of patterns other than
+ Property = Value in future versions, e.g.,
+ update SomeTable
+ set ComplexTypeColumn.SomeProperty()
+ where Id = 2
+
+
+
+ Represents a data manipulation language (DML) operation expressed as a command tree.
+
+
+
+ Gets the that specifies the target table for the data manipulation language (DML) operation.
+
+
+ The that specifies the target table for the DML operation.
+
+
+
+ Represents the construction of a new instance of a given type, including set and record types. This class cannot be inherited.
+
+
+
+ Gets an list that provides the property/column values or set elements for the new instance.
+
+
+ An list that provides the property/column values or set elements for the new instance.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the logical NOT of a single Boolean argument. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents a reference to a typed null literal. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the retrieval of elements of the specified type from the given set argument. This class cannot be inherited.
+
+
+ Gets the metadata of the type of elements that should be retrieved from the set argument.
+ The metadata of the type of elements that should be retrieved from the set argument.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the logical OR of two Boolean arguments. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents a reference to a parameter declared on the command tree that contains this expression. This class cannot be inherited.
+
+
+ Gets the name of the referenced parameter.
+ The name of the referenced parameter.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the projection of a given input set over the specified expression. This class cannot be inherited.
+
+
+
+ Gets the that specifies the input set.
+
+
+ The that specifies the input set.
+
+
+
+
+ Gets the that defines the projection.
+
+
+ The that defines the projection.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not equal or promotable to the reference type of the current projection.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Provides methods and properties for retrieving an instance property. This class cannot be inherited.
+
+
+ Gets the property metadata for the property to retrieve.
+ The property metadata for the property to retrieve.
+
+
+
+ Gets a that defines the instance from which the property should be retrieved.
+
+
+ A that defines the instance from which the property should be retrieved.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not equal or promotable to the type that defines the property.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Creates a new key/value pair based on this property expression.
+
+ A new key/value pair with the key and value derived from the
+
+ .
+
+
+
+
+ Enables implicit casting to .
+
+ The expression to be converted.
+ The converted value.
+
+
+ Represents a quantifier operation of the specified kind over the elements of the specified input set. This class cannot be inherited.
+
+
+
+ Gets the that specifies the input set.
+
+
+ The that specifies the input set.
+
+
+
+ Gets the Boolean predicate that should be evaluated for each element in the input set.
+ The Boolean predicate that should be evaluated for each element in the input set.
+ The expression is null.
+
+ The expression is not associated with the command tree for the
+
+ ,or its result type is not a Boolean type.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents a query operation expressed as a command tree. This class cannot be inherited.
+
+
+
+ Constructs a new DbQueryCommandTree that uses the specified metadata workspace.
+
+ The metadata workspace that the command tree should use.
+ The logical 'space' that metadata in the expressions used in this command tree must belong to.
+
+ A that defines the logic of the query.
+
+ When set to false the validation of the tree is turned off.
+ A boolean that indicates whether database null semantics are exhibited when comparing
+ two operands, both of which are potentially nullable.
+ A boolean that indicates whether
+ filter over projection simplification should be used.
+
+
+ or
+
+ is null
+
+
+
+ does not represent a valid data space
+
+
+
+
+ Constructs a new DbQueryCommandTree that uses the specified metadata workspace.
+
+ The metadata workspace that the command tree should use.
+ The logical 'space' that metadata in the expressions used in this command tree must belong to.
+
+ A that defines the logic of the query.
+
+ When set to false the validation of the tree is turned off.
+ A boolean that indicates whether database null semantics are exhibited when comparing
+ two operands, both of which are potentially nullable.
+
+
+ or
+
+ is null
+
+
+
+ does not represent a valid data space
+
+
+
+
+ Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics.
+
+ The metadata workspace that the command tree should use.
+ The logical 'space' that metadata in the expressions used in this command tree must belong to.
+
+ A that defines the logic of the query.
+
+ When set to false the validation of the tree is turned off.
+
+
+ or
+
+ is null
+
+
+
+ does not represent a valid data space
+
+
+
+
+ Constructs a new DbQueryCommandTree that uses the specified metadata workspace, using database null semantics.
+
+ The metadata workspace that the command tree should use.
+ The logical 'space' that metadata in the expressions used in this command tree must belong to.
+
+ A that defines the logic of the query.
+
+
+
+ or
+
+ is null
+
+
+
+ does not represent a valid data space
+
+
+
+
+ Gets an that defines the logic of the query operation.
+
+
+ An that defines the logic of the query operation.
+
+ The expression is null.
+ The expression is associated with a different command tree.
+
+
+ Gets the kind of this command tree.
+ The kind of this command tree.
+
+
+ Represents a strongly typed reference to a specific instance within an entity set. This class cannot be inherited.
+
+
+ Gets the metadata for the entity set that contains the instance.
+ The metadata for the entity set that contains the instance.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+
+ Represents the retrieval of the key value of the specified Reference as a row.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents the navigation of a relationship. This class cannot be inherited.
+
+
+ Gets the metadata for the relationship over which navigation occurs.
+ The metadata for the relationship over which navigation occurs.
+
+
+ Gets the metadata for the relationship end to navigate from.
+ The metadata for the relationship end to navigate from.
+
+
+ Gets the metadata for the relationship end to navigate to.
+ The metadata for the relationship end to navigate to.
+
+
+
+ Gets an that specifies the starting point of the navigation and must be a reference to an entity instance.
+
+
+ An that specifies the instance of the source relationship end from which navigation should occur.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ , or its result type is not equal or promotable to the reference type of the
+
+ property.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+
+ Represents a 'scan' of all elements of a given entity set.
+
+
+
+ Gets the metadata for the referenced entity or relationship set.
+ The metadata for the referenced entity or relationship set.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Specifies the clause in a modification operation that sets the value of a property. This class cannot be inherited.
+
+
+
+ Gets an that specifies the property that should be updated.
+
+
+ An that specifies the property that should be updated.
+
+
+
+
+ Gets an that specifies the new value with which to update the property.
+
+
+ An that specifies the new value with which to update the property.
+
+
+
+
+ Skips a specified number of elements in the input set.
+
+ can only be used after the input collection has been sorted as specified by the sort keys.
+
+
+
+
+ Gets the that specifies the input set.
+
+
+ The that specifies the input set.
+
+
+
+
+ Gets a list that defines the sort order.
+
+
+ A list that defines the sort order.
+
+
+
+ Gets an expression that specifies the number of elements to skip from the input collection.
+ An expression that specifies the number of elements to skip from the input collection.
+ The expression is null.
+
+ The expression is not associated with the command tree of the
+
+ ; the expression is not either a
+
+ or a
+
+ ; or the result type of the expression is not equal or promotable to a 64-bit integer type.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+
+ Specifies a sort key that can be used as part of the sort order in a
+
+ . This class cannot be inherited.
+
+
+
+ Gets a Boolean value indicating whether or not this sort key uses an ascending sort order.
+ true if this sort key uses an ascending sort order; otherwise, false.
+
+
+ Gets a string value that specifies the collation for this sort key.
+ A string value that specifies the collation for this sort key.
+
+
+
+ Gets the that provides the value for this sort key.
+
+
+ The that provides the value for this sort key.
+
+
+
+ Represents a sort operation applied to the elements of the specified input set based on the given sort keys. This class cannot be inherited.
+
+
+
+ Gets the that specifies the input set.
+
+
+ The that specifies the input set.
+
+
+
+
+ Gets a list that defines the sort order.
+
+
+ A list that defines the sort order.
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by
+ visitor
+
+
+ visitor
+ is null.
+
+
+ Represents a type conversion operation applied to a polymorphic argument. This class cannot be inherited.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Implements the basic functionality required by expressions that accept a single expression argument.
+
+
+
+ Gets the that defines the argument.
+
+
+ The that defines the argument.
+
+ The expression is null.
+
+ The expression is not associated with the command tree of a
+
+ , or its result type is not equal or promotable to the required type for the argument.
+
+
+
+
+ Represents the set union (without duplicate removal) operation between the left and right operands.
+
+
+ DbUnionAllExpression requires that its arguments have a common collection result type
+
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Represents a single-row update operation expressed as a command tree. This class cannot be inherited.
+
+ Represents a single-row update operation expressed as a canonical command tree.
+ When the property is set, the command returns a reader; otherwise,
+ it returns a scalar indicating the number of rows affected.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The model this command will operate on.
+ The data space.
+ The target table for the data manipulation language (DML) operation.
+ A predicate used to determine which members of the target collection should be updated.
+ The list of update set clauses that define the update operation.
+ A that specifies a projection of results to be returned, based on the modified rows.
+
+
+ Gets the list of update set clauses that define the update operation.
+ The list of update set clauses that define the update operation.
+
+
+
+ Gets an that specifies a projection of results to be returned, based on the modified rows.
+
+
+ An that specifies a projection of results to be returned based, on the modified rows. null indicates that no results should be returned from this command.
+
+
+
+
+ Gets an that specifies the predicate used to determine which members of the target collection should be updated.
+
+
+ An that specifies the predicate used to determine which members of the target collection should be updated.
+
+
+
+ Gets the kind of this command tree.
+ The kind of this command tree.
+
+
+ Represents a reference to a variable that is currently in scope. This class cannot be inherited.
+
+
+ Gets the name of the referenced variable.
+ The name of the referenced variable.
+
+
+ Implements the visitor pattern for expressions that do not produce a result value.
+
+ An instance of .
+
+ visitor is null.
+
+
+ Implements the visitor pattern for expressions that produce a result value of a specific type.
+
+ A result value of a specific type produced by
+
+ .
+
+
+ An instance of a typed that produces a result value of a specific type.
+
+ The type of the result produced by visitor .
+ visitor is null.
+
+
+ Visits each element of an expression tree from a given root expression. If any element changes, the tree is rebuilt back to the root and the new root expression is returned; otherwise the original root expression is returned.
+
+
+
+ Initializes a new instance of the
+
+ class.
+
+
+
+ Replaces an old expression with a new one for the expression visitor.
+ The old expression.
+ The new expression.
+
+
+ Represents an event when the variable is rebound for the expression visitor.
+ The location of the variable.
+ The reference of the variable where it is rebounded.
+
+
+ Represents an event when entering the scope for the expression visitor with specified scope variables.
+ The collection of scope variables.
+
+
+ Exits the scope for the expression visitor.
+
+
+ Implements the visitor pattern for the expression.
+ The implemented visitor pattern.
+ The expression.
+
+
+ Implements the visitor pattern for the expression list.
+ The implemented visitor pattern.
+ The expression list.
+
+
+ Implements the visitor pattern for expression binding.
+ The implemented visitor pattern.
+ The expression binding.
+
+
+ Implements the visitor pattern for the expression binding list.
+ The implemented visitor pattern.
+ The expression binding list.
+
+
+ Implements the visitor pattern for the group expression binding.
+ The implemented visitor pattern.
+ The binding.
+
+
+ Implements the visitor pattern for the sort clause.
+ The implemented visitor pattern.
+ The sort clause.
+
+
+ Implements the visitor pattern for the sort order.
+ The implemented visitor pattern.
+ The sort order.
+
+
+ Implements the visitor pattern for the aggregate.
+ The implemented visitor pattern.
+ The aggregate.
+
+
+ Implements the visitor pattern for the function aggregate.
+ The implemented visitor pattern.
+ The aggregate.
+
+
+ Implements the visitor pattern for the group aggregate.
+ The implemented visitor pattern.
+ The aggregate.
+
+
+ Implements the visitor pattern for the Lambda function.
+ The implemented visitor pattern.
+ The lambda function.
+
+
+ Implements the visitor pattern for the type.
+ The implemented visitor pattern.
+ The type.
+
+
+ Implements the visitor pattern for the type usage.
+ The implemented visitor pattern.
+ The type.
+
+
+ Implements the visitor pattern for the entity set.
+ The implemented visitor pattern.
+ The entity set.
+
+
+ Implements the visitor pattern for the function.
+ The implemented visitor pattern.
+ The function metadata.
+
+
+ Implements the visitor pattern for the basic functionality required by expression types.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the different kinds of constants.
+ The implemented visitor.
+ The constant expression.
+
+
+ Implements the visitor pattern for a reference to a typed null literal.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a reference to a variable that is currently in scope.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a reference to a parameter declared on the command tree that contains this expression.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for an invocation of a function.
+ The implemented visitor.
+ The function expression.
+
+
+ Implements the visitor pattern for the application of a lambda function to arguments represented by DbExpression objects.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for retrieving an instance property.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the comparison operation applied to two arguments.
+ The implemented visitor.
+ The cast expression.
+
+
+ Implements the visitor pattern for a string comparison against the specified pattern with an optional escape string.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the restriction of the number of elements in the argument collection to the specified limit value.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the null determination applied to a single argument.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the arithmetic operation applied to numeric arguments.
+ The implemented visitor.
+ The arithmetic expression.
+
+
+ Implements the visitor pattern for the logical AND expression.
+ The implemented visitor.
+ The logical AND expression.
+
+
+ Implements the visitor pattern for the logical OR of two Boolean arguments.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the DbInExpression.
+ The implemented visitor.
+ The DbInExpression that is being visited.
+
+
+ Implements the visitor pattern for the logical NOT of a single Boolean argument.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the removed duplicate elements from the specified set argument.
+ The implemented visitor.
+ The distinct expression.
+
+
+ Implements the visitor pattern for the conversion of the specified set argument to a singleton the conversion of the specified set argument to a singleton.
+ The implemented visitor.
+ The element expression.
+
+
+ Implements the visitor pattern for an empty set determination applied to a single set argument.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the set union operation between the left and right operands.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the set intersection operation between the left and right operands.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the set subtraction operation between the left and right operands.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a type conversion operation applied to a polymorphic argument.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the type comparison of a single argument against the specified type.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the type conversion of a single argument to the specified type.
+ The implemented visitor.
+ The cast expression.
+
+
+ Implements the visitor pattern for the When, Then, and Else clauses.
+ The implemented visitor.
+ The case expression.
+
+
+ Implements the visitor pattern for the retrieval of elements of the specified type from the given set argument.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the construction of a new instance of a given type, including set and record types.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a strongly typed reference to a specific instance within an entity set.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the navigation of a relationship.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the expression that retrieves an entity based on the specified reference.
+ The implemented visitor.
+ The DEREF expression.
+
+
+ Implements the visitor pattern for the retrieval of the key value from the underlying reference value.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the expression that extracts a reference from the underlying entity instance.
+ The implemented visitor.
+ The entity reference expression.
+
+
+ Implements the visitor pattern for a scan over an entity set or relationship set, as indicated by the Target property.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a predicate applied to filter an input set.
+ The implemented visitor.
+ The filter expression.
+
+
+ Implements the visitor pattern for the projection of a given input set over the specified expression.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the unconditional join operation between the given collection arguments.
+ The implemented visitor.
+ The join expression.
+
+
+ Implements the visitor pattern for an inner, left outer, or full outer join operation between the given collection arguments on the specified join condition.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the invocation of the specified function for each element in the specified input set.
+ The implemented visitor.
+ The APPLY expression.
+
+
+ Implements the visitor pattern for a group by operation.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for the skip expression.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a sort key that can be used as part of the sort order.
+ The implemented visitor.
+ The expression.
+
+
+ Implements the visitor pattern for a quantifier operation of the specified kind over the elements of the specified input set.
+ The implemented visitor.
+ The expression.
+
+
+
+ Provides an API to construct s and allows that API to be accessed as extension methods on the expression type itself.
+
+
+
+ Returns the specified arguments as a key/value pair object.
+ A key/value pair object.
+ The value in the key/value pair.
+ The key in the key/value pair.
+
+
+ Returns the specified arguments as a key/value pair object.
+ A key/value pair object.
+ The value in the key/value pair.
+ The key in the key/value pair.
+
+
+
+ Creates a new that uses a generated variable name to bind the given expression.
+
+ A new expression binding with the specified expression and a generated variable name.
+ The expression to bind.
+ input is null.
+ input does not have a collection result.
+
+
+
+ Creates a new that uses the specified variable name to bind the given expression
+
+ A new expression binding with the specified expression and variable name.
+ The expression to bind.
+ The variable name that should be used for the binding.
+ input or varName is null.
+ input does not have a collection result.
+
+
+ Creates a new group expression binding that uses generated variable and group variable names to bind the given expression.
+ A new group expression binding with the specified expression and a generated variable name and group variable name.
+ The expression to bind.
+ input is null.
+ input does not have a collection result type.
+
+
+
+ Creates a new that uses the specified variable name and group variable names to bind the given expression.
+
+ A new group expression binding with the specified expression, variable name and group variable name.
+ The expression to bind.
+ The variable name that should be used for the binding.
+ The variable name that should be used to refer to the group when the new group expression binding is used in a group-by expression.
+ input, varName or groupVarName is null.
+ input does not have a collection result type.
+
+
+
+ Creates a new .
+
+ A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false.
+ The function that defines the aggregate operation.
+ The argument over which the aggregate function should be calculated.
+ function or argument null.
+ function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function.
+
+
+
+ Creates a new that is applied in a distinct fashion.
+
+ A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true.
+ The function that defines the aggregate operation.
+ The argument over which the aggregate function should be calculated.
+ function or argument is null.
+ function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function.
+
+
+
+ Creates a new .
+
+ A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value false.
+ The function that defines the aggregate operation.
+ The argument over which the aggregate function should be calculated.
+ function or argument null.
+ function is not an aggregate function or has more than one argument, or the result type of argument is not equal or promotable to the parameter type of function.
+
+
+
+ Creates a new that is applied in a distinct fashion.
+
+ A new function aggregate with a reference to the given function and argument. The function aggregate's Distinct property will have the value true.
+ The function that defines the aggregate operation.
+ The arguments over which the aggregate function should be calculated.
+ function or argument is null.
+ function is not an aggregate function, or the result type of argument is not equal or promotable to the parameter type of function.
+
+
+
+ Creates a new over the specified argument
+
+ The argument over which to perform the nest operation
+ A new group aggregate representing the elements of the group referenced by the given argument.
+
+
+ is null
+
+
+
+
+ Creates a with the specified inline Lambda function implementation and formal parameters.
+
+ A new expression that describes an inline Lambda function with the specified body and formal parameters.
+ An expression that defines the logic of the Lambda function.
+
+ A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression.
+
+ variables is null or contains null, or body is null.
+ variables contains more than one element with the same variable name.
+
+
+
+ Creates a with the specified inline Lambda function implementation and formal parameters.
+
+ A new expression that describes an inline Lambda function with the specified body and formal parameters.
+ An expression that defines the logic of the Lambda function.
+
+ A collection that represents the formal parameters to the Lambda function. These variables are valid for use in the body expression.
+
+ variables is null or contains null, or body is null.
+ variables contains more than one element with the same variable name.
+
+
+
+ Creates a new with an ascending sort order and default collation.
+
+ A new sort clause with the given sort key and ascending sort order.
+ The expression that defines the sort key.
+ key is null.
+ key does not have an order-comparable result type.
+
+
+
+ Creates a new with a descending sort order and default collation.
+
+ A new sort clause with the given sort key and descending sort order.
+ The expression that defines the sort key.
+ key is null.
+ key does not have an order-comparable result type.
+
+
+
+ Creates a new with an ascending sort order and the specified collation.
+
+ A new sort clause with the given sort key and collation, and ascending sort order.
+ The expression that defines the sort key.
+ The collation to sort under.
+ key is null.
+ collation is empty or contains only space characters.
+ key does not have an order-comparable result type.
+
+
+
+ Creates a new with a descending sort order and the specified collation.
+
+ A new sort clause with the given sort key and collation, and descending sort order.
+ The expression that defines the sort key.
+ The collation to sort under.
+ key is null.
+ collation is empty or contains only space characters.
+ key does not have an order-comparable result type.
+
+
+
+ Creates a new that determines whether the given predicate holds for all elements of the input set.
+
+ A new DbQuantifierExpression that represents the All operation.
+ An expression binding that specifies the input set.
+ An expression representing a predicate to evaluate for each member of the input set.
+ input or predicate is null.
+ predicate does not have a Boolean result type.
+
+
+
+ Creates a new that determines whether the given predicate holds for any element of the input set.
+
+ A new DbQuantifierExpression that represents the Any operation.
+ An expression binding that specifies the input set.
+ An expression representing a predicate to evaluate for each member of the input set.
+ input or predicate is null.
+ The expression produced by predicate does not have a Boolean result type.
+
+
+
+ Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included.
+
+
+ An new DbApplyExpression with the specified input and apply bindings and an
+
+ of CrossApply.
+
+
+ An that specifies the input set.
+
+
+ An that specifies logic to evaluate once for each member of the input set.
+
+ input or apply is null.
+
+
+
+ Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null.
+
+
+ An new DbApplyExpression with the specified input and apply bindings and an
+
+ of OuterApply.
+
+
+ An that specifies the input set.
+
+
+ An that specifies logic to evaluate once for each member of the input set.
+
+ input or apply is null.
+
+
+
+ Creates a new that unconditionally joins the sets specified by the list of input expression bindings.
+
+
+ A new DbCrossJoinExpression, with an of CrossJoin, that represents the unconditional join of the input sets.
+
+ A list of expression bindings that specifies the input sets.
+ inputs is null or contains null element.
+ inputs contains fewer than 2 expression bindings.
+
+
+
+ Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using InnerJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition.
+
+
+ An that specifies the left set argument.
+
+
+ An that specifies the right set argument.
+
+ An expression that specifies the condition on which to join.
+ left, right or joinCondition is null.
+ joinCondition does not have a Boolean result type.
+
+
+
+ Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using LeftOuterJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition.
+
+
+ An that specifies the left set argument.
+
+
+ An that specifies the right set argument.
+
+ An expression that specifies the condition on which to join.
+ left, right or joinCondition is null.
+ joinCondition does not have a Boolean result type.
+
+
+
+ Creates a new that joins the sets specified by the left and right expression bindings, on the specified join condition, using FullOuterJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition.
+
+
+ An that specifies the left set argument.
+
+
+ An that specifies the right set argument.
+
+ An expression that specifies the condition on which to join.
+ left, right or joinCondition is null.
+ The expression produced by joinCondition does not have a Boolean result type.
+
+
+
+ Creates a new that filters the elements in the given input set using the specified predicate.
+
+ A new DbFilterExpression that produces the filtered set.
+ An expression binding that specifies the input set.
+ An expression representing a predicate to evaluate for each member of the input set.
+ input or predicate is null.
+ predicate does not have a Boolean result type.
+
+
+
+ Creates a new that groups the elements of the input set according to the specified group keys and applies the given aggregates.
+
+ A new DbGroupByExpression with the specified input set, grouping keys and aggregates.
+
+ A that specifies the input set.
+
+ A list of string-expression pairs that define the grouping columns.
+ A list of expressions that specify aggregates to apply.
+ input, keys or aggregates is null, keys contains a null column key or expression, or aggregates contains a null aggregate column name or aggregate.
+ Both keys and aggregates are empty, or an invalid or duplicate column name was specified.
+
+
+
+ Creates a new that projects the specified expression over the given input set.
+
+ A new DbProjectExpression that represents the projection operation.
+ An expression binding that specifies the input set.
+ An expression to project over the set.
+ input or projection is null.
+
+
+
+ Creates a new that sorts the given input set by the given sort specifications before skipping the specified number of elements.
+
+ A new DbSkipExpression that represents the skip operation.
+ An expression binding that specifies the input set.
+ A list of sort specifications that determine how the elements of the input set should be sorted.
+ An expression the specifies how many elements of the ordered set to skip.
+ input, sortOrder or count is null, or sortOrder contains null.
+
+ sortOrder is empty, or count is not or
+
+ or has a result type that is not equal or promotable to a 64-bit integer type.
+
+
+
+
+ Creates a new that sorts the given input set by the specified sort specifications.
+
+ A new DbSortExpression that represents the sort operation.
+ An expression binding that specifies the input set.
+ A list of sort specifications that determine how the elements of the input set should be sorted.
+ input or sortOrder is null, or sortOrder contains null.
+ sortOrder is empty.
+
+
+
+ Creates a new , which represents a typed null value.
+
+ An instance of DbNullExpression.
+ The type of the null value.
+ nullType is null.
+
+
+
+ Gets a with the Boolean value true.
+
+
+ A with the Boolean value true.
+
+
+
+
+ Gets a with the Boolean value false.
+
+
+ A with the Boolean value false.
+
+
+
+
+ Creates a new with the given constant value.
+
+ A new DbConstantExpression with the given value.
+ The constant value to represent.
+ value is null.
+ value is not an instance of a valid constant type.
+
+
+
+ Creates a new of the specified primitive type with the given constant value.
+
+ A new DbConstantExpression with the given value and a result type of constantType.
+ The type of the constant value.
+ The constant value to represent.
+ value or constantType is null.
+ value is not an instance of a valid constant type, constantType does not represent a primitive type, or value is of a different primitive type than that represented by constantType.
+
+
+
+ Creates a new that references a parameter with the specified name and type.
+
+ A DbParameterReferenceExpression that represents a reference to a parameter with the specified name and type. The result type of the expression will be the same as type.
+ The type of the referenced parameter.
+ The name of the referenced parameter.
+
+
+
+ Creates a new that references a variable with the specified name and type.
+
+ A DbVariableReferenceExpression that represents a reference to a variable with the specified name and type. The result type of the expression will be the same as type.
+ The type of the referenced variable.
+ The name of the referenced variable.
+
+
+
+ Creates a new that references the specified entity or relationship set.
+
+ A new DbScanExpression based on the specified entity or relationship set.
+ Metadata for the entity or relationship set to reference.
+ targetSet is null.
+
+
+
+ Creates an that performs the logical And of the left and right arguments.
+
+ A new DbAndExpression with the specified arguments.
+ A Boolean expression that specifies the left argument.
+ A Boolean expression that specifies the right argument.
+ left or right is null.
+ left and right does not have a Boolean result type.
+
+
+
+ Creates an that performs the logical Or of the left and right arguments.
+
+ A new DbOrExpression with the specified arguments.
+ A Boolean expression that specifies the left argument.
+ A Boolean expression that specifies the right argument.
+ left or right is null.
+ left or right does not have a Boolean result type.
+
+
+
+ Creates a that matches the result of the specified
+ expression with the results of the constant expressions in the specified list.
+
+ A DbExpression to be matched.
+ A list of DbConstantExpression to test for a match.
+
+ A new DbInExpression with the specified arguments.
+
+
+
+ or
+
+ is null.
+
+
+ The result type of
+
+ is different than the result type of an expression from
+ .
+
+
+
+
+ Creates a that performs the logical negation of the given argument.
+
+ A new DbNotExpression with the specified argument.
+ A Boolean expression that specifies the argument.
+ argument is null.
+ argument does not have a Boolean result type.
+
+
+
+ Creates a new that divides the left argument by the right argument.
+
+ A new DbArithmeticExpression representing the division operation.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common numeric result type exists between left or right.
+
+
+
+ Creates a new that subtracts the right argument from the left argument.
+
+ A new DbArithmeticExpression representing the subtraction operation.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common numeric result type exists between left and right.
+
+
+
+ Creates a new that computes the remainder of the left argument divided by the right argument.
+
+ A new DbArithmeticExpression representing the modulo operation.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common numeric result type exists between left and right.
+
+
+
+ Creates a new that multiplies the left argument by the right argument.
+
+ A new DbArithmeticExpression representing the multiplication operation.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common numeric result type exists between left and right.
+
+
+
+ Creates a new that adds the left argument to the right argument.
+
+ A new DbArithmeticExpression representing the addition operation.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common numeric result type exists between left and right.
+
+
+
+ Creates a new that negates the value of the argument.
+
+ A new DbArithmeticExpression representing the negation operation.
+ An expression that specifies the argument.
+ argument is null.
+ No numeric result type exists for argument.
+
+
+
+ Creates a new that negates the value of the argument.
+
+ A new DbArithmeticExpression representing the negation operation.
+ An expression that specifies the argument.
+ argument is null.
+ No numeric result type exists for argument.
+
+
+
+ Creates a new that compares the left and right arguments for equality.
+
+ A new DbComparisonExpression representing the equality comparison.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common equality-comparable result type exists between left and right.
+
+
+
+ Creates a new that compares the left and right arguments for inequality.
+
+ A new DbComparisonExpression representing the inequality comparison.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common equality-comparable result type exists between left and right.
+
+
+
+ Creates a new that determines whether the left argument is greater than the right argument.
+
+ A new DbComparisonExpression representing the greater-than comparison.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common order-comparable result type exists between left and right.
+
+
+
+ Creates a new that determines whether the left argument is less than the right argument.
+
+ A new DbComparisonExpression representing the less-than comparison.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common order-comparable result type exists between left and right.
+
+
+
+ Creates a new that determines whether the left argument is greater than or equal to the right argument.
+
+ A new DbComparisonExpression representing the greater-than-or-equal-to comparison.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common order-comparable result type exists between left and right.
+
+
+
+ Creates a new that determines whether the left argument is less than or equal to the right argument.
+
+ A new DbComparisonExpression representing the less-than-or-equal-to comparison.
+ An expression that specifies the left argument.
+ An expression that specifies the right argument.
+ left or right is null.
+ No common result type that is both equality- and order-comparable exists between left and right.
+
+
+
+ Creates a new that determines whether the specified argument is null.
+
+ A new DbIsNullExpression with the specified argument.
+ An expression that specifies the argument.
+ argument is null.
+ argument has a collection result type.
+
+
+
+ Creates a new that compares the specified input string to the given pattern.
+
+ A new DbLikeExpression with the specified input, pattern and a null escape.
+ An expression that specifies the input string.
+ An expression that specifies the pattern string.
+ Argument or pattern is null.
+ Argument or pattern does not have a string result type.
+
+
+
+ Creates a new that compares the specified input string to the given pattern using the optional escape.
+
+ A new DbLikeExpression with the specified input, pattern and escape.
+ An expression that specifies the input string.
+ An expression that specifies the pattern string.
+ An optional expression that specifies the escape string.
+ argument, pattern or escape is null.
+ argument, pattern or escape does not have a string result type.
+
+
+
+ Creates a new that applies a cast operation to a polymorphic argument.
+
+ A new DbCastExpression with the specified argument and target type.
+ The argument to which the cast should be applied.
+ Type metadata that specifies the type to cast to.
+ Argument or toType is null.
+ The specified cast is not valid.
+
+
+
+ Creates a new .
+
+ A new DbTreatExpression with the specified argument and type.
+ An expression that specifies the instance.
+ Type metadata for the treat-as type.
+ argument or treatType is null.
+ treatType is not in the same type hierarchy as the result type of argument.
+
+
+
+ Creates a new that produces a set consisting of the elements of the given input set that are of the specified type.
+
+
+ A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of
+
+ .
+
+
+ A that specifies the input set.
+
+ Type metadata for the type that elements of the input set must have to be included in the resulting set.
+ argument or type is null.
+ argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument.
+
+
+
+ Creates a new that produces a set consisting of the elements of the given input set that are of exactly the specified type.
+
+
+ A new DbOfTypeExpression with the specified set argument and type, and an ExpressionKind of
+
+ .
+
+
+ An that specifies the input set.
+
+ Type metadata for the type that elements of the input set must match exactly to be included in the resulting set.
+ argument or type is null.
+ argument does not have a collection result type, or type is not a type in the same type hierarchy as the element type of the collection result type of argument.
+
+
+
+ Creates a new that determines whether the given argument is of the specified type or a subtype.
+
+ A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOf.
+ An expression that specifies the instance.
+ Type metadata that specifies the type that the instance's result type should be compared to.
+ argument or type is null.
+ type is not in the same type hierarchy as the result type of argument.
+
+
+
+ Creates a new expression that determines whether the given argument is of the specified type, and only that type (not a subtype).
+
+ A new DbIsOfExpression with the specified instance and type and DbExpressionKind IsOfOnly.
+ An expression that specifies the instance.
+ Type metadata that specifies the type that the instance's result type should be compared to.
+ argument or type is null.
+ type is not in the same type hierarchy as the result type of argument.
+
+
+
+ Creates a new that retrieves a specific Entity given a reference expression.
+
+ A new DbDerefExpression that retrieves the specified Entity.
+
+ An that provides the reference. This expression must have a reference Type.
+
+ argument is null.
+ argument does not have a reference result type.
+
+
+
+ Creates a new that retrieves the ref of the specified entity in structural form.
+
+ A new DbEntityRefExpression that retrieves a reference to the specified entity.
+ The expression that provides the entity. This expression must have an entity result type.
+ argument is null.
+ argument does not have an entity result type.
+
+
+
+ Creates a new that encodes a reference to a specific entity based on key values.
+
+ A new DbRefExpression that references the element with the specified key values in the given entity set.
+ The entity set in which the referenced element resides.
+
+ A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
+
+ entitySet is null, or keyValues is null or contains null.
+ The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
+
+
+
+ Creates a new that encodes a reference to a specific entity based on key values.
+
+ A new DbRefExpression that references the element with the specified key values in the given entity set.
+ The entity set in which the referenced element resides.
+
+ A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
+
+ entitySet is null, or keyValues is null or contains null.
+ The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
+
+
+
+ Creates a new that encodes a reference to a specific entity of a given type based on key values.
+
+ A new DbRefExpression that references the element with the specified key values in the given entity set.
+ The entity set in which the referenced element resides.
+ The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type.
+
+ A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
+
+ entitySet or entityType is null, or keyValues is null or contains null.
+ entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type.
+ The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
+
+
+
+ Creates a new that encodes a reference to a specific entity of a given type based on key values.
+
+ A new DbRefExpression that references the element with the specified key values in the given entity set.
+ The entity set in which the referenced element resides.
+ The specific type of the referenced entity. This must be an entity type from the same hierarchy as the entity set's element type.
+
+ A collection of s that provide the key values. These expressions must match (in number, type, and order) the key properties of the referenced entity type.
+
+ entitySet or entityType is null, or keyValues is null or contains null.
+ entityType is not from the same type hierarchy (a subtype, supertype, or the same type) as entitySet's element type.
+ The count of keyValues does not match the count of key members declared by the entitySet’s element type, or keyValues contains an expression with a result type that is not compatible with the type of the corresponding key member.
+
+
+
+ Creates a new that encodes a reference to a specific Entity based on key values.
+
+ A new DbRefExpression that references the element with the specified key values in the given Entity set.
+ The Entity set in which the referenced element resides.
+
+ A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type.
+
+ entitySet or keyRow is null.
+ keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type.
+
+
+
+ Creates a new that encodes a reference to a specific Entity based on key values.
+
+ A new DbRefExpression that references the element with the specified key values in the given Entity set.
+ The Entity set in which the referenced element resides.
+
+ A that constructs a record with columns that match (in number, type, and order) the Key properties of the referenced Entity type.
+
+ The type of the Entity that the reference should refer to.
+ entitySet, keyRow or entityType is null.
+ entityType is not in the same type hierarchy as the entity set's entity type, or keyRow does not have a record result type that matches the key properties of the referenced entity set's entity type.
+
+
+
+ Creates a new that retrieves the key values of the specified reference in structural form.
+
+ A new DbRefKeyExpression that retrieves the key values of the specified reference.
+ The expression that provides the reference. This expression must have a reference Type with an Entity element type.
+ argument is null.
+ argument does not have a reference result type.
+
+
+
+ Creates a new representing the navigation of a composition or association relationship.
+
+ A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance.
+ An expression that specifies the instance from which navigation should occur.
+ Metadata for the property that represents the end of the relationship from which navigation should occur.
+ Metadata for the property that represents the end of the relationship to which navigation should occur.
+ fromEnd, toEnd or navigateFrom is null.
+ fromEnd and toEnd are not declared by the same relationship type, or navigateFrom has a result type that is not compatible with the property type of fromEnd.
+
+
+
+ Creates a new representing the navigation of a composition or association relationship.
+
+ A new DbRelationshipNavigationExpression representing the navigation of the specified from and to relation ends of the specified relation type from the specified navigation source instance.
+ Metadata for the relation type that represents the relationship.
+ The name of the property of the relation type that represents the end of the relationship from which navigation should occur.
+ The name of the property of the relation type that represents the end of the relationship to which navigation should occur.
+ An expression the specifies the instance from which navigation should occur.
+ type, fromEndName, toEndName or navigateFrom is null.
+ type is not associated with this command tree's metadata workspace or navigateFrom is associated with a different command tree, or type does not declare a relation end property with name toEndName or fromEndName, or navigateFrom has a result type that is not compatible with the property type of the relation end property with name fromEndName.
+
+
+
+ Creates a new that removes duplicates from the given set argument.
+
+ A new DbDistinctExpression that represents the distinct operation applied to the specified set argument.
+ An expression that defines the set over which to perform the distinct operation.
+ argument is null.
+ argument does not have a collection result type.
+
+
+
+ Creates a new that converts a set into a singleton.
+
+ A DbElementExpression that represents the conversion of the set argument to a singleton.
+ An expression that specifies the input set.
+ argument is null.
+ argument does not have a collection result type.
+
+
+
+ Creates a new that determines whether the specified set argument is an empty set.
+
+ A new DbIsEmptyExpression with the specified argument.
+ An expression that specifies the input set.
+ argument is null.
+ argument does not have a collection result type.
+
+
+
+ Creates a new that computes the subtraction of the right set argument from the left set argument.
+
+ A new DbExceptExpression that represents the difference of the left argument from the right argument.
+ An expression that defines the left set argument.
+ An expression that defines the right set argument.
+ left or right is null.
+ No common collection result type exists between left and right.
+
+
+
+ Creates a new that computes the intersection of the left and right set arguments.
+
+ A new DbIntersectExpression that represents the intersection of the left and right arguments.
+ An expression that defines the left set argument.
+ An expression that defines the right set argument.
+ left or right is null.
+ No common collection result type exists between left or right.
+
+
+
+ Creates a new that computes the union of the left and right set arguments and does not remove duplicates.
+
+ A new DbUnionAllExpression that union, including duplicates, of the left and right arguments.
+ An expression that defines the left set argument.
+ An expression that defines the right set argument.
+ left or right is null.
+ No common collection result type with an equality-comparable element type exists between left and right.
+
+
+
+ Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output.
+
+ A new DbLimitExpression with the specified argument and count limit values that does not include tied results.
+ An expression that specifies the input collection.
+ An expression that specifies the limit value.
+ argument or count is null.
+ argument does not have a collection result type, or count does not have a result type that is equal or promotable to a 64-bit integer type.
+
+
+
+ Creates a new .
+
+ A new DbCaseExpression with the specified cases and default result.
+ A list of expressions that provide the conditional for of each case.
+ A list of expressions that provide the result of each case.
+ An expression that defines the result when no case is matched.
+ whenExpressions or thenExpressions is null or contains null, or elseExpression is null.
+ whenExpressions or thenExpressions is empty or whenExpressions contains an expression with a non-Boolean result type, or no common result type exists for all expressions in thenExpressions and elseExpression.
+
+
+
+ Creates a new representing the invocation of the specified function with the given arguments.
+
+ A new DbFunctionExpression representing the function invocation.
+ Metadata for the function to invoke.
+ A list of expressions that provide the arguments to the function.
+ function is null, or arguments is null or contains null.
+ The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type.
+
+
+
+ Creates a new representing the invocation of the specified function with the given arguments.
+
+ A new DbFunctionExpression representing the function invocation.
+ Metadata for the function to invoke.
+ Expressions that provide the arguments to the function.
+ function is null, or arguments is null or contains null.
+ The count of arguments does not equal the number of parameters declared by function, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding function parameter type.
+
+
+
+ Creates a new representing the application of the specified Lambda function to the given arguments.
+
+ A new Expression representing the Lambda function application.
+
+ A instance representing the Lambda function to apply.
+
+ A list of expressions that provide the arguments.
+ lambda or arguments is null.
+ The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type.
+
+
+
+ Creates a new representing the application of the specified Lambda function to the given arguments.
+
+ A new expression representing the Lambda function application.
+
+ A instance representing the Lambda function to apply.
+
+ Expressions that provide the arguments.
+ lambda or arguments is null.
+ The count of arguments does not equal the number of variables declared by lambda, or arguments contains an expression that has a result type that is not equal or promotable to the corresponding variable type.
+
+
+
+ Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance.
+
+ A new DbNewInstanceExpression with the specified type and arguments.
+ The type of the new instance.
+ Expressions that specify values of the new instances, interpreted according to the instance's type.
+ instanceType or arguments is null, or arguments contains null.
+ arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section).
+
+
+
+ Creates a new . If the type argument is a collection type, the arguments specify the elements of the collection. Otherwise the arguments are used as property or column values in the new instance.
+
+ A new DbNewInstanceExpression with the specified type and arguments.
+ The type of the new instance.
+ Expressions that specify values of the new instances, interpreted according to the instance's type.
+ instanceType or arguments is null, or arguments contains null.
+ arguments is empty or the result types of the contained expressions do not match the requirements of instanceType (as explained in the remarks section).
+
+
+
+ Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown.
+
+ A new DbNewInstanceExpression with the specified collection type and arguments.
+ A list of expressions that provide the elements of the collection.
+ elements is null, or contains null.
+ elements is empty or contains expressions for which no common result type exists.
+
+
+
+ Creates a new that constructs a collection containing the specified elements. The type of the collection is based on the common type of the elements. If no common element type exists an exception is thrown.
+
+ A new DbNewInstanceExpression with the specified collection type and arguments.
+ A list of expressions that provide the elements of the collection.
+ elements is null, or contains null..
+ elements is empty or contains expressions for which no common result type exists.
+
+
+
+ Creates a new that constructs an empty collection of the specified collection type.
+
+ A new DbNewInstanceExpression with the specified collection type and an empty Arguments list.
+ The type metadata for the collection to create
+ collectionType is null.
+ collectionType is not a collection type.
+
+
+
+ Creates a new that produces a row with the specified named columns and the given values, specified as expressions.
+
+ A new DbNewInstanceExpression that represents the construction of the row.
+ A list of string-DbExpression key-value pairs that defines the structure and values of the row.
+ columnValues is null or contains an element with a null column name or expression.
+ columnValues is empty, or contains a duplicate or invalid column name.
+
+
+
+ Creates a new representing the retrieval of the specified property.
+
+ A new DbPropertyExpression representing the property retrieval.
+ The instance from which to retrieve the property. May be null if the property is static.
+ Metadata for the property to retrieve.
+ propertyMetadata is null or instance is null and the property is not static.
+
+
+
+ Creates a new representing the retrieval of the specified navigation property.
+
+ A new DbPropertyExpression representing the navigation property retrieval.
+ The instance from which to retrieve the navigation property.
+ Metadata for the navigation property to retrieve.
+ navigationProperty or instance is null.
+
+
+
+ Creates a new representing the retrieval of the specified relationship end member.
+
+ A new DbPropertyExpression representing the relationship end member retrieval.
+ The instance from which to retrieve the relationship end member.
+ Metadata for the relationship end member to retrieve.
+ relationshipEnd is null or instance is null and the property is not static.
+
+
+
+ Creates a new representing the retrieval of the instance property with the specified name from the given instance.
+
+ A new DbPropertyExpression that represents the property retrieval.
+ The instance from which to retrieve the property.
+ The name of the property to retrieve.
+ propertyName is null or instance is null and the property is not static.
+ No property with the specified name is declared by the type of instance.
+
+
+
+ Creates a new representing setting a property to a value.
+
+ The property to be set.
+ The value to set the property to.
+ The newly created set clause.
+
+
+
+ Creates a new that determines whether the given predicate holds for all elements of the input set.
+
+ A new DbQuantifierExpression that represents the All operation.
+ An expression that specifies the input set.
+ A method representing a predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic.
+ source or predicate is null.
+ The expression produced by predicate is null.
+ source does not have a collection result type.
+ The expression produced by Predicate does not have a Boolean result type.
+
+
+
+ Creates a new that determines whether the specified set argument is non-empty.
+
+
+ A new applied to a new
+
+ with the specified argument.
+
+ An expression that specifies the input set.
+ source is null.
+ source does not have a collection result type.
+
+
+
+ Creates a new that determines whether the specified set argument is non-empty.
+
+
+ A new applied to a new
+
+ with the specified argument.
+
+ An expression that specifies the input set.
+ argument is null.
+ argument does not have a collection result type.
+
+
+
+ Creates a new that determines whether the given predicate holds for any element of the input set.
+
+ A new DbQuantifierExpression that represents the Any operation.
+ An expression that specifies the input set.
+ A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic.
+ source or predicate is null.
+ The expression produced by predicate is null.
+ source does not have a collection result type.
+ The expression produced by predicate does not have a Boolean result type.
+
+
+
+ Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included.
+
+
+ An new DbApplyExpression with the specified input and apply bindings and an
+
+ of CrossApply.
+
+
+ A that specifies the input set.
+
+ A method that specifies the logic to evaluate once for each member of the input set.
+ source or apply is null.
+ source does not have a collection result type.
+ The result of apply contains a name or expression that is null.
+ The result of apply contains a name or expression that is not valid in an expression binding.
+
+
+
+ Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set have an apply column value of null.
+
+
+ An new DbApplyExpression with the specified input and apply bindings and an
+
+ of OuterApply.
+
+
+ A that specifies the input set.
+
+ A method that specifies the logic to evaluate once for each member of the input set.
+ source or apply is null.
+ Source does not have a collection result type.
+ The result of apply contains a name or expression that is null.
+ The result of apply contains a name or expression that is not valid in an expression binding.
+
+
+
+ Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using FullOuterJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of FullOuterJoin, that represents the full outer join operation applied to the left and right input sets under the given join condition.
+
+
+ A that specifies the left set argument.
+
+
+ A that specifies the right set argument.
+
+ A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition.
+ left, right or joinCondition is null.
+ left or right does not have a collection result type.
+ The expression produced by joinCondition is null.
+ The expression produced by joinCondition does not have a Boolean result type.
+
+
+
+ Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using InnerJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under the given join condition.
+
+
+ A that specifies the left set argument.
+
+
+ A that specifies the right set argument.
+
+ A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition.
+ left, right or joinCondition is null.
+ left or right does not have a collection result type.
+ The expression produced by joinCondition is null.
+ The expression produced by joinCondition does not have a Boolean result type.
+
+
+
+ Creates a new that joins the sets specified by the left and right expressions, on the specified join condition, using LeftOuterJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of LeftOuterJoin, that represents the left outer join operation applied to the left and right input sets under the given join condition.
+
+
+ A that specifies the left set argument.
+
+
+ A that specifies the right set argument.
+
+ A method representing the condition on which to join. This method must produce an expression with a Boolean result type that provides the logic of the join condition.
+ left, right or joinCondition is null.
+ left or right does not have a collection result type.
+ The expression produced by joinCondition is null.
+ The expression produced by joinCondition does not have a Boolean result type.
+
+
+
+ Creates a new that joins the sets specified by the outer and inner expressions, on an equality condition between the specified outer and inner keys, using InnerJoin as the
+
+ .
+
+
+ A new DbJoinExpression, with an of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality.
+
+
+ A that specifies the outer set argument.
+
+
+ A that specifies the inner set argument.
+
+ A method that specifies how the outer key value should be derived from an element of the outer set.
+ A method that specifies how the inner key value should be derived from an element of the inner set.
+ outer, inner, outerKey or innerKey is null.
+ outer or inner does not have a collection result type.
+ The expression produced by outerKey or innerKey is null.
+ The expressions produced by outerKey and innerKey are not comparable for equality.
+
+
+
+ Creates a new that projects the specified selector over the sets specified by the outer and inner expressions, joined on an equality condition between the specified outer and inner keys, using InnerJoin as the
+
+ .
+
+
+ A new DbProjectExpression with the specified selector as its projection, and a new DbJoinExpression as its input. The input DbJoinExpression is created with an
+
+ of InnerJoin, that represents the inner join operation applied to the left and right input sets under a join condition that compares the outer and inner key values for equality.
+
+
+ A that specifies the outer set argument.
+
+
+ A that specifies the inner set argument.
+
+ A method that specifies how the outer key value should be derived from an element of the outer set.
+ A method that specifies how the inner key value should be derived from an element of the inner set.
+
+ A method that specifies how an element of the result set should be derived from elements of the inner and outer sets. This method must produce an instance of a type that is compatible with Join and can be resolved into a
+
+ . Compatibility requirements for TSelector are described in remarks.
+
+ The type of the selector .
+ outer, inner, outerKey, innerKey or selector is null.
+ outer or inner does not have a collection result type.
+ The expression produced by outerKey or innerKey is null.
+ The result of selector is null after conversion to DbExpression.
+ The expressions produced by outerKey and innerKey is not comparable for equality.
+ The result of Selector is not compatible with SelectMany.
+
+
+
+ Creates a new that sorts the given input set by the specified sort key, with ascending sort order and default collation.
+
+ A new DbSortExpression that represents the order-by operation.
+ An expression that specifies the input set.
+ A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ source or sortKey is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable result type.
+
+
+
+ Creates a new that sorts the given input set by the specified sort key, with ascending sort order and the specified collation.
+
+ A new DbSortExpression that represents the order-by operation.
+ An expression that specifies the input set.
+ A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ The collation to sort under.
+ source, sortKey or collation is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable string result type.
+ collation is empty or contains only space characters.
+
+
+
+ Creates a new that sorts the given input set by the specified sort key, with descending sort order and default collation.
+
+ A new DbSortExpression that represents the order-by operation.
+ An expression that specifies the input set.
+ A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ source or sortKey is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable result type.
+
+
+
+ Creates a new that sorts the given input set by the specified sort key, with descending sort order and the specified collation.
+
+ A new DbSortExpression that represents the order-by operation.
+ An expression that specifies the input set.
+ A method that specifies how to derive the sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ The collation to sort under.
+ source, sortKey or collation is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable string result type.
+ collation is empty or contains only space characters.
+
+
+
+ Creates a new that selects the specified expression over the given input set.
+
+ A new DbProjectExpression that represents the select operation.
+ An expression that specifies the input set.
+
+ A method that specifies how to derive the projected expression given a member of the input set. This method must produce an instance of a type that is compatible with Select and can be resolved into a
+
+ . Compatibility requirements for TProjection are described in remarks.
+
+ The method result type of projection.
+ source or projection is null.
+ The result of projection is null.
+
+
+
+ Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A
+
+ is then created that selects the apply column from each row, producing the overall collection of apply results.
+
+
+ An new DbProjectExpression that selects the apply column from a new DbApplyExpression with the specified input and apply bindings and an
+
+ of CrossApply.
+
+
+ A that specifies the input set.
+
+ A method that represents the logic to evaluate once for each member of the input set.
+ source or apply is null.
+ The expression produced by apply is null.
+ source does not have a collection result type.
+ The expression produced by apply does not have a collection type.
+
+
+
+ Creates a new that evaluates the given apply expression once for each element of a given input set, producing a collection of rows with corresponding input and apply columns. Rows for which apply evaluates to an empty set are not included. A
+
+ is then created that selects the specified selector over each row, producing the overall collection of results.
+
+
+ An new DbProjectExpression that selects the result of the given selector from a new DbApplyExpression with the specified input and apply bindings and an
+
+ of CrossApply.
+
+
+ A that specifies the input set.
+
+ A method that represents the logic to evaluate once for each member of the input set.
+
+ A method that specifies how an element of the result set should be derived given an element of the input and apply sets. This method must produce an instance of a type that is compatible with SelectMany and can be resolved into a
+
+ . Compatibility requirements for TSelector are described in remarks.
+
+ The method result type of selector.
+ source, apply or selector is null.
+ The expression produced by apply is null.
+ The result of selector is null on conversion to DbExpression.
+ source does not have a collection result type.
+ The expression produced by apply does not have a collection type. does not have a collection type.
+
+
+
+ Creates a new that skips the specified number of elements from the given sorted input set.
+
+ A new DbSkipExpression that represents the skip operation.
+
+ A that specifies the sorted input set.
+
+ An expression the specifies how many elements of the ordered set to skip.
+ argument or count is null.
+
+ count is not or
+
+ or has a result type that is not equal or promotable to a 64-bit integer type.
+
+
+
+
+ Creates a new that restricts the number of elements in the Argument collection to the specified count Limit value. Tied results are not included in the output.
+
+ A new DbLimitExpression with the specified argument and count limit values that does not include tied results.
+ An expression that specifies the input collection.
+ An expression that specifies the limit value.
+ argument or count is null.
+ argument does not have a collection result type, count does not have a result type that is equal or promotable to a 64-bit integer type.
+
+
+
+ Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with default collation.
+
+ A new DbSortExpression that represents the new overall order-by operation.
+ A DbSortExpression that specifies the ordered input set.
+ A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ source or sortKey is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ sortKey does not have an order-comparable result type.
+
+
+
+ Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in ascending sort order and with the specified collation.
+
+ A new DbSortExpression that represents the new overall order-by operation.
+ A DbSortExpression that specifies the ordered input set.
+ A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ The collation to sort under.
+ source, sortKey or collation is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable string result type.
+ collation is empty or contains only space characters.
+
+
+
+ Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with default collation.
+
+ A new DbSortExpression that represents the new overall order-by operation.
+ A DbSortExpression that specifies the ordered input set.
+ A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ source or sortKey is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable result type.
+
+
+
+ Creates a new that with a sort order that includes the sort order of the given order input set together with the specified sort key in descending sort order and with the specified collation.
+
+ A new DbSortExpression that represents the new overall order-by operation.
+ A DbSortExpression that specifies the ordered input set.
+ A method that specifies how to derive the additional sort key expression given a member of the input set. This method must produce an expression with an order-comparable result type that provides the sort key definition.
+ The collation to sort under.
+ source, sortKey or collation is null.
+ The expression produced by sortKey is null.
+ source does not have a collection result type.
+ The expression produced by sortKey does not have an order-comparable string result type.
+ collation is empty or contains only space characters.
+
+
+
+ Creates a new that filters the elements in the given input set using the specified predicate.
+
+ A new DbQuantifierExpression that represents the Any operation.
+ An expression that specifies the input set.
+ A method representing the predicate to evaluate for each member of the input set. This method must produce an expression with a Boolean result type that provides the predicate logic.
+ source or predicate is null.
+ The expression produced by predicate is null.
+ The expression produced by predicate does not have a Boolean result type.
+
+
+
+ Creates a new that computes the union of the left and right set arguments with duplicates removed.
+
+ A new DbExpression that computes the union, without duplicates, of the left and right arguments.
+ An expression that defines the left set argument.
+ An expression that defines the right set argument.
+ left or right is null.
+ No common collection result type with an equality-comparable element type exists between left and right.
+
+
+
+ Provides an API to construct s that invoke canonical EDM functions, and allows that API to be accessed as extension methods on the expression type itself.
+
+
+
+
+ Creates a that invokes the canonical 'Avg' function over the specified collection. The result type of the expression is the same as the element type of the collection.
+
+ A new DbFunctionExpression that produces the average value.
+ An expression that specifies the collection from which the average value should be computed.
+
+
+
+ Creates a that invokes the canonical 'Count' function over the specified collection. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that produces the count value.
+ An expression that specifies the collection over which the count value should be computed.
+
+
+
+ Creates a that invokes the canonical 'BigCount' function over the specified collection. The result type of the expression is Edm.Int64.
+
+ A new DbFunctionExpression that produces the count value.
+ An expression that specifies the collection over which the count value should be computed.
+
+
+
+ Creates a that invokes the canonical 'Max' function over the specified collection. The result type of the expression is the same as the element type of the collection.
+
+ A new DbFunctionExpression that produces the maximum value.
+ An expression that specifies the collection from which the maximum value should be retrieved
+
+
+
+ Creates a that invokes the canonical 'Min' function over the specified collection. The result type of the expression is the same as the element type of the collection.
+
+ A new DbFunctionExpression that produces the minimum value.
+ An expression that specifies the collection from which the minimum value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Sum' function over the specified collection. The result type of the expression is the same as the element type of the collection.
+
+ A new DbFunctionExpression that produces the sum.
+ An expression that specifies the collection from which the sum should be computed.
+
+
+
+ Creates a that invokes the canonical 'StDev' function over the non-null members of the specified collection. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that produces the standard deviation value over non-null members of the collection.
+ An expression that specifies the collection for which the standard deviation should be computed.
+
+
+
+ Creates a that invokes the canonical 'StDevP' function over the population of the specified collection. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that produces the standard deviation value.
+ An expression that specifies the collection for which the standard deviation should be computed.
+
+
+
+ Creates a that invokes the canonical 'Var' function over the non-null members of the specified collection. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that produces the statistical variance value for the non-null members of the collection.
+ An expression that specifies the collection for which the statistical variance should be computed.
+
+
+
+ Creates a that invokes the canonical 'VarP' function over the population of the specified collection. The result type of the expression Edm.Double.
+
+ A new DbFunctionExpression that produces the statistical variance value.
+ An expression that specifies the collection for which the statistical variance should be computed.
+
+
+
+ Creates a that invokes the canonical 'Concat' function with the specified arguments, which must each have a string result type. The result type of the expression is string.
+
+ A new DbFunctionExpression that produces the concatenated string.
+ An expression that specifies the string that should appear first in the concatenated result string.
+ An expression that specifies the string that should appear second in the concatenated result string.
+
+
+
+ Creates a that invokes the canonical 'Contains' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether or not searchedForString occurs within searchedString.
+ An expression that specifies the string to search for any occurrence of searchedForString.
+ An expression that specifies the string to search for in searchedString.
+
+
+
+ Creates a that invokes the canonical 'EndsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument ends with suffix.
+ An expression that specifies the string that is searched at the end for string suffix.
+ An expression that specifies the target string that is searched for at the end of stringArgument.
+
+
+
+ Creates a that invokes the canonical 'IndexOf' function with the specified arguments, which must each have a string result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the first index of stringToFind in searchString.
+ An expression that specifies the string to search for stringToFind.
+ An expression that specifies the string to locate within searchString should be checked.
+
+
+
+ Creates a that invokes the canonical 'Left' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string.
+
+ A new DbFunctionExpression that returns the leftmost substring of length from stringArgument.
+ An expression that specifies the string from which to extract the leftmost substring.
+ An expression that specifies the length of the leftmost substring to extract from stringArgument.
+
+
+
+ Creates a that invokes the canonical 'Length' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the length of stringArgument.
+ An expression that specifies the string for which the length should be computed.
+
+
+
+ Creates a that invokes the canonical 'Replace' function with the specified arguments, which must each have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression than returns a new string based on stringArgument where every occurrence of toReplace is replaced by replacement.
+ An expression that specifies the string in which to perform the replacement operation.
+ An expression that specifies the string that is replaced.
+ An expression that specifies the replacement string.
+
+
+
+ Creates a that invokes the canonical 'Reverse' function with the specified argument, which must have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression that produces the reversed value of stringArgument.
+ An expression that specifies the string to reverse.
+
+
+
+ Creates a that invokes the canonical 'Right' function with the specified arguments, which must have a string and integer numeric result type. The result type of the expression is string.
+
+ A new DbFunctionExpression that returns the rightmost substring of length from stringArgument.
+ An expression that specifies the string from which to extract the rightmost substring.
+ An expression that specifies the length of the rightmost substring to extract from stringArgument.
+
+
+
+ Creates a that invokes the canonical 'StartsWith' function with the specified arguments, which must each have a string result type. The result type of the expression is Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether or not stringArgument starts with prefix.
+ An expression that specifies the string that is searched at the start for string prefix.
+ An expression that specifies the target string that is searched for at the start of stringArgument.
+
+
+
+ Creates a that invokes the canonical 'Substring' function with the specified arguments, which must have a string and integer numeric result types. The result type of the expression is string.
+
+ A new DbFunctionExpression that returns the substring of length from stringArgument starting at start.
+ An expression that specifies the string from which to extract the substring.
+ An expression that specifies the starting index from which the substring should be taken.
+ An expression that specifies the length of the substring.
+
+
+
+ Creates a that invokes the canonical 'ToLower' function with the specified argument, which must have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression that returns value of stringArgument converted to lower case.
+ An expression that specifies the string that should be converted to lower case.
+
+
+
+ Creates a that invokes the canonical 'ToUpper' function with the specified argument, which must have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression that returns value of stringArgument converted to upper case.
+ An expression that specifies the string that should be converted to upper case.
+
+
+
+ Creates a that invokes the canonical 'Trim' function with the specified argument, which must have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression that returns value of stringArgument with leading and trailing space removed.
+ An expression that specifies the string from which leading and trailing space should be removed.
+
+
+
+ Creates a that invokes the canonical 'RTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression that returns value of stringArgument with trailing space removed.
+ An expression that specifies the string from which trailing space should be removed.
+
+
+
+ Creates a that invokes the canonical 'LTrim' function with the specified argument, which must have a string result type. The result type of the expression is also string.
+
+ A new DbFunctionExpression that returns value of stringArgument with leading space removed.
+ An expression that specifies the string from which leading space should be removed.
+
+
+
+ Creates a that invokes the canonical 'Year' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer year value from dateValue.
+ An expression that specifies the value from which the year should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Month' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer month value from dateValue.
+ An expression that specifies the value from which the month should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Day' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer day value from dateValue.
+ An expression that specifies the value from which the day should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'DayOfYear' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer day of year value from dateValue.
+ An expression that specifies the value from which the day within the year should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Hour' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer hour value from timeValue.
+ An expression that specifies the value from which the hour should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Minute' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer minute value from timeValue.
+ An expression that specifies the value from which the minute should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Second' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer second value from timeValue.
+ An expression that specifies the value from which the second should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Millisecond' function with the specified argument, which must have a DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer millisecond value from timeValue.
+ An expression that specifies the value from which the millisecond should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'GetTotalOffsetMinutes' function with the specified argument, which must have a DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of minutes dateTimeOffsetArgument is offset from GMT.
+ An expression that specifies the DateTimeOffset value from which the minute offset from GMT should be retrieved.
+
+
+
+ Creates a that gets local DateTime using CAST expressions from specified argument, which must have a DateTimeOffset result type. The result type of the expression is DateTime.
+
+ A new DbFunctionExpression that casts DATETIMEOFFSET to DATETIME2, discarding offset part
+ An expression that specifies the DateTimeOffset value.
+
+
+
+ Creates a that gets UTC DateTime using CAST expressions from specified argument, which must have a DateTimeOffset result type. The result type of the expression is DateTime.
+
+ A new DbFunctionExpression that casts DATETIMEOFFSET to Utc DATETIME2
+ An expression that specifies the DateTimeOffset value.
+
+
+
+ Creates a that invokes the canonical 'CurrentDateTime' function.
+
+ A new DbFunctionExpression that returns the current date and time as an Edm.DateTime instance.
+
+
+
+ Creates a that invokes the canonical 'CurrentDateTimeOffset' function.
+
+ A new DbFunctionExpression that returns the current date and time as an Edm.DateTimeOffset instance.
+
+
+
+ Creates a that invokes the canonical 'CurrentUtcDateTime' function.
+
+ A new DbFunctionExpression that returns the current UTC date and time as an Edm.DateTime instance.
+
+
+
+ Creates a that invokes the canonical 'TruncateTime' function with the specified argument, which must have a DateTime or DateTimeOffset result type. The result type of the expression is the same as the result type of dateValue.
+
+ A new DbFunctionExpression that returns the value of dateValue with time set to zero.
+ An expression that specifies the value for which the time portion should be truncated.
+
+
+
+ Creates a that invokes the canonical 'CreateDateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTime.
+
+ A new DbFunctionExpression that returns a new DateTime based on the specified values.
+ An expression that provides the year value for the new DateTime instance.
+ An expression that provides the month value for the new DateTime instance.
+ An expression that provides the day value for the new DateTime instance.
+ An expression that provides the hour value for the new DateTime instance.
+ An expression that provides the minute value for the new DateTime instance.
+ An expression that provides the second value for the new DateTime instance.
+
+
+
+ Creates a that invokes the canonical 'CreateDateTimeOffset' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.DateTimeOffset.
+
+ A new DbFunctionExpression that returns a new DateTimeOffset based on the specified values.
+ An expression that provides the year value for the new DateTimeOffset instance.
+ An expression that provides the month value for the new DateTimeOffset instance.
+ An expression that provides the day value for the new DateTimeOffset instance.
+ An expression that provides the hour value for the new DateTimeOffset instance.
+ An expression that provides the minute value for the new DateTimeOffset instance.
+ An expression that provides the second value for the new DateTimeOffset instance.
+ An expression that provides the number of minutes in the time zone offset value for the new DateTimeOffset instance.
+
+
+
+ Creates a that invokes the canonical 'CreateTime' function with the specified arguments. second must have a result type of Edm.Double, while all other arguments must have a result type of Edm.Int32. The result type of the expression is Edm.Time.
+
+ A new DbFunctionExpression that returns a new Time based on the specified values.
+ An expression that provides the hour value for the new DateTime instance.
+ An expression that provides the minute value for the new DateTime instance.
+ An expression that provides the second value for the new DateTime instance.
+
+
+
+ Creates a that invokes the canonical 'AddYears' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue.
+
+ A new DbFunctionExpression that adds the number of years specified by addValue to the value specified by dateValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of years to add to dateValue.
+
+
+
+ Creates a that invokes the canonical 'AddMonths' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue.
+
+ A new DbFunctionExpression that adds the number of months specified by addValue to the value specified by dateValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of months to add to dateValue.
+
+
+
+ Creates a that invokes the canonical 'AddDays' function with the specified arguments, which must have DateTime or DateTimeOffset and integer result types. The result type of the expression is the same as the result type of dateValue.
+
+ A new DbFunctionExpression that adds the number of days specified by addValue to the value specified by dateValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of days to add to dateValue.
+
+
+
+ Creates a that invokes the canonical 'AddHours' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
+
+ A new DbFunctionExpression that adds the number of hours specified by addValue to the value specified by timeValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of hours to add to timeValue.
+
+
+
+ Creates a that invokes the canonical 'AddMinutes' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
+
+ A new DbFunctionExpression that adds the number of minutes specified by addValue to the value specified by timeValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of minutes to add to timeValue.
+
+
+
+ Creates a that invokes the canonical 'AddSeconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
+
+ A new DbFunctionExpression that adds the number of seconds specified by addValue to the value specified by timeValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of seconds to add to timeValue.
+
+
+
+ Creates a that invokes the canonical 'AddMilliseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
+
+ A new DbFunctionExpression that adds the number of milliseconds specified by addValue to the value specified by timeValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of milliseconds to add to timeValue.
+
+
+
+ Creates a that invokes the canonical 'AddMicroseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
+
+ A new DbFunctionExpression that adds the number of microseconds specified by addValue to the value specified by timeValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of microseconds to add to timeValue.
+
+
+
+ Creates a that invokes the canonical 'AddNanoseconds' function with the specified arguments, which must have DateTime, DateTimeOffset or Time, and integer result types. The result type of the expression is the same as the result type of timeValue.
+
+ A new DbFunctionExpression that adds the number of nanoseconds specified by addValue to the value specified by timeValue.
+ An expression that specifies the value to which addValueshould be added.
+ An expression that specifies the number of nanoseconds to add to timeValue.
+
+
+
+ Creates a that invokes the canonical 'DiffYears' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of years that is the difference between dateValue1 and dateValue2.
+ An expression that specifies the first date value argument.
+ An expression that specifies the second date value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffMonths' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of months that is the difference between dateValue1 and dateValue2.
+ An expression that specifies the first date value argument.
+ An expression that specifies the second date value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffDays' function with the specified arguments, which must each have DateTime or DateTimeOffset result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of days that is the difference between dateValue1 and dateValue2.
+ An expression that specifies the first date value argument.
+ An expression that specifies the second date value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffHours' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of hours that is the difference between timeValue1 and timeValue2.
+ An expression that specifies the first time value argument.
+ An expression that specifies the second time value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffMinutes' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of minutes that is the difference between timeValue1 and timeValue2.
+ An expression that specifies the first time value argument.
+ An expression that specifies the second time value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffSeconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of seconds that is the difference between timeValue1 and timeValue2.
+ An expression that specifies the first time value argument.
+ An expression that specifies the second time value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffMilliseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of milliseconds that is the difference between timeValue1 and timeValue2.
+ An expression that specifies the first time value argument.
+ An expression that specifies the second time value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffMicroseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of microseconds that is the difference between timeValue1 and timeValue2.
+ An expression that specifies the first time value argument.
+ An expression that specifies the second time value argument.
+
+
+
+ Creates a that invokes the canonical 'DiffNanoseconds' function with the specified arguments, which must each have DateTime, DateTimeOffset or Time result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the number of nanoseconds that is the difference between timeValue1 and timeValue2.
+ An expression that specifies the first time value argument.
+ An expression that specifies the second time value argument.
+
+
+
+ Creates a that invokes the canonical 'Round' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value.
+
+ A new DbFunctionExpression that rounds the specified argument to the nearest integer value.
+ An expression that specifies the numeric value to round.
+
+
+
+ Creates a that invokes the canonical 'Round' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value.
+
+ A new DbFunctionExpression that rounds the specified argument to the nearest integer value, with precision as specified by digits.
+ An expression that specifies the numeric value to round.
+ An expression that specifies the number of digits of precision to use when rounding.
+
+
+
+ Creates a that invokes the canonical 'Floor' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value.
+
+ A new DbFunctionExpression that returns the largest integer value not greater than value.
+ An expression that specifies the numeric value.
+
+
+
+ Creates a that invokes the canonical 'Ceiling' function with the specified argument, which must each have a single, double or decimal result type. The result type of the expression is the same as the result type of value.
+
+ A new DbFunctionExpression that returns the smallest integer value not less than the value.
+ An expression that specifies the numeric value.
+
+
+
+ Creates a that invokes the canonical 'Abs' function with the specified argument, which must each have a numeric result type. The result type of the expression is the same as the result type of value.
+
+ A new DbFunctionExpression that returns the absolute value of value.
+ An expression that specifies the numeric value.
+
+
+
+ Creates a that invokes the canonical 'Truncate' function with the specified arguments, which must have a single, double or decimal, and integer result types. The result type of the expression is the same as the result type of value.
+
+ A new DbFunctionExpression that truncates the specified argument to the nearest integer value, with precision as specified by digits.
+ An expression that specifies the numeric value to truncate.
+ An expression that specifies the number of digits of precision to use when truncating.
+
+
+
+ Creates a that invokes the canonical 'Power' function with the specified arguments, which must have numeric result types. The result type of the expression is the same as the result type of baseArgument.
+
+ A new DbFunctionExpression that returns the value of baseArgument raised to the power specified by exponent.
+ An expression that specifies the numeric value to raise to the given power.
+ An expression that specifies the power to which baseArgument should be raised.
+
+
+
+ Creates a that invokes the canonical 'BitwiseAnd' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments.
+
+ A new DbFunctionExpression that returns the value produced by performing the bitwise AND of value1 and value2.
+ An expression that specifies the first operand.
+ An expression that specifies the second operand.
+
+
+
+ Creates a that invokes the canonical 'BitwiseOr' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments.
+
+ A new DbFunctionExpression that returns the value produced by performing the bitwise OR of value1 and value2.
+ An expression that specifies the first operand.
+ An expression that specifies the second operand.
+
+
+
+ Creates a that invokes the canonical 'BitwiseNot' function with the specified argument, which must have an integer numeric result type. The result type of the expression is the same as the type of the arguments.
+
+ A new DbFunctionExpression that returns the value produced by performing the bitwise NOT of value.
+ An expression that specifies the first operand.
+
+
+
+ Creates a that invokes the canonical 'BitwiseXor' function with the specified arguments, which must have the same integer numeric result type. The result type of the expression is the same as the type of the arguments.
+
+ A new DbFunctionExpression that returns the value produced by performing the bitwise XOR (exclusive OR) of value1 and value2.
+ An expression that specifies the first operand.
+ An expression that specifies the second operand.
+
+
+
+ Creates a that invokes the canonical 'NewGuid' function.
+
+ A new DbFunctionExpression that returns a new GUID value.
+
+
+
+ Provides an API to construct s that invoke hierarchyid realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself.
+
+
+
+
+ Creates a that invokes the canonical 'HierarchyIdParse' function with the
+ specified argument, which must have a string result type.
+ The result type of the expression is Edm.HierarchyId.
+
+ An expression that provides the canonical representation of the hierarchyid value.
+ A new DbFunctionExpression that returns a new hierarchyid value based on the specified value.
+
+
+ is null.
+
+
+ No overload of the canonical 'HierarchyIdParse' function accept an argument with the result type of
+
+ .
+
+
+
+
+ Creates a that invokes the canonical 'HierarchyIdGetRoot' function.
+ The result type of the expression is Edm.HierarchyId.
+
+ A new DbFunctionExpression that returns a new root hierarchyid value.
+
+
+
+ Creates a that invokes the canonical 'GetAncestor' function with the
+ specified argument, which must have an Int32 result type.
+ The result type of the expression is Edm.HierarchyId.
+
+ An expression that specifies the hierarchyid value.
+ An expression that provides an integer value.
+ A new DbFunctionExpression that returns a hierarchyid.
+
+
+ or
+
+ is null.
+
+
+ No overload of the canonical 'GetAncestor' function accept an argument with the result type of
+
+ .
+
+
+
+
+ Creates a that invokes the canonical 'GetDescendant' function with the
+ specified argument, which must have a HierarchyId result type.
+ The result type of the expression is Edm.HierarchyId.
+
+ An expression that specifies the hierarchyid value.
+ An expression that provides a hierarchyid value.
+ An expression that provides a hierarchyid value.
+ A new DbFunctionExpression that returns a hierarchyid.
+
+
+ or
+
+ or
+
+ is null.
+
+
+ No overload of the canonical 'GetDescendant' function accept an argument with the result type of
+
+ and
+
+ .
+
+
+
+
+ Creates a that invokes the canonical 'GetLevel' function.
+ The result type of the expression is Int32.
+
+ An expression that specifies the hierarchyid value.
+ A new DbFunctionExpression that returns the level of the given hierarchyid.
+
+
+ is null.
+
+
+
+
+ Creates a that invokes the canonical 'IsDescendantOf' function with the
+ specified argument, which must have a HierarchyId result type.
+ The result type of the expression is Int32.
+
+ An expression that specifies the hierarchyid value.
+ An expression that provides a hierarchyid value.
+ A new DbFunctionExpression that returns an integer value.
+
+
+ or
+
+ is null.
+
+
+ No overload of the canonical 'IsDescendantOf' function accept an argument with the result type of
+
+ .
+
+
+
+
+ Creates a that invokes the canonical 'GetReparentedValue' function with the
+ specified arguments, which must have a HierarchyId result type.
+ The result type of the expression is Edm.HierarchyId.
+
+ An expression that specifies the hierarchyid value.
+ An expression that provides a hierarchyid value.
+ An expression that provides a hierarchyid value.
+ A new DbFunctionExpression that returns a hierarchyid.
+
+
+ or
+
+ or
+
+ is null.
+
+
+ No overload of the canonical 'GetReparentedValue' function accept an argument with the result type of
+
+ and
+
+ .
+
+
+
+
+ Provides a constructor-like means of calling
+
+ .
+
+
+
+
+ Initializes a new instance of the class with the specified first column value and optional successive column values.
+
+ A key-value pair that provides the first column in the new row instance. (required)
+ A key-value pairs that provide any subsequent columns in the new row instance. (optional)
+
+
+
+ Creates a new that constructs a new row based on the columns contained in this Row instance.
+
+ A new DbNewInstanceExpression that constructs a row with the same column names and DbExpression values as this Row instance.
+
+
+
+ Converts the given Row instance into an instance of
+
+ The Row instance.
+ A DbExpression based on the Row instance
+
+
+ is null.
+
+
+
+
+
+ Provides an API to construct s that invoke spatial realted canonical EDM functions, and, where appropriate, allows that API to be accessed as extension methods on the expression type itself.
+
+
+
+
+ Creates a that invokes the canonical 'GeometryFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry. Its value has the default coordinate system id (SRID) of the underlying provider.
+
+ A new DbFunctionExpression that returns a new geometry value based on the specified value.
+ An expression that provides the well known text representation of the geometry value.
+
+
+
+ Creates a that invokes the canonical 'GeometryFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry value based on the specified values.
+ An expression that provides the well known text representation of the geometry value.
+ An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryPointFromText' function with the specified arguments. pointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry point value based on the specified values.
+ An expression that provides the well known text representation of the geometry point value.
+ An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry line value based on the specified values.
+ An expression that provides the well known text representation of the geometry line value.
+ An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry polygon value based on the specified values.
+ An expression that provides the well known text representation of the geometry polygon value.
+ An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values.
+ An expression that provides the well known text representation of the geometry multi-point value.
+ An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values.
+ An expression that provides the well known text representation of the geometry multi-line value.
+ An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values.
+ An expression that provides the well known text representation of the geometry multi-polygon value.
+ An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryCollectionFromText' function with the specified arguments. geometryCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry collection value based on the specified values.
+ An expression that provides the well known text representation of the geometry collection value.
+ An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry value based on the specified binary value.
+ An expression that provides the well known binary representation of the geometry value.
+
+
+
+ Creates a that invokes the canonical 'GeometryFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry value based on the specified values.
+ An expression that provides the well known binary representation of the geometry value.
+ An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry point value based on the specified values.
+ An expression that provides the well known binary representation of the geometry point value.
+ An expression that provides the coordinate system id (SRID) of the geometry point value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry line value based on the specified values.
+ An expression that provides the well known binary representation of the geometry line value.
+ An expression that provides the coordinate system id (SRID) of the geometry line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry polygon value based on the specified values.
+ An expression that provides the well known binary representation of the geometry polygon value.
+ An expression that provides the coordinate system id (SRID) of the geometry polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry multi-point value based on the specified values.
+ An expression that provides the well known binary representation of the geometry multi-point value.
+ An expression that provides the coordinate system id (SRID) of the geometry multi-point value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry multi-line value based on the specified values.
+ An expression that provides the well known binary representation of the geometry multi-line value.
+ An expression that provides the coordinate system id (SRID) of the geometry multi-line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry multi-polygon value based on the specified values.
+ An expression that provides the well known binary representation of the geometry multi-polygon value.
+ An expression that provides the coordinate system id (SRID) of the geometry multi-polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryCollectionFromBinary' function with the specified arguments. geometryCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry collection value based on the specified values.
+ An expression that provides the well known binary representation of the geometry collection value.
+ An expression that provides the coordinate system id (SRID) of the geometry collection value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeometryFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry value based on the specified value with the default coordinate system id (SRID) of the underlying provider.
+ An expression that provides the Geography Markup Language (GML) representation of the geometry value.
+
+
+
+ Creates a that invokes the canonical 'GeometryFromGml' function with the specified arguments. geometryMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a new geometry value based on the specified values.
+ An expression that provides the Geography Markup Language (GML) representation of the geometry value.
+ An expression that provides the coordinate system id (SRID) of the geometry value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyFromText' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography. Its value has the default coordinate system id (SRID) of the underlying provider.
+
+ A new DbFunctionExpression that returns a new geography value based on the specified value.
+ An expression that provides the well known text representation of the geography value.
+
+
+
+ Creates a that invokes the canonical 'GeographyFromText' function with the specified arguments. wellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography value based on the specified values.
+ An expression that provides the well known text representation of the geography value.
+ An expression that provides the coordinate system id (SRID) of the geography value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyPointFromText' function with the specified arguments.
+
+ The canonical 'GeographyPointFromText' function.
+ An expression that provides the well-known text representation of the geography point value.
+ An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownTextValue.
+
+
+
+ Creates a that invokes the canonical 'GeographyLineFromText' function with the specified arguments. lineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography line value based on the specified values.
+ An expression that provides the well known text representation of the geography line value.
+ An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyPolygonFromText' function with the specified arguments. polygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography polygon value based on the specified values.
+ An expression that provides the well known text representation of the geography polygon value.
+ An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyMultiPointFromText' function with the specified arguments. multiPointWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography multi-point value based on the specified values.
+ An expression that provides the well known text representation of the geography multi-point value.
+ An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyMultiLineFromText' function with the specified arguments. multiLineWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography multi-line value based on the specified values.
+ An expression that provides the well known text representation of the geography multi-line value.
+ An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyMultiPolygonFromText' function with the specified arguments. multiPolygonWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values.
+ An expression that provides the well known text representation of the geography multi-polygon value.
+ An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyCollectionFromText' function with the specified arguments. geographyCollectionWellKnownText must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography collection value based on the specified values.
+ An expression that provides the well known text representation of the geography collection value.
+ An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyFromBinary' function with the specified argument, which must have a binary result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography value based on the specified binary value.
+ An expression that provides the well known binary representation of the geography value.
+
+
+
+ Creates a that invokes the canonical 'GeographyFromBinary' function with the specified arguments. wellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography value based on the specified values.
+ An expression that provides the well known binary representation of the geography value.
+ An expression that provides the coordinate system id (SRID) of the geography value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyPointFromBinary' function with the specified arguments. pointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography point value based on the specified values.
+ An expression that provides the well known binary representation of the geography point value.
+ An expression that provides the coordinate system id (SRID) of the geography point value's coordinate systempointWellKnownBinaryValue.
+
+
+
+ Creates a that invokes the canonical 'GeographyLineFromBinary' function with the specified arguments. lineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography line value based on the specified values.
+ An expression that provides the well known binary representation of the geography line value.
+ An expression that provides the coordinate system id (SRID) of the geography line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyPolygonFromBinary' function with the specified arguments. polygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography polygon value based on the specified values.
+ An expression that provides the well known binary representation of the geography polygon value.
+ An expression that provides the coordinate system id (SRID) of the geography polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyMultiPointFromBinary' function with the specified arguments. multiPointWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography multi-point value based on the specified values.
+ An expression that provides the well known binary representation of the geography multi-point value.
+ An expression that provides the coordinate system id (SRID) of the geography multi-point value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyMultiLineFromBinary' function with the specified arguments. multiLineWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography multi-line value based on the specified values.
+ An expression that provides the well known binary representation of the geography multi-line value.
+ An expression that provides the coordinate system id (SRID) of the geography multi-line value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyMultiPolygonFromBinary' function with the specified arguments. multiPolygonWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography multi-polygon value based on the specified values.
+ An expression that provides the well known binary representation of the geography multi-polygon value.
+ An expression that provides the coordinate system id (SRID) of the geography multi-polygon value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyCollectionFromBinary' function with the specified arguments. geographyCollectionWellKnownBinaryValue must have a binary result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography collection value based on the specified values.
+ An expression that provides the well known binary representation of the geography collection value.
+ An expression that provides the coordinate system id (SRID) of the geography collection value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'GeographyFromGml' function with the specified argument, which must have a string result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography value based on the specified value with the default coordinate system id (SRID) of the underlying provider.
+ An expression that provides the Geography Markup Language (GML) representation of the geography value.
+
+
+
+ Creates a that invokes the canonical 'GeographyFromGml' function with the specified arguments. geographyMarkup must have a string result type, while coordinateSystemId must have an integer numeric result type. The result type of the expression is Edm.Geography.
+
+ A new DbFunctionExpression that returns a new geography value based on the specified values.
+ An expression that provides the Geography Markup Language (GML) representation of the geography value.
+ An expression that provides the coordinate system id (SRID) of the geography value's coordinate system.
+
+
+
+ Creates a that invokes the canonical 'CoordinateSystemId' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the integer SRID value from spatialValue.
+ An expression that specifies the value from which the coordinate system id (SRID) should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'SpatialTypeName' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String.
+
+ A new DbFunctionExpression that returns the string Geometry Type name from spatialValue.
+ An expression that specifies the value from which the Geometry Type name should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'SpatialDimension' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns the Dimension value from spatialValue.
+ An expression that specifies the value from which the Dimension value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'SpatialEnvelope' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns the minimum bounding box for geometryValue.
+ An expression that specifies the value from which the Envelope value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'AsBinary' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Binary.
+
+ A new DbFunctionExpression that returns the well known binary representation of spatialValue.
+ An expression that specifies the spatial value from which the well known binary representation should be produced.
+
+
+
+ Creates a that invokes the canonical 'AsGml' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String.
+
+ A new DbFunctionExpression that returns the Geography Markup Language (GML) representation of spatialValue.
+ An expression that specifies the spatial value from which the Geography Markup Language (GML) representation should be produced.
+
+
+
+ Creates a that invokes the canonical 'AsText' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.String.
+
+ A new DbFunctionExpression that returns the well known text representation of spatialValue.
+ An expression that specifies the spatial value from which the well known text representation should be produced.
+
+
+
+ Creates a that invokes the canonical 'IsEmptySpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue is empty.
+ An expression that specifies the spatial value from which the IsEmptySpatial value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'IsSimpleGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is a simple geometry.
+ The geometry value.
+
+
+
+ Creates a that invokes the canonical 'SpatialBoundary' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns the boundary for geometryValue.
+ An expression that specifies the geometry value from which the SpatialBoundary value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'IsValidGeometry' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue is valid.
+ An expression that specifies the geometry value which should be tested for spatial validity.
+
+
+
+ Creates a that invokes the canonical 'SpatialEquals' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are equal.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value that should be compared with spatialValue1 for equality.
+
+
+
+ Creates a that invokes the canonical 'SpatialDisjoint' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 are spatially disjoint.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value that should be compared with spatialValue1 for disjointness.
+
+
+
+ Creates a that invokes the canonical 'SpatialIntersects' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether spatialValue1 and spatialValue2 intersect.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value that should be compared with spatialValue1 for intersection.
+
+
+
+ Creates a that invokes the canonical 'SpatialTouches' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 touches geometryValue2.
+ An expression that specifies the first geometry value.
+ An expression that specifies the geometry value that should be compared with geometryValue1.
+
+
+
+ Creates a that invokes the canonical 'SpatialCrosses' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 crosses geometryValue2 intersect.
+ An expression that specifies the first geometry value.
+ An expression that specifies the geometry value that should be compared with geometryValue1.
+
+
+
+ Creates a that invokes the canonical 'SpatialWithin' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially within geometryValue2.
+ An expression that specifies the first geometry value.
+ An expression that specifies the geometry value that should be compared with geometryValue1.
+
+
+
+ Creates a that invokes the canonical 'SpatialContains' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially contains geometryValue2.
+ An expression that specifies the first geometry value.
+ An expression that specifies the geometry value that should be compared with geometryValue1.
+
+
+
+ Creates a that invokes the canonical 'SpatialOverlaps' function with the specified arguments, which must each have an Edm.Geometry result type. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 spatially overlaps geometryValue2.
+ An expression that specifies the first geometry value.
+ An expression that specifies the geometry value that should be compared with geometryValue1.
+
+
+
+ Creates a that invokes the canonical 'SpatialRelate' function with the specified arguments, which must have Edm.Geometry and string result types. The result type of the expression is Edm.Boolean.
+
+ A new DbFunctionExpression that returns a Boolean value indicating whether geometryValue1 is spatially related to geometryValue2 according to the spatial relationship designated by intersectionPatternMatrix.
+ An expression that specifies the first geometry value.
+ An expression that specifies the geometry value that should be compared with geometryValue1.
+ An expression that specifies the text representation of the Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern used to compare geometryValue1 and geometryValue2.
+
+
+
+ Creates a that invokes the canonical 'SpatialBuffer' function with the specified arguments, which must have a Edm.Geography or Edm.Geometry and Edm.Double result types. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns a geometry value representing all points less than or equal to distance from spatialValue.
+ An expression that specifies the spatial value.
+ An expression that specifies the buffer distance.
+
+
+
+ Creates a that invokes the canonical 'Distance' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns the distance between the closest points in spatialValue1 and spatialValue1.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value from which the distance from spatialValue1 should be measured.
+
+
+
+ Creates a that invokes the canonical 'SpatialConvexHull' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns the convex hull for geometryValue.
+ An expression that specifies the geometry value from which the convex hull value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'SpatialIntersection' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
+
+ A new DbFunctionExpression that returns the spatial value representing the intersection of spatialValue1 and spatialValue2.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value for which the intersection with spatialValue1 should be computed.
+
+
+
+ Creates a that invokes the canonical 'SpatialUnion' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
+
+ A new DbFunctionExpression that returns the spatial value representing the union of spatialValue1 and spatialValue2.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value for which the union with spatialValue1 should be computed.
+
+
+
+ Creates a that invokes the canonical 'SpatialDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
+
+ A new DbFunctionExpression that returns the geometry value representing the difference of spatialValue2 with spatialValue1.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value for which the difference with spatialValue1 should be computed.
+
+
+
+ Creates a that invokes the canonical 'SpatialSymmetricDifference' function with the specified arguments, which must each have an Edm.Geography or Edm.Geometry result type. The result type of spatialValue1 must match the result type of spatialValue2. The result type of the expression is the same as the type of spatialValue1 and spatialValue2.
+
+ A new DbFunctionExpression that returns the geometry value representing the symmetric difference of spatialValue2 with spatialValue1.
+ An expression that specifies the first spatial value.
+ An expression that specifies the spatial value for which the symmetric difference with spatialValue1 should be computed.
+
+
+
+ Creates a that invokes the canonical 'SpatialElementCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns either the number of elements in spatialValue or null if spatialValue is not a collection.
+ An expression that specifies the geography or geometry collection value from which the number of elements should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'SpatialElementAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue.
+
+ A new DbFunctionExpression that returns either the collection element at position indexValue in spatialValue or null if spatialValue is not a collection.
+ An expression that specifies the geography or geometry collection value.
+ An expression that specifies the position of the element to be retrieved from within the geometry or geography collection.
+
+
+
+ Creates a that invokes the canonical 'XCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the X co-ordinate value of geometryValue or null if geometryValue is not a point.
+ An expression that specifies the geometry point value from which the X co-ordinate value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'YCoordinate' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the Y co-ordinate value of geometryValue or null if geometryValue is not a point.
+ An expression that specifies the geometry point value from which the Y co-ordinate value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Elevation' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the elevation value of spatialValue or null if spatialValue is not a point.
+ An expression that specifies the spatial point value from which the elevation (Z co-ordinate) value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Measure' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the Measure of spatialValue or null if spatialValue is not a point.
+ An expression that specifies the spatial point value from which the Measure (M) co-ordinate value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Latitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the Latitude value of geographyValue or null if geographyValue is not a point.
+ An expression that specifies the geography point value from which the Latitude value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'Longitude' function with the specified argument, which must have an Edm.Geography result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the Longitude value of geographyValue or null if geographyValue is not a point.
+ An expression that specifies the geography point value from which the Longitude value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'SpatialLength' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the length of spatialValue or null if spatialValue is not a curve.
+ An expression that specifies the spatial curve value from which the length should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'StartPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue.
+
+ A new DbFunctionExpression that returns either the start point of spatialValue or null if spatialValue is not a curve.
+ An expression that specifies the spatial curve value from which the start point should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'EndPoint' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is the same as that of spatialValue.
+
+ A new DbFunctionExpression that returns either the end point of spatialValue or null if spatialValue is not a curve.
+ An expression that specifies the spatial curve value from which the end point should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'IsClosedSpatial' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type is Edm.Boolean.
+
+ A new DbFunctionExpression that returns either a Boolean value indicating whether spatialValue is closed, or null if spatialValue is not a curve.
+ An expression that specifies the spatial curve value from which the IsClosedSpatial value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'IsRing' function with the specified argument, which must have an Edm.Geometry result type. The result type is Edm.Boolean.
+
+ A new DbFunctionExpression that returns either a Boolean value indicating whether geometryValue is a ring (both closed and simple), or null if geometryValue is not a curve.
+ An expression that specifies the geometry curve value from which the IsRing value should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'PointCount' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns either the number of points in spatialValue or null if spatialValue is not a line string.
+ An expression that specifies the spatial line string value from which the number of points should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'PointAt' function with the specified arguments. The first argument must have an Edm.Geography or Edm.Geometry result type. The second argument must have an integer numeric result type. The result type of the expression is the same as that of spatialValue.
+
+ A new DbFunctionExpression that returns either the point at position indexValue in spatialValue or null if spatialValue is not a line string.
+ An expression that specifies the spatial line string value.
+ An expression that specifies the position of the point to be retrieved from within the line string.
+
+
+
+ Creates a that invokes the canonical 'Area' function with the specified argument, which must have an Edm.Geography or Edm.Geometry result type. The result type of the expression is Edm.Double.
+
+ A new DbFunctionExpression that returns either the area of spatialValue or null if spatialValue is not a surface.
+ An expression that specifies the spatial surface value for which the area should be calculated.
+
+
+
+ Creates a that invokes the canonical 'Centroid' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns either the centroid point of geometryValue (which may not be on the surface itself) or null if geometryValue is not a surface.
+ An expression that specifies the geometry surface value from which the centroid should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'PointOnSurface' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns either a point guaranteed to be on the surface geometryValue or null if geometryValue is not a surface.
+ An expression that specifies the geometry surface value from which the point should be retrieved.
+
+
+
+ Creates a that invokes the canonical 'ExteriorRing' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns either the exterior ring of the polygon geometryValue or null if geometryValue is not a polygon.
+ The geometry value.
+
+
+
+ Creates a that invokes the canonical 'InteriorRingCount' function with the specified argument, which must have an Edm.Geometry result type. The result type of the expression is Edm.Int32.
+
+ A new DbFunctionExpression that returns either the number of interior rings in the polygon geometryValue or null if geometryValue is not a polygon.
+ The geometry value.
+
+
+
+ Creates a that invokes the canonical 'InteriorRingAt' function with the specified arguments. The first argument must have an Edm.Geometry result type. The second argument must have an integer numeric result types. The result type of the expression is Edm.Geometry.
+
+ A new DbFunctionExpression that returns either the interior ring at position indexValue in geometryValue or null if geometryValue is not a polygon.
+ The geometry value.
+ An expression that specifies the position of the interior ring to be retrieved from within the polygon.
+
+
+
+ Ensures that all metadata in a given expression tree is from the specified metadata workspace,
+ potentially rebinding and rebuilding the expressions to appropriate replacement metadata where necessary.
+
+
+
+ Initializes a new instance of the class.
+ The target workspace.
+
+
+ Implements the visitor pattern for the entity set.
+ The implemented visitor pattern.
+ The entity set.
+
+
+ Implements the visitor pattern for the function.
+ The implemented visitor pattern.
+ The function metadata.
+
+
+ Implements the visitor pattern for the type.
+ The implemented visitor pattern.
+ The type.
+
+
+ Implements the visitor pattern for the type usage.
+ The implemented visitor pattern.
+ The type.
+
+
+ Implements the visitor pattern for retrieving an instance property.
+ The implemented visitor.
+ The expression.
+
+
+
+ DataRecordInfo class providing a simple way to access both the type information and the column information.
+
+
+
+
+ Initializes a new object for a specific type with an enumerable collection of data fields.
+
+
+ The metadata for the type represented by this object, supplied by
+
+ .
+
+
+ An enumerable collection of objects that represent column information.
+
+
+
+
+ Gets for this
+
+ object.
+
+
+ A object.
+
+
+
+
+ Gets type info for this object as a object.
+
+
+ A value.
+
+
+
+
+ A prepared command definition, can be cached and reused to avoid
+ repreparing a command.
+
+
+
+
+ Initializes a new instance of the class using the supplied
+
+ .
+
+
+ The supplied .
+
+ method used to clone the
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates and returns a object that can be executed.
+
+ The command for database.
+
+
+
+ Metadata Interface for all CLR types
+
+
+
+
+ Value to pass to GetInformation to get the StoreSchemaDefinition
+
+
+
+
+ Value to pass to GetInformation to get the StoreSchemaMapping
+
+
+
+
+ Value to pass to GetInformation to get the ConceptualSchemaDefinition
+
+
+
+
+ Value to pass to GetInformation to get the StoreSchemaDefinitionVersion3
+
+
+
+
+ Value to pass to GetInformation to get the StoreSchemaMappingVersion3
+
+
+
+
+ Value to pass to GetInformation to get the ConceptualSchemaDefinitionVersion3
+
+
+
+
+ Name of the MaxLength Facet
+
+
+
+
+ Name of the Unicode Facet
+
+
+
+
+ Name of the FixedLength Facet
+
+
+
+
+ Name of the Precision Facet
+
+
+
+
+ Name of the Scale Facet
+
+
+
+
+ Name of the Nullable Facet
+
+
+
+
+ Name of the DefaultValue Facet
+
+
+
+
+ Name of the Collation Facet
+
+
+
+
+ Name of the SRID Facet
+
+
+
+
+ Name of the IsStrict Facet
+
+
+
+ Gets the namespace used by this provider manifest.
+ The namespace used by this provider manifest.
+
+
+ When overridden in a derived class, returns the set of primitive types supported by the data source.
+ The set of types supported by the data source.
+
+
+ When overridden in a derived class, returns a collection of EDM functions supported by the provider manifest.
+ A collection of EDM functions.
+
+
+ Returns the FacetDescription objects for a particular type.
+ The FacetDescription objects for the specified EDM type.
+ The EDM type to return the facet description for.
+
+
+ When overridden in a derived class, this method maps the specified storage type and a set of facets for that type to an EDM type.
+
+ The instance that describes an EDM type and a set of facets for that type.
+
+ The TypeUsage instance that describes a storage type and a set of facets for that type to be mapped to the EDM type.
+
+
+ When overridden in a derived class, this method maps the specified EDM type and a set of facets for that type to a storage type.
+ The TypeUsage instance that describes a storage type and a set of facets for that type.
+ The TypeUsage instance that describes the EDM type and a set of facets for that type to be mapped to a storage type.
+
+
+ When overridden in a derived class, this method returns provider-specific information.
+ The XmlReader object that represents the mapping to the underlying data store catalog.
+ The type of the information to return.
+
+
+ Gets the provider-specific information.
+ The provider-specific information.
+ The type of the information to return.
+
+
+ Indicates if the provider supports escaping strings to be used as patterns in a Like expression.
+ True if this provider supports escaping strings to be used as patterns in a Like expression; otherwise, false.
+ If the provider supports escaping, the character that would be used as the escape character.
+
+
+
+ Indicates if the provider supports the parameter optimization described in EntityFramework6 GitHub issue #195.
+ The default is false. Providers should change this to true only after testing that schema queries (as
+ used in the Database First flow) work correctly with this flag.
+
+ True only if the provider supports the parameter optimization.
+
+
+ Provider writers should override this method to return the argument with the wildcards and the escape character escaped. This method is only used if SupportsEscapingLikeArgument returns true.
+ The argument with the wildcards and the escape character escaped.
+ The argument to be escaped.
+
+
+
+ Returns a boolean that specifies whether the provider can handle expression trees
+ containing instances of DbInExpression.
+ The default implementation returns false for backwards compatibility. Derived classes can override this method.
+
+
+ false
+
+
+
+
+ Returns a boolean that specifies whether the provider can process expression trees not having DbProjectExpression
+ nodes directly under both Left and Right sides of DbUnionAllExpression and DbIntersectExpression
+
+
+ false
+
+
+
+
+ The factory for building command definitions; use the type of this object
+ as the argument to the IServiceProvider.GetService method on the provider
+ factory;
+
+
+
+
+ Constructs an EF provider that will use the obtained from
+ the app domain Singleton for resolving EF dependencies such
+ as the instance to use.
+
+
+
+
+ Registers a handler to process non-error messages coming from the database provider.
+
+ The connection to receive information for.
+ The handler to process messages.
+
+
+
+ Create a Command Definition object given a command tree.
+
+ command tree for the statement
+ an executable command definition object
+
+ This method simply delegates to the provider's implementation of CreateDbCommandDefinition.
+
+
+
+ Creates command definition from specified manifest and command tree.
+ The created command definition.
+ The manifest.
+ The command tree.
+
+
+ Creates a command definition object for the specified provider manifest and command tree.
+ An executable command definition object.
+ Provider manifest previously retrieved from the store provider.
+ Command tree for the statement.
+
+
+
+ Create the default DbCommandDefinition object based on the prototype command
+ This method is intended for provider writers to build a default command definition
+ from a command.
+ Note: This will clone the prototype
+
+ the prototype command
+ an executable command definition object
+
+
+
+ See issue 2390 - cloning the DesignTimeVisible property on the
+ DbCommand can cause deadlocks. So here allow sub-classes to override.
+
+ the object to clone
+ a clone of the
+
+
+
+ Clones the connection.
+
+ The original connection.
+ Cloned connection
+
+
+
+ Clones the connection.
+
+ The original connection.
+ The factory to use.
+ Cloned connection
+
+
+ Returns provider manifest token given a connection.
+ The provider manifest token.
+ Connection to provider.
+
+
+
+ Returns provider manifest token for a given connection.
+
+ Connection to find manifest token from.
+ The provider manifest token for the specified connection.
+
+
+ Returns the provider manifest by using the specified version information.
+ The provider manifest by using the specified version information.
+ The token information associated with the provider manifest.
+
+
+ When overridden in a derived class, returns an instance of a class that derives from the DbProviderManifest.
+ A DbProviderManifest object that represents the provider manifest.
+ The token information associated with the provider manifest.
+
+
+
+ Gets the that will be used to execute methods that use the specified connection.
+
+ The database connection
+
+ A new instance of
+
+
+
+
+ Gets the that will be used to execute methods that use the specified connection.
+ This overload should be used by the derived classes for compatability with wrapping providers.
+
+ The database connection
+ The provider invariant name
+
+ A new instance of
+
+
+
+
+ Gets the spatial data reader for the .
+
+ The spatial data reader.
+ The reader where the spatial data came from.
+ The manifest token associated with the provider manifest.
+
+
+
+ Gets the spatial services for the .
+
+ The spatial services.
+ The token information associated with the provider manifest.
+
+
+ Gets the spatial services for the .
+ The spatial services.
+ Information about the database that the spatial services will be used for.
+
+
+
+ Gets the spatial data reader for the .
+
+ The spatial data reader.
+ The reader where the spatial data came from.
+ The token information associated with the provider manifest.
+
+
+
+ Gets the spatial services for the .
+
+ The spatial services.
+ The token information associated with the provider manifest.
+
+
+
+ Sets the parameter value and appropriate facets for the given .
+
+ The parameter.
+ The type of the parameter.
+ The value of the parameter.
+
+
+
+ Sets the parameter value and appropriate facets for the given .
+
+ The parameter.
+ The type of the parameter.
+ The value of the parameter.
+
+
+ Returns providers given a connection.
+
+ The instanced based on the specified connection.
+
+ Connection to provider.
+
+
+ Retrieves the DbProviderFactory based on the specified DbConnection.
+ The retrieved DbProviderFactory.
+ The connection to use.
+
+
+
+ Return an XML reader which represents the CSDL description
+
+ The name of the CSDL description.
+ An XmlReader that represents the CSDL description
+
+
+ Generates a data definition language (DDL script that creates schema objects (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token.
+
+ Individual statements should be separated using database-specific DDL command separator.
+ It is expected that the generated script would be executed in the context of existing database with
+ sufficient permissions, and it should not include commands to create the database, but it may include
+ commands to create schemas and other auxiliary objects such as sequences, etc.
+
+ A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter and targeted for the version of the database corresponding to the provider manifest token.
+ The provider manifest token identifying the target version.
+ The structure of the database.
+
+
+
+ Generates a data definition language (DDL) script that creates schema objects
+ (tables, primary keys, foreign keys) based on the contents of the StoreItemCollection
+ parameter and targeted for the version of the database corresponding to the provider manifest token.
+
+
+ Individual statements should be separated using database-specific DDL command separator.
+ It is expected that the generated script would be executed in the context of existing database with
+ sufficient permissions, and it should not include commands to create the database, but it may include
+ commands to create schemas and other auxiliary objects such as sequences, etc.
+
+ The provider manifest token identifying the target version.
+ The structure of the database.
+
+ A DDL script that creates schema objects based on the contents of the StoreItemCollection parameter
+ and targeted for the version of the database corresponding to the provider manifest token.
+
+
+
+
+ Creates a database indicated by connection and creates schema objects
+ (tables, primary keys, foreign keys) based on the contents of storeItemCollection.
+
+ Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter.
+ Execution timeout for any commands needed to create the database.
+ The collection of all store items based on which the script should be created.
+
+
+ Creates a database indicated by connection and creates schema objects (tables, primary keys, foreign keys) based on the contents of a StoreItemCollection.
+ Connection to a non-existent database that needs to be created and populated with the store objects indicated with the storeItemCollection parameter.
+ Execution timeout for any commands needed to create the database.
+ The collection of all store items based on which the script should be created.
+
+
+ Returns a value indicating whether a given database exists on the server.
+ True if the provider can deduce the database only based on the connection.
+ Connection to a database whose existence is checked by this method.
+ Execution timeout for any commands needed to determine the existence of the database.
+ The collection of all store items from the model. This parameter is no longer used for determining database existence.
+
+
+ Returns a value indicating whether a given database exists on the server.
+ True if the provider can deduce the database only based on the connection.
+ Connection to a database whose existence is checked by this method.
+ Execution timeout for any commands needed to determine the existence of the database.
+ The collection of all store items from the model. This parameter is no longer used for determining database existence.
+
+
+ Returns a value indicating whether a given database exists on the server.
+ True if the provider can deduce the database only based on the connection.
+ Connection to a database whose existence is checked by this method.
+ Execution timeout for any commands needed to determine the existence of the database.
+ The collection of all store items from the model. This parameter is no longer used for determining database existence.
+
+
+ Returns a value indicating whether a given database exists on the server.
+ True if the provider can deduce the database only based on the connection.
+ Connection to a database whose existence is checked by this method.
+ Execution timeout for any commands needed to determine the existence of the database.
+ The collection of all store items from the model. This parameter is no longer used for determining database existence.
+ Override this method to avoid creating the store item collection if it is not needed. The default implementation evaluates the Lazy and calls the other overload of this method.
+
+
+ Deletes the specified database.
+ Connection to an existing database that needs to be deleted.
+ Execution timeout for any commands needed to delete the database.
+ The collection of all store items from the model. This parameter is no longer used for database deletion.
+
+
+ Deletes the specified database.
+ Connection to an existing database that needs to be deleted.
+ Execution timeout for any commands needed to delete the database.
+ The collection of all store items from the model. This parameter is no longer used for database deletion.
+
+
+
+ Expands |DataDirectory| in the given path if it begins with |DataDirectory| and returns the expanded path,
+ or returns the given string if it does not start with |DataDirectory|.
+
+ The path to expand.
+ The expanded path.
+
+
+
+ Adds an that will be used to resolve additional default provider
+ services when a derived type is registered as an EF provider either using an entry in the application's
+ config file or through code-based registration in .
+
+ The resolver to add.
+
+
+
+ Called to resolve additional default provider services when a derived type is registered as an
+ EF provider either using an entry in the application's config file or through code-based
+ registration in . The implementation of this method in this
+ class uses the resolvers added with the AddDependencyResolver method to resolve
+ dependencies.
+
+
+ Use this method to set, add, or change other provider-related services. Note that this method
+ will only be called for such services if they are not already explicitly configured in some
+ other way by the application. This allows providers to set default services while the
+ application is still able to override and explicitly configure each service if required.
+ See and for more details.
+
+ The type of the service to be resolved.
+ An optional key providing additional information for resolving the service.
+ An instance of the given type, or null if the service could not be resolved.
+
+
+
+ Called to resolve additional default provider services when a derived type is registered as an
+ EF provider either using an entry in the application's config file or through code-based
+ registration in . The implementation of this method in this
+ class uses the resolvers added with the AddDependencyResolver method to resolve
+ dependencies.
+
+ The type of the service to be resolved.
+ An optional key providing additional information for resolving the service.
+ All registered services that satisfy the given type and key, or an empty enumeration if there are none.
+
+
+
+ A specialization of the ProviderManifest that accepts an XmlReader
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ An object that provides access to the XML data in the provider manifest file.
+
+
+
+ Gets the namespace name supported by this provider manifest.
+ The namespace name supported by this provider manifest.
+
+
+ Gets the best mapped equivalent Entity Data Model (EDM) type for a specified storage type name.
+ The best mapped equivalent EDM type for a specified storage type name.
+
+
+ Gets the best mapped equivalent storage primitive type for a specified storage type name.
+ The best mapped equivalent storage primitive type for a specified storage type name.
+
+
+ Returns the list of facet descriptions for the specified Entity Data Model (EDM) type.
+
+ A collection of type that contains the list of facet descriptions for the specified EDM type.
+
+
+ An for which the facet descriptions are to be retrieved.
+
+
+
+ Returns the list of primitive types supported by the storage provider.
+
+ A collection of type that contains the list of primitive types supported by the storage provider.
+
+
+
+ Returns the list of provider-supported functions.
+
+ A collection of type that contains the list of provider-supported functions.
+
+
+
+
+ EntityRecordInfo class providing a simple way to access both the type information and the column information.
+
+
+
+
+ Initializes a new instance of the class of a specific entity type with an enumerable collection of data fields and with specific key and entity set information.
+
+
+ The of the entity represented by the
+
+ described by this
+
+ object.
+
+
+ An enumerable collection of objects that represent column information.
+
+ The key for the entity.
+ The entity set to which the entity belongs.
+
+
+
+ Gets the for the entity.
+
+ The key for the entity.
+
+
+
+ Public Entity SQL Parser class.
+
+
+
+ Parse the specified query with the specified parameters.
+
+ The containing
+
+ and information describing inline function definitions if any.
+
+ The EntitySQL query to be parsed.
+ The optional query parameters.
+
+
+
+ Parse a specific query with a specific set variables and produce a
+
+ .
+
+
+ The containing
+
+ and information describing inline function definitions if any.
+
+ The query to be parsed.
+ The optional query variables.
+
+
+
+ Entity SQL query inline function definition, returned as a part of .
+
+
+
+ Function name.
+
+
+ Function body and parameters.
+
+
+ Start position of the function definition in the eSQL query text.
+
+
+ End position of the function definition in the eSQL query text.
+
+
+
+ Entity SQL Parser result information.
+
+
+
+ A command tree produced during parsing.
+
+
+
+ List of objects describing query inline function definitions.
+
+
+
+
+ FieldMetadata class providing the correlation between the column ordinals and MemberMetadata.
+
+
+
+
+ Initializes a new object with the specified ordinal value and field type.
+
+ An integer specified the location of the metadata.
+ The field type.
+
+
+
+ Gets the type of field for this object.
+
+
+ The type of field for this object.
+
+
+
+
+ Gets the ordinal for this object.
+
+ An integer representing the ordinal value.
+
+
+
+ Get the hierarchyid value of a column with the given ordinal
+
+ The ordinal of the column to retrieve the value
+ The hierarchyid value
+
+
+
+ Class representing a parameter collection used in EntityCommand
+
+
+
+
+ Gets an Integer that contains the number of elements in the
+
+ .
+
+
+ The number of elements in the as an Integer.
+
+
+
+
+ Gets a value that indicates whether the
+
+ has a fixed size.
+
+
+ Returns true if the has a fixed size; otherwise false.
+
+
+
+
+ Gets a value that indicates whether the
+
+ is read-only.
+
+
+ Returns true if the is read only; otherwise false.
+
+
+
+
+ Gets a value that indicates whether the
+
+ is synchronized.
+
+
+ Returns true if the is synchronized; otherwise false.
+
+
+
+
+ Gets an object that can be used to synchronize access to the
+
+ .
+
+
+ An object that can be used to synchronize access to the
+
+ .
+
+
+
+
+ Adds the specified object to the .
+
+
+ The index of the new object.
+
+
+ An .
+
+
+
+
+ Adds an array of values to the end of the
+
+ .
+
+
+ The values to add.
+
+
+
+
+ Removes all the objects from the
+
+ .
+
+
+
+
+ Determines whether the specified is in this
+
+ .
+
+
+ true if the contains the value; otherwise false.
+
+
+ The value.
+
+
+
+
+ Copies all the elements of the current to the specified one-dimensional
+
+ starting at the specified destination index.
+
+
+ The one-dimensional that is the destination of the elements copied from the current
+
+ .
+
+
+ A 32-bit integer that represents the index in the at which copying starts.
+
+
+
+
+ Returns an enumerator that iterates through the
+
+ .
+
+
+ An for the
+
+ .
+
+
+
+
+
+
+
+
+
+
+ Gets the location of the specified with the specified name.
+
+
+ The zero-based location of the specified with the specified case-sensitive name. Returns -1 when the object does not exist in the
+
+ .
+
+
+ The case-sensitive name of the to find.
+
+
+
+
+ Gets the location of the specified in the collection.
+
+
+ The zero-based location of the specified that is a
+
+ in the collection. Returns -1 when the object does not exist in the
+
+ .
+
+
+ The to find.
+
+
+
+
+ Inserts an into the
+
+ at the specified index.
+
+ The zero-based index at which value should be inserted.
+
+ An to be inserted in the
+
+ .
+
+
+
+ Removes the specified parameter from the collection.
+
+ A object to remove from the collection.
+
+
+
+
+ Removes the from the
+
+ at the specified index.
+
+
+ The zero-based index of the object to remove.
+
+
+
+
+ Removes the from the
+
+ at the specified parameter name.
+
+
+ The name of the to remove.
+
+
+
+
+
+
+
+
+
+
+ Gets the at the specified index.
+
+
+ The at the specified index.
+
+ The zero-based index of the parameter to retrieve.
+ The specified index does not exist.
+
+
+
+ Gets the with the specified name.
+
+
+ The with the specified name.
+
+ The name of the parameter to retrieve.
+ The specified name does not exist.
+
+
+
+ Adds the specified object to the
+
+ .
+
+
+ A new object.
+
+
+ The to add to the collection.
+
+
+ The specified in the value parameter is already added to this or another
+
+ .
+
+
+ The parameter passed was not a .
+
+ The value parameter is null.
+
+
+
+ Adds a value to the end of the .
+
+
+ A object.
+
+ The name of the parameter.
+ The value to be added.
+
+
+
+ Adds a to the
+
+ given the parameter name and the data type.
+
+
+ A new object.
+
+ The name of the parameter.
+
+ One of the values.
+
+
+
+
+ Adds a to the
+
+ with the parameter name, the data type, and the column length.
+
+
+ A new object.
+
+ The name of the parameter.
+
+ One of the values.
+
+ The column length.
+
+
+
+ Adds an array of values to the end of the
+
+ .
+
+
+ The values to add.
+
+
+
+
+ Determines whether the specified is in this
+
+ .
+
+
+ true if the contains the value; otherwise false.
+
+
+ The value.
+
+
+
+
+ Copies all the elements of the current to the specified
+
+ starting at the specified destination index.
+
+
+ The that is the destination of the elements copied from the current
+
+ .
+
+
+ A 32-bit integer that represents the index in the
+
+ at which copying starts.
+
+
+
+
+ Gets the location of the specified in the collection.
+
+
+ The zero-based location of the specified that is a
+
+ in the collection. Returns -1 when the object does not exist in the
+
+ .
+
+
+ The to find.
+
+
+
+
+ Inserts a object into the
+
+ at the specified index.
+
+ The zero-based index at which value should be inserted.
+
+ A object to be inserted in the
+
+ .
+
+
+
+
+ Removes the specified from the collection.
+
+
+ A object to remove from the collection.
+
+
+ The parameter is not a .
+
+ The parameter does not exist in the collection.
+
+
+
+ Class representing a command for the conceptual layer
+
+
+
+
+ Initializes a new instance of the class using the specified values.
+
+
+
+
+ Initializes a new instance of the class with the specified statement.
+
+ The text of the command.
+
+
+
+ Constructs the EntityCommand object with the given eSQL statement and the connection object to use
+
+ The eSQL command text to execute
+ The connection object
+ Resolver used to resolve DbProviderServices
+
+
+
+ Initializes a new instance of the class with the specified statement and connection.
+
+ The text of the command.
+ A connection to the data source.
+
+
+
+ Initializes a new instance of the class with the specified statement, connection and transaction.
+
+ The text of the command.
+ A connection to the data source.
+ The transaction in which the command executes.
+
+
+
+ Gets or sets the used by the
+
+ .
+
+ The connection used by the entity command.
+
+
+
+ The connection object used for executing the command
+
+
+
+ Gets or sets an Entity SQL statement that specifies a command or stored procedure to execute.
+ The Entity SQL statement that specifies a command or stored procedure to execute.
+
+
+ Gets or sets the command tree to execute; only one of the command tree or the command text can be set, not both.
+ The command tree to execute.
+
+
+ Gets or sets the amount of time to wait before timing out.
+ The time in seconds to wait for the command to execute.
+
+
+
+ Gets or sets a value that indicates how the
+
+ property is to be interpreted.
+
+
+ One of the enumeration values.
+
+
+
+ Gets the parameters of the Entity SQL statement or stored procedure.
+ The parameters of the Entity SQL statement or stored procedure.
+
+
+
+ The collection of parameters for this command
+
+
+
+
+ Gets or sets the transaction within which the executes.
+
+
+ The transaction within which the executes.
+
+
+
+
+ The transaction that this command executes in
+
+
+
+ Gets or sets how command results are applied to rows being updated.
+
+ One of the values.
+
+
+
+ Gets or sets a value that indicates whether the command object should be visible in a Windows Form Designer control.
+ true if the command object should be visible in a Windows Form Designer control; otherwise, false.
+
+
+ Gets or sets a value that indicates whether the query plan caching is enabled.
+ true if the query plan caching is enabled; otherwise, false.
+
+
+
+ Cancels the execution of an .
+
+
+
+
+ Creates a new instance of an object.
+
+
+ A new instance of an object.
+
+
+
+
+ Create and return a new parameter object representing a parameter in the eSQL statement
+
+ The parameter object.
+
+
+ Executes the command and returns a data reader.
+
+ The that contains the results.
+
+
+
+
+ Compiles the into a command tree and passes it to the underlying store provider for execution, then builds an
+
+ out of the produced result set using the specified
+
+ .
+
+
+ The that contains the results.
+
+
+ One of the values.
+
+
+
+
+ Asynchronously executes the command and returns a data reader for reading the results. May only
+ be called on CommandType.CommandText (otherwise, use the standard Execute* methods)
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an EntityDataReader object.
+
+
+ For stored procedure commands, if called
+ for anything but an entity collection result
+
+
+
+
+ Asynchronously executes the command and returns a data reader for reading the results. May only
+ be called on CommandType.CommandText (otherwise, use the standard Execute* methods)
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an EntityDataReader object.
+
+
+ For stored procedure commands, if called
+ for anything but an entity collection result
+
+
+
+
+ Asynchronously executes the command and returns a data reader for reading the results. May only
+ be called on CommandType.CommandText (otherwise, use the standard Execute* methods)
+
+ The behavior to use when executing the command
+
+ A task that represents the asynchronous operation.
+ The task result contains an EntityDataReader object.
+
+
+ For stored procedure commands, if called
+ for anything but an entity collection result
+
+
+
+
+ Asynchronously executes the command and returns a data reader for reading the results. May only
+ be called on CommandType.CommandText (otherwise, use the standard Execute* methods)
+
+ The behavior to use when executing the command
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an EntityDataReader object.
+
+
+ For stored procedure commands, if called
+ for anything but an entity collection result
+
+
+
+
+ Executes the command and returns a data reader for reading the results
+
+ The behavior to use when executing the command
+ A DbDataReader object
+
+
+
+ Asynchronously executes the command and returns a data reader for reading the results
+
+ The behavior to use when executing the command
+ The token to monitor for cancellation requests
+
+ A task that represents the asynchronous operation.
+ The task result contains a DbDataReader object.
+
+
+
+ Executes the current command.
+ The number of rows affected.
+
+
+
+ Asynchronously executes the command and discard any results returned from the command
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of rows affected.
+
+
+
+ Executes the command, and returns the first column of the first row in the result set. Additional columns or rows are ignored.
+ The first column of the first row in the result set, or a null reference (Nothing in Visual Basic) if the result set is empty.
+
+
+ Compiles the entity-level command and creates a prepared version of the command.
+
+
+ Compiles the entity-level command and returns the store command text.
+ The store command text.
+
+
+
+ Class representing a connection for the conceptual layer. An entity connection may only
+ be initialized once (by opening the connection). It is subsequently not possible to change
+ the connection string, attach a new store connection, or change the store connection string.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class, based on the connection string.
+
+ The provider-specific connection string.
+ An invalid connection string keyword has been provided, or a required connection string keyword has not been provided.
+
+
+
+ Initializes a new instance of the class with a specified
+ and
+ .
+
+
+ A to be associated with this
+ .
+
+
+ The underlying data source connection for this object.
+
+ The workspace or connection parameter is null.
+ The conceptual model is missing from the workspace.-or-The mapping file is missing from the workspace.-or-The storage model is missing from the workspace.-or-The connection is not in a closed state.
+ The connection is not from an ADO.NET Entity Framework-compatible provider.
+
+
+
+ Constructs the EntityConnection from Metadata loaded in memory
+
+ Workspace containing metadata information.
+ Store connection.
+ If set to true the store connection is disposed when the entity connection is disposed, otherwise the caller must dispose the store connection.
+
+
+
+ Gets or sets the connection string.
+
+ The connection string required to establish the initial connection to a data source. The default value is an empty string. On a closed connection, the currently set value is returned. If no value has been set, an empty string is returned.
+
+ An attempt was made to set the property after the
+
+ ’s was initialized. The
+
+ is initialized either when the instance is constructed through the overload that takes a
+
+ as a parameter, or when the
+
+ instance has been opened.
+
+ An invalid connection string keyword has been provided or a required connection string keyword has not been provided.
+
+
+ Gets the number of seconds to wait when attempting to establish a connection before ending the attempt and generating an error.
+ The time (in seconds) to wait for a connection to open. The default value is the underlying data provider's default time-out.
+ The value set is less than 0.
+
+
+ Gets the name of the current database, or the database that will be used after a connection is opened.
+ The value of the Database property of the underlying data provider.
+ The underlying data provider is not known.
+
+
+
+ Gets the state of the EntityConnection, which is set up to track the state of the underlying
+ database connection that is wrapped by this EntityConnection.
+
+
+
+ Gets the name or network address of the data source to connect to.
+ The name of the data source. The default value is an empty string.
+ The underlying data provider is not known.
+
+
+ Gets a string that contains the version of the data source to which the client is connected.
+ The version of the data source that is contained in the provider connection string.
+ The connection is closed.
+
+
+
+ Gets the provider factory associated with EntityConnection
+
+
+
+
+ Provides access to the underlying data source connection that is used by the
+
+ object.
+
+
+ The for the data source connection.
+
+
+
+
+ Returns the associated with this
+
+ .
+
+
+ The associated with this
+
+ .
+
+ The inline connection string contains an invalid Metadata keyword value.
+
+
+
+ Gets the current transaction that this connection is enlisted in. May be null.
+
+
+
+ Establishes a connection to the data source by calling the underlying data provider's Open method.
+ An error occurs when you open the connection, or the name of the underlying data provider is not known.
+ The inline connection string contains an invalid Metadata keyword value.
+
+
+
+ Asynchronously establishes a connection to the data store by calling the Open method on the underlying data provider
+
+
+ A to observe while waiting for the task to complete.
+
+ A task that represents the asynchronous operation.
+
+
+
+ Creates a new instance of an , with the
+
+ set to this
+
+ .
+
+
+ An object.
+
+ The name of the underlying data provider is not known.
+
+
+
+ Create a new command object that uses this connection object
+
+ The command object.
+
+
+ Closes the connection to the database.
+ An error occurred when closing the connection.
+
+
+ Not supported.
+ Not supported.
+ When the method is called.
+
+
+ Begins a transaction by using the underlying provider.
+
+ A new . The returned
+
+ instance can later be associated with the
+
+ to execute the command under that transaction.
+
+
+ The underlying provider is not known.-or-The call to
+
+ was made on an
+
+ that already has a current transaction.-or-The state of the
+
+ is not
+
+ .
+
+
+
+ Begins a transaction with the specified isolation level by using the underlying provider.
+
+ A new . The returned
+
+ instance can later be associated with the
+
+ to execute the command under that transaction.
+
+ The isolation level of the transaction.
+
+ The underlying provider is not known.-or-The call to
+
+ was made on an
+
+ that already has a current transaction.-or-The state of the
+
+ is not
+
+ .
+
+
+
+
+ Begins a database transaction
+
+ The isolation level of the transaction
+ An object representing the new transaction
+
+
+
+ Enlists this in the specified transaction.
+
+ The transaction object to enlist into.
+
+ The state of the is not
+
+ .
+
+
+
+
+ Cleans up this connection object
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources
+
+
+
+ Class representing a connection string builder for the entity client provider
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class using the supplied connection string.
+
+ A provider-specific connection string to the underlying data source.
+
+
+ Gets or sets the name of a section as defined in a configuration file.
+ The name of a section in a configuration file.
+
+
+ Gets or sets the name of the underlying .NET Framework data provider in the connection string.
+ The invariant name of the underlying .NET Framework data provider.
+
+
+ Gets or sets the metadata locations in the connection string.
+ Gets or sets the metadata locations in the connection string.
+
+
+ Gets or sets the inner, provider-specific connection string.
+ The inner, provider-specific connection string.
+
+
+
+ Gets a value that indicates whether the
+
+ has a fixed size.
+
+
+ Returns true in every case, because the
+
+ supplies a fixed-size collection of keyword/value pairs.
+
+
+
+
+ Gets an that contains the keys in the
+
+ .
+
+
+ An that contains the keys in the
+
+ .
+
+
+
+ Gets or sets the value associated with the specified key. In C#, this property is the indexer.
+ The value associated with the specified key.
+ The key of the item to get or set.
+ keyword is a null reference (Nothing in Visual Basic).
+ Tried to add a key that does not exist in the available keys.
+ Invalid value in the connection string (specifically, a Boolean or numeric value was expected but not supplied).
+
+
+
+ Clears the contents of the instance.
+
+
+
+
+ Determines whether the contains a specific key.
+
+
+ Returns true if the contains an element that has the specified key; otherwise, false.
+
+
+ The key to locate in the .
+
+
+
+
+ Retrieves a value corresponding to the supplied key from this
+
+ .
+
+ Returns true if keyword was found in the connection string; otherwise, false.
+ The key of the item to retrieve.
+ The value corresponding to keyword.
+ keyword contains a null value (Nothing in Visual Basic).
+
+
+
+ Removes the entry with the specified key from the
+
+ instance.
+
+ Returns true if the key existed in the connection string and was removed; false if the key did not exist.
+
+ The key of the keyword/value pair to be removed from the connection string in this
+
+ .
+
+ keyword is null (Nothing in Visual Basic)
+
+
+
+ A data reader class for the entity client provider
+
+
+
+ Gets a value indicating the depth of nesting for the current row.
+ The depth of nesting for the current row.
+
+
+ Gets the number of columns in the current row.
+ The number of columns in the current row.
+
+
+
+ Gets a value that indicates whether this contains one or more rows.
+
+
+ true if the contains one or more rows; otherwise, false.
+
+
+
+
+ Gets a value indicating whether the is closed.
+
+
+ true if the is closed; otherwise, false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+ The number of rows changed, inserted, or deleted. Returns -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Gets the value of the specified column as an instance of .
+
+ The value of the specified column.
+ The zero-based column ordinal
+
+
+
+ Gets the value of the specified column as an instance of .
+
+ The value of the specified column.
+ The name of the column.
+
+
+
+ Gets the number of fields in the that are not hidden.
+
+ The number of fields that are not hidden.
+
+
+
+ Gets for this
+
+ .
+
+ The information of a data record.
+
+
+
+ Closes the object.
+
+
+
+
+ Releases the resources consumed by this and calls
+
+ .
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+ Gets the value of the specified column as a Boolean.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a byte.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Reads a stream of bytes from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex .
+ The actual number of bytes read.
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+
+
+ Gets the value of the specified column as a single character.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Reads a stream of characters from the specified column, starting at location indicated by dataIndex , into the buffer, starting at the location indicated by bufferIndex .
+ The actual number of characters read.
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+
+
+ Gets the name of the data type of the specified column.
+ The name of the data type.
+ The zero-based column ordinal.
+
+
+
+ Gets the value of the specified column as a object.
+
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+
+ Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation.
+
+ A data reader.
+ The zero-based column ordinal.
+
+
+
+ Gets the value of the specified column as a object.
+
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the data type of the specified column.
+ The data type of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a globally-unique identifier (GUID).
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the name of the column, given the zero-based column ordinal.
+ The name of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets the column ordinal given the name of the column.
+ The zero-based column ordinal.
+ The name of the column.
+ The name specified is not a valid column name.
+
+
+ Returns the provider-specific field type of the specified column.
+
+ The object that describes the data type of the specified column.
+
+ The zero-based column ordinal.
+
+
+
+ Gets the value of the specified column as an instance of .
+
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Gets all provider-specific attribute columns in the collection for the current row.
+
+ The number of instances of in the array.
+
+
+ An array of into which to copy the attribute columns.
+
+
+
+
+ Returns a that describes the column metadata of the
+
+ .
+
+
+ A that describes the column metadata.
+
+
+
+
+ Gets the value of the specified column as an instance of .
+
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+
+ Gets the value of the specified column as an instance of .
+
+ The value of the specified column.
+ The zero-based column ordinal.
+
+
+ Populates an array of objects with the column values of the current row.
+
+ The number of instances of in the array.
+
+
+ An array of into which to copy the attribute columns.
+
+
+
+ Gets a value that indicates whether the column contains nonexistent or missing values.
+
+ true if the specified column is equivalent to ; otherwise, false.
+
+ The zero-based column ordinal.
+
+
+ Advances the reader to the next result when reading the results of a batch of statements.
+ true if there are more result sets; otherwise, false.
+
+
+
+ Asynchronously moves the reader to the next result set when reading a batch of statements
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if there are more result sets; false otherwise.
+
+
+
+ Advances the reader to the next record in a result set.
+ true if there are more rows; otherwise, false.
+
+
+
+ Asynchronously moves the reader to the next row of the current result set
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if there are more rows; false otherwise.
+
+
+
+
+ Returns an that can be used to iterate through the rows in the data reader.
+
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+
+ Returns a nested .
+
+ The nested data record.
+ The number of the DbDataRecord to return.
+
+
+
+ Returns nested readers as objects.
+
+
+ The nested readers as objects.
+
+ The ordinal of the column.
+
+
+
+ Class representing a parameter used in EntityCommand
+
+
+
+
+ Initializes a new instance of the class using the default values.
+
+
+
+
+ Initializes a new instance of the class using the specified parameter name and data type.
+
+ The name of the parameter.
+
+ One of the values.
+
+
+
+
+ Initializes a new instance of the class using the specified parameter name, data type and size.
+
+ The name of the parameter.
+
+ One of the values.
+
+ The size of the parameter.
+
+
+
+ Initializes a new instance of the class using the specified properties.
+
+ The name of the parameter.
+
+ One of the values.
+
+ The size of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class using the specified properties.
+
+ The name of the parameter.
+
+ One of the values.
+
+ The size of the parameter.
+
+ One of the values.
+
+ true to indicate that the parameter accepts null values; otherwise, false.
+ The number of digits used to represent the value.
+ The number of decimal places to which value is resolved.
+ The name of the source column.
+
+ One of the values.
+
+ The value of the parameter.
+
+
+ Gets or sets the name of the entity parameter.
+ The name of the entity parameter.
+
+
+
+ Gets or sets the of the parameter.
+
+
+ One of the values.
+
+
+
+ Gets or sets the type of the parameter, expressed as an EdmType.
+ The type of the parameter, expressed as an EdmType.
+
+
+
+ Gets or sets the number of digits used to represent the
+
+ property.
+
+ The number of digits used to represent the value.
+
+
+
+ Gets or sets the number of decimal places to which
+
+ is resolved.
+
+ The number of decimal places to which value is resolved.
+
+
+ Gets or sets the value of the parameter.
+ The value of the parameter.
+
+
+ Gets or sets the direction of the parameter.
+
+ One of the values.
+
+
+
+ Gets or sets a value that indicates whether the parameter accepts null values.
+ true if null values are accepted; otherwise, false.
+
+
+ Gets or sets the maximum size of the data within the column.
+ The maximum size of the data within the column.
+
+
+
+ Gets or sets the name of the source column mapped to the and used for loading or returning the
+
+ .
+
+ The name of the source column mapped to the dataset and used for loading or returning the value.
+
+
+ Gets or sets a value that indicates whether source column is nullable.
+ true if source column is nullable; otherwise, false.
+
+
+
+ Gets or sets the to use when loading the value.
+
+
+ One of the values.
+
+
+
+
+ Resets the type associated with the .
+
+
+
+ Returns a string representation of the parameter.
+ A string representation of the parameter.
+
+
+
+ Class representing a provider factory for the entity client provider
+
+
+
+
+ A singleton object for the entity client provider factory object.
+ This remains a public field (not property) because DbProviderFactory expects a field.
+
+
+
+
+ Returns a new instance of the provider's class that implements the
+
+ class.
+
+
+ A new instance of .
+
+
+
+
+ Throws a . This method is currently not supported.
+
+ This method is currently not supported.
+
+
+
+ Returns a new instance of the provider's class that implements the
+
+ class.
+
+
+ A new instance of .
+
+
+
+
+ Returns a new instance of the provider's class that implements the
+
+ class.
+
+
+ A new instance of .
+
+
+
+
+ Throws a . This method is currently not supported.
+
+ This method is currently not supported.
+
+
+
+ Returns a new instance of the provider's class that implements the
+
+ class.
+
+
+ A new instance of .
+
+
+
+
+ Throws a . This method is currently not supported.
+
+ This method is currently not supported.
+ This method is currently not supported.
+
+
+
+ Returns the requested class.
+
+
+ A new instance of . The supported types are
+
+ ,
+
+ , and
+
+ . Returns null (or Nothing in Visual Basic) for every other type.
+
+
+ The to return.
+
+
+
+
+ Class representing a transaction for the conceptual layer
+
+
+
+
+ Gets for this
+
+ .
+
+
+ An to the underlying data source.
+
+
+
+
+ The connection object owning this transaction object
+
+
+
+
+ Gets the isolation level of this .
+
+
+ An enumeration value that represents the isolation level of the underlying transaction.
+
+
+
+
+ Gets the DbTransaction for the underlying provider transaction.
+
+
+
+ Commits the underlying transaction.
+
+
+ Rolls back the underlying transaction.
+
+
+
+ Cleans up this transaction object
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources
+
+
+
+ Represents a failure while trying to prepare or execute a CommandCompilation
+ This exception is intended to provide a common exception that people can catch to
+ hold provider exceptions (SqlException, OracleException) when using the EntityCommand
+ to execute statements.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of .
+
+ The error message that explains the reason for the exception.
+ The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Represents a failure while trying to prepare or execute a CommandExecution
+ This exception is intended to provide a common exception that people can catch to
+ hold provider exceptions (SqlException, OracleException) when using the EntityCommand
+ to execute statements.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of .
+
+ The error message that explains the reason for the exception.
+ The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Provider exception - Used by the entity client.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The error message that explains the reason for the exception.
+ The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ An identifier for an entity.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with an entity set name and a generic
+
+ collection.
+
+
+ A that is the entity set name qualified by the entity container name.
+
+
+ A generic collection.Each key/value pair has a property name as the key and the value of that property as the value. There should be one pair for each property that is part of the
+
+ . The order of the key/value pairs is not important, but each key property should be included. The property names are simple names that are not qualified with an entity type name or the schema name.
+
+
+
+
+ Initializes a new instance of the class with an entity set name and an
+
+ collection of
+
+ objects.
+
+
+ A that is the entity set name qualified by the entity container name.
+
+
+ An collection of
+
+ objects with which to initialize the key.
+
+
+
+
+ Initializes a new instance of the class with an entity set name and specific entity key pair.
+
+
+ A that is the entity set name qualified by the entity container name.
+
+
+ A that is the name of the key.
+
+
+ An that is the key value.
+
+
+
+
+ Gets a singleton EntityKey by which a read-only entity is identified.
+
+
+
+
+ Gets a singleton EntityKey identifying an entity resulted from a failed TREAT.
+
+
+
+ Gets or sets the name of the entity set.
+
+ A value that is the name of the entity set for the entity to which the
+
+ belongs.
+
+
+
+ Gets or sets the name of the entity container.
+
+ A value that is the name of the entity container for the entity to which the
+
+ belongs.
+
+
+
+
+ Gets or sets the key values associated with this .
+
+
+ A of key values for this
+
+ .
+
+
+
+
+ Gets a value that indicates whether the is temporary.
+
+
+ true if the is temporary; otherwise, false.
+
+
+
+ Gets the entity set for this entity key from the given metadata workspace.
+
+ The for the entity key.
+
+ The metadata workspace that contains the entity.
+ The entity set could not be located in the specified metadata workspace.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ true if this instance and obj have equal values; otherwise, false.
+
+ An to compare with this instance.
+
+
+
+
+ Returns a value that indicates whether this instance is equal to a specified
+
+ .
+
+ true if this instance and other have equal values; otherwise, false.
+
+ An object to compare with this instance.
+
+
+
+
+ Serves as a hash function for the current object.
+
+ is suitable for hashing algorithms and data structures such as a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Compares two objects.
+
+ true if the key1 and key2 values are equal; otherwise, false.
+
+ A to compare.
+
+
+ A to compare.
+
+
+
+
+ Compares two objects.
+
+ true if the key1 and key2 values are not equal; otherwise, false.
+
+ A to compare.
+
+
+ A to compare.
+
+
+
+
+ Helper method that is used to deserialize an .
+
+ Describes the source and destination of a given serialized stream, and provides an additional caller-defined context.
+
+
+
+ Helper method that is used to deserialize an .
+
+ Describes the source and destination of a given serialized stream and provides an additional caller-defined context.
+
+
+
+ Information about a key that is part of an EntityKey.
+ A key member contains the key name and value.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified entity key pair.
+
+ The name of the key.
+ The key value.
+
+
+ Gets or sets the name of the entity key.
+ The key name.
+
+
+ Gets or sets the value of the entity key.
+ The key value.
+
+
+ Returns a string representation of the entity key.
+ A string representation of the entity key.
+
+
+
+ Represents an eSQL Query compilation exception;
+ The class of exceptional conditions that may cause this exception to be raised are mainly:
+ 1) Syntax Errors: raised during query text parsing and when a given query does not conform to eSQL formal grammar;
+ 2) Semantic Errors: raised when semantic rules of eSQL language are not met such as metadata or schema information
+ not accurate or not present, type validation errors, scoping rule violations, user of undefined variables, etc.
+ For more information, see eSQL Language Spec.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with a specialized error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that caused the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+ Gets a description of the error.
+ A string that describes the error.
+
+
+ Gets the approximate context where the error occurred, if available.
+ A string that describes the approximate context where the error occurred, if available.
+
+
+ Gets the approximate line number where the error occurred.
+ An integer that describes the line number where the error occurred.
+
+
+ Gets the approximate column number where the error occurred.
+ An integer that describes the column number where the error occurred.
+
+
+
+ Sets the with information about the exception.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+
+ DataRecord interface supporting structured types and rich metadata information.
+
+
+
+
+ Gets for this
+
+ .
+
+
+ A object.
+
+
+
+
+ Gets a object with the specified index.
+
+
+ A object.
+
+ The index of the row.
+
+
+
+ Returns nested readers as objects.
+
+
+ Nested readers as objects.
+
+ The ordinal of the column.
+
+
+
+ Thrown to indicate that a command tree is invalid.
+
+
+
+
+ Initializes a new instance of the class with a default message.
+
+
+
+
+ Initializes a new instance of the class with the specified message.
+
+ The exception message.
+
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+
+ The exception message.
+
+ The exception that is the cause of this .
+
+
+
+
+ Mapping exception class. Note that this class has state - so if you change even
+ its internals, it can be a breaking change
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with a specialized error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of that uses a specified error message and a reference to the inner exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Represents the Mapping metadata for an AssociationSet in CS space.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityTypeMapping
+ --MappingFragment
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ This class represents the metadata for the AssociationSetMapping elements in the
+ above example. And it is possible to access the AssociationTypeMap underneath it.
+ There will be only one TypeMap under AssociationSetMap.
+
+
+
+
+ Initializes a new AssociationSetMapping instance.
+
+ The association set to be mapped.
+ The store entity set to be mapped.
+ The parent container mapping.
+
+
+
+ Gets the association set that is mapped.
+
+
+
+
+ Gets the contained association type mapping.
+
+
+
+
+ Gets or sets the corresponding function mapping. Can be null.
+
+
+
+
+ Gets the store entity set that is mapped.
+
+
+
+
+ Gets or sets the source end property mapping.
+
+
+
+
+ Gets or sets the target end property mapping.
+
+
+
+
+ Gets the property mapping conditions.
+
+
+
+
+ Adds a property mapping condition.
+
+ The condition to add.
+
+
+
+ Removes a property mapping condition.
+
+ The property mapping condition to remove.
+
+
+
+ Describes modification function mappings for an association set.
+
+
+
+
+ Initializes a new AssociationSetModificationFunctionMapping instance.
+
+ An association set.
+ A delete function mapping.
+ An insert function mapping.
+
+
+
+ Gets the association set.
+
+
+
+
+ Gets the delete function mapping.
+
+
+
+
+ Gets the insert function mapping.
+
+
+
+
+
+
+
+ Represents the Mapping metadata for an association type map in CS space.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ComplexPropertyMap
+ --ComplexTypeMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EndPropertyMap
+ --ScalarPropertyMap
+ This class represents the metadata for all association Type map elements in the
+ above example. Users can access the table mapping fragments under the
+ association type mapping through this class.
+
+
+
+
+ Creates an AssociationTypeMapping instance.
+
+ The AssociationSetMapping that
+ the contains this AssociationTypeMapping.
+
+
+
+ Gets the AssociationSetMapping that contains this AssociationTypeMapping.
+
+
+
+
+ Gets the association type being mapped.
+
+
+
+
+ Gets the single mapping fragment.
+
+
+
+
+ Mapping metadata for Complex properties.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ComplexPropertyMap
+ --ComplexTypeMapping
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --DiscriminatorPropertyMap ( constant value-->SMemberMetadata )
+ --ComplexTypeMapping
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --DiscriminatorPropertyMap ( constant value-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ This class represents the metadata for all the complex property map elements in the
+ above example. ComplexPropertyMaps contain ComplexTypeMaps which define mapping based
+ on the type of the ComplexProperty in case of inheritance.
+
+
+
+
+ Construct a new Complex Property mapping object
+
+ The MemberMetadata object that represents this Complex member
+
+
+
+ Gets a read only collections of type mappings corresponding to the
+ nested complex types.
+
+
+
+
+ Adds a type mapping corresponding to a nested complex type.
+
+ The complex type mapping to be added.
+
+
+
+ Removes a type mapping corresponding to a nested complex type.
+
+ The complex type mapping to be removed.
+
+
+
+ Mapping metadata for Complex Types.
+
+
+
+
+ Creates a ComplexTypeMapping instance.
+
+ The ComplexType being mapped.
+
+
+
+ Gets the ComplexType being mapped.
+
+
+
+
+ Gets a read-only collection of property mappings.
+
+
+
+
+ Gets a read-only collection of property mapping conditions.
+
+
+
+
+ Adds a property mapping.
+
+ The property mapping to be added.
+
+
+
+ Removes a property mapping.
+
+ The property mapping to be removed.
+
+
+
+ Adds a property mapping condition.
+
+ The property mapping condition to be added.
+
+
+
+ Removes a property mapping condition.
+
+ The property mapping condition to be removed.
+
+
+
+ Mapping metadata for Conditional property mapping on a type.
+ Condition Property Mapping specifies a Condition either on the C side property or S side property.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ConditionPropertyMap ( constant value-->SMemberMetadata )
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ComplexPropertyMap
+ --ComplexTypeMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ConditionPropertyMap ( constant value-->SMemberMetadata )
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ This class represents the metadata for all the condition property map elements in the
+ above example.
+
+
+
+
+ Gets an EdmProperty that specifies the mapped property.
+
+
+
+
+ Gets an EdmProperty that specifies the mapped column.
+
+
+
+
+ Mapping metadata for End property of an association.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ComplexPropertyMap
+ --ComplexTypeMapping
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --DiscriminatorPropertyMap ( constant value-->SMemberMetadata )
+ --ComplexTypeMapping
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --DiscriminatorPropertyMap ( constant value-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ This class represents the metadata for all the end property map elements in the
+ above example. EndPropertyMaps provide mapping for each end of the association.
+
+
+
+
+ Creates an association end property mapping.
+
+ An AssociationEndMember that specifies
+ the association end to be mapped.
+
+
+
+ Gets an AssociationEndMember that specifies the mapped association end.
+
+
+
+
+ Gets a ReadOnlyCollection of ScalarPropertyMapping that specifies the children
+ of this association end property mapping.
+
+
+
+
+ Adds a child property-column mapping.
+
+ A ScalarPropertyMapping that specifies
+ the property-column mapping to be added.
+
+
+
+ Removes a child property-column mapping.
+
+ A ScalarPropertyMapping that specifies
+ the property-column mapping to be removed.
+
+
+
+ Represents the Mapping metadata for the EntityContainer map in CS space.
+ Only one EntityContainerMapping element is allowed in the MSL file for CS mapping.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ ---Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --AssociationSetMapping
+ The type represents the metadata for EntityContainerMapping element in the above example.
+ The EntitySetBaseMapping elements that are children of the EntityContainerMapping element
+ can be accessed through the properties on this type.
+
+
+ We currently assume that an Entity Container on the C side
+ is mapped to a single Entity Container in the S - space.
+
+
+
+
+ Initializes a new EntityContainerMapping instance.
+
+ The conceptual entity container to be mapped.
+ The store entity container to be mapped.
+ The parent mapping item collection.
+ Flag indicating whether to generate update views.
+
+
+
+ Gets the parent mapping item collection.
+
+
+
+
+ Gets the type kind for this item
+
+
+
+
+ Gets the conceptual entity container.
+
+
+
+
+ Gets the store entity container.
+
+
+
+
+ Gets the entity set mappings.
+
+
+
+
+ Gets the association set mappings.
+
+
+
+
+ Gets the function import mappings.
+
+
+
+
+ Gets a flag that indicates whether to generate the update views or not.
+
+
+
+
+ Adds an entity set mapping.
+
+ The entity set mapping to add.
+
+
+
+ Removes an association set mapping.
+
+ The association set mapping to remove.
+
+
+
+ Adds an association set mapping.
+
+ The association set mapping to add.
+
+
+
+ Removes an association set mapping.
+
+ The association set mapping to remove.
+
+
+
+ Adds a function import mapping.
+
+ The function import mapping to add.
+
+
+
+ Removes a function import mapping.
+
+ The function import mapping to remove.
+
+
+
+ Represents the Mapping metadata for an Extent in CS space.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityTypeMapping
+ --MappingFragment
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ This class represents the metadata for all the extent map elements in the
+ above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping.
+ The EntitySetBaseMapping elements that are children of the EntityContainerMapping element
+ can be accessed through the properties on this type.
+
+
+
+
+ Gets the parent container mapping.
+
+
+
+
+ Gets or sets the query view associated with this mapping.
+
+
+
+
+ Represents the Mapping metadata for an EntitySet in CS space.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityTypeMapping
+ --MappingFragment
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ This class represents the metadata for the EntitySetMapping elements in the
+ above example. And it is possible to access the EntityTypeMaps underneath it.
+
+
+
+
+ Initializes a new EntitySetMapping instance.
+
+ The entity set to be mapped.
+ The parent container mapping.
+
+
+
+ Gets the entity set that is mapped.
+
+
+
+
+ Gets the contained entity type mappings.
+
+
+
+
+ Gets the corresponding function mappings.
+
+
+
+
+ Adds a type mapping.
+
+ The type mapping to add.
+
+
+
+ Removes a type mapping.
+
+ The type mapping to remove.
+
+
+
+ Adds a function mapping.
+
+ The function mapping to add.
+
+
+
+ Removes a function mapping.
+
+ The function mapping to remove.
+
+
+
+ Mapping metadata for Entity type.
+ If an EntitySet represents entities of more than one type, than we will have
+ more than one EntityTypeMapping for an EntitySet( For ex : if
+ PersonSet Entity extent represents entities of types Person and Customer,
+ than we will have two EntityType Mappings under mapping for PersonSet).
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ComplexPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EndPropertyMap
+ --ScalarPropertyMap
+ This class represents the metadata for all entity Type map elements in the
+ above example. Users can access the table mapping fragments under the
+ entity type mapping through this class.
+
+
+
+
+ Creates an EntityTypeMapping instance.
+
+ The EntitySetMapping that contains this EntityTypeMapping.
+
+
+
+ Gets the EntitySetMapping that contains this EntityTypeMapping.
+
+
+
+
+ Gets the single EntityType being mapped. Throws exception in case of hierarchy type mapping.
+
+
+
+
+ Gets a flag that indicates whether this is a type hierarchy mapping.
+
+
+
+
+ Gets a read-only collection of mapping fragments.
+
+
+
+
+ Gets the mapped entity types.
+
+
+
+
+ Gets the mapped base types for a hierarchy mapping.
+
+
+
+
+ Adds an entity type to the mapping.
+
+ The EntityType to be added.
+
+
+
+ Removes an entity type from the mapping.
+
+ The EntityType to be removed.
+
+
+
+ Adds an entity type hierarchy to the mapping.
+ The hierarchy is represented by the specified root entity type.
+
+ The root EntityType of the hierarchy to be added.
+
+
+
+ Removes an entity type hierarchy from the mapping.
+ The hierarchy is represented by the specified root entity type.
+
+ The root EntityType of the hierarchy to be removed.
+
+
+
+ Adds a mapping fragment.
+
+ The mapping fragment to be added.
+
+
+
+ Removes a mapping fragment.
+
+ The mapping fragment to be removed.
+
+
+
+ Describes modification function mappings for an entity type within an entity set.
+
+
+
+
+ Initializes a new EntityTypeModificationFunctionMapping instance.
+
+ An entity type.
+ A delete function mapping.
+ An insert function mapping.
+ An updated function mapping.
+
+
+
+ Gets the entity type.
+
+
+
+
+ Gets the delete function mapping.
+
+
+
+
+ Gets the insert function mapping.
+
+
+
+
+ Gets the update function mapping.
+
+
+
+
+
+
+
+ Base class for the type created at design time to store the generated views.
+
+
+
+ Returns the key/value pair at the specified index, which contains the view and its key.
+ The key/value pair at index , which contains the view and its key.
+ The index of the view.
+
+
+
+ Gets or sets the name of .
+
+ The container name.
+
+
+
+ Gets or sets in storage schema.
+
+ Container name.
+
+
+ Hash value.
+ Hash value.
+
+
+ Hash value of views.
+ Hash value.
+
+
+ Gets or sets view count.
+ View count.
+
+
+
+ Attribute to mark the assemblies that contain the generated views type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The view type.
+
+
+ Gets the T:System.Type of the view.
+ The T:System.Type of the view.
+
+
+
+ Represents a complex type mapping for a function import result.
+
+
+
+
+ Initializes a new FunctionImportComplexTypeMapping instance.
+
+ The return type.
+ The property mappings for the result type of a function import.
+
+
+
+ Ges the return type.
+
+
+
+
+ Represents a function import entity type mapping.
+
+
+
+
+ Initializes a new FunctionImportEntityTypeMapping instance.
+
+ The entity types at the base of
+ the type hierarchies to be mapped.
+ The entity types to be mapped.
+ The property mappings for the result types of a function import.
+ The mapping conditions.
+
+
+
+ Gets the entity types being mapped.
+
+
+
+
+ Gets the entity types at the base of the hierarchies being mapped.
+
+
+
+
+ Gets the mapping conditions.
+
+
+
+
+ Represents a mapping condition for a function import result.
+
+
+
+
+ Gets the name of the column used to evaluate the condition.
+
+
+
+
+
+
+
+ Represents a mapping condition for the result of a function import
+ evaluated by checking null or not null.
+
+
+
+
+ Initializes a new FunctionImportEntityTypeMappingConditionIsNull instance.
+
+ The name of the column used to evaluate the condition.
+ Flag that indicates whether a null or not null check is performed.
+
+
+
+ Gets a flag that indicates whether a null or not null check is performed.
+
+
+
+
+ Represents a mapping condition for the result of a function import,
+ evaluated by comparison with a specified value.
+
+
+
+
+ Initializes a new FunctionImportEntityTypeMappingConditionValue instance.
+
+ The name of the column used to evaluate the condition.
+ The value to compare with.
+
+
+
+ Gets the value used for comparison.
+
+
+
+
+ Represents a mapping from a model function import to a store composable or non-composable function.
+
+
+
+
+ Gets model function (or source of the mapping)
+
+
+
+
+ Gets store function (or target of the mapping)
+
+
+
+
+ Represents a mapping from a model function import to a store composable function.
+
+
+
+
+ Initializes a new FunctionImportMappingComposable instance.
+
+ The model function import.
+ The store composable function.
+ The result mapping for the function import.
+ The parent container mapping.
+
+
+
+ Gets the result mapping for the function import.
+
+
+
+
+ Represents a mapping from a model function import to a store non-composable function.
+
+
+
+
+ Initializes a new FunctionImportMappingNonComposable instance.
+
+ The model function import.
+ The store non-composable function.
+ The function import result mappings.
+ The parent container mapping.
+
+
+
+ Gets the function import result mappings.
+
+
+
+
+ Represents a result mapping for a function import.
+
+
+
+
+ Gets the type mappings.
+
+
+
+
+ Adds a type mapping.
+
+ The type mapping to add.
+
+
+
+ Removes a type mapping.
+
+ The type mapping to remove.
+
+
+
+ Base class for mapping a property of a function import return type.
+
+
+
+
+ Maps a function import return type property to a table column.
+
+
+
+
+ Initializes a new FunctionImportReturnTypeScalarPropertyMapping instance.
+
+ The mapped property name.
+ The mapped column name.
+
+
+
+ Gets the mapped property name.
+
+
+
+
+ Gets the mapped column name.
+
+
+
+
+ Specifies a function import structural type mapping.
+
+
+
+
+ Gets the property mappings for the result type of a function import.
+
+
+
+
+ Specifies a mapping condition evaluated by checking whether the value
+ of the a property/column is null or not null.
+
+
+
+
+ Creates an IsNullConditionMapping instance.
+
+ An EdmProperty that specifies a property or column.
+ A boolean that indicates whether to perform a null or a not-null check.
+
+
+
+ Gets a bool that specifies whether the condition is evaluated by performing a null check
+ or a not-null check.
+
+
+
+
+ Represents the base item class for all the mapping metadata
+
+
+
+
+ Represents the metadata for mapping fragment.
+ A set of mapping fragments makes up the Set mappings( EntitySet, AssociationSet or CompositionSet )
+ Each MappingFragment provides mapping for those properties of a type that map to a single table.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ComplexPropertyMap
+ --ComplexTypeMapping
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --DiscriminatorPropertyMap ( constant value-->SMemberMetadata )
+ --ComplexTypeMapping
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --DiscriminatorPropertyMap ( constant value-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ This class represents the metadata for all the mapping fragment elements in the
+ above example. Users can access all the top level constructs of
+ MappingFragment element like EntityKey map, Property Maps, Discriminator
+ property through this mapping fragment class.
+
+
+
+
+ Creates a MappingFragment instance.
+
+ The EntitySet corresponding to the table of view being mapped.
+ The TypeMapping that contains this MappingFragment.
+ Flag that indicates whether to include 'DISTINCT' when generating queries.
+
+
+
+ Gets the EntitySet corresponding to the table or view being mapped.
+
+
+
+
+ Gets the TypeMapping that contains this MappingFragment.
+
+
+
+
+ Gets a flag that indicates whether to include 'DISTINCT' when generating queries.
+
+
+
+
+ Gets a read-only collection of property mappings.
+
+
+
+
+ Gets a read-only collection of property mapping conditions.
+
+
+
+
+ Adds a property mapping.
+
+ The property mapping to be added.
+
+
+
+ Removes a property mapping.
+
+ The property mapping to be removed.
+
+
+
+ Adds a property mapping condition.
+
+ The property mapping condition to be added.
+
+
+
+ Removes a property mapping condition.
+
+ The property mapping condition to be removed.
+
+
+
+ Base class for items in the mapping space (DataSpace.CSSpace)
+
+
+
+
+ Class for representing a collection of mapping items in Edm space.
+
+
+
+
+ Describes modification function binding for change processing of entities or associations.
+
+
+
+
+ Initializes a new ModificationFunctionMapping instance.
+
+ The entity or association set.
+ The entity or association type.
+ The metadata of function to which we should bind.
+ Bindings for function parameters.
+ The output parameter producing number of rows affected.
+ Bindings for the results of function evaluation
+
+
+
+ Gets output parameter producing number of rows affected. May be null.
+
+
+
+
+ Gets Metadata of function to which we should bind.
+
+
+
+
+ Gets bindings for function parameters.
+
+
+
+
+ Gets bindings for the results of function evaluation.
+
+
+
+
+
+
+
+ Describes the location of a member within an entity or association type structure.
+
+
+
+
+ Initializes a new ModificationFunctionMemberPath instance.
+
+ Gets the members in the path from the leaf (the member being bound)
+ to the root of the structure.
+ Gets the association set to which we are navigating
+ via this member. If the value is null, this is not a navigation member path.
+
+
+
+ Gets the members in the path from the leaf (the member being bound)
+ to the Root of the structure.
+
+
+
+
+ Gets the association set to which we are navigating via this member. If the value
+ is null, this is not a navigation member path.
+
+
+
+
+
+
+
+ Binds a modification function parameter to a member of the entity or association being modified.
+
+
+
+
+ Initializes a new ModificationFunctionParameterBinding instance.
+
+ The parameter taking the value.
+ The path to the entity or association member defining the value.
+ A flag indicating whether the current or original member value is being bound.
+
+
+
+ Gets the parameter taking the value.
+
+
+
+
+ Gets the path to the entity or association member defining the value.
+
+
+
+
+ Gets a flag indicating whether the current or original
+ member value is being bound.
+
+
+
+
+
+
+
+ Defines a binding from a named result set column to a member taking the value.
+
+
+
+
+ Initializes a new ModificationFunctionResultBinding instance.
+
+ The name of the column to bind from the function result set.
+ The property to be set on the entity.
+
+
+
+ Gets the name of the column to bind from the function result set.
+
+
+
+
+ Gets the property to be set on the entity.
+
+
+
+
+
+
+
+ Mapping metadata for all types of property mappings.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ComplexPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EndPropertyMap
+ --ScalarPropertyMap
+ This class represents the metadata for all property map elements in the
+ above example. This includes the scalar property maps, complex property maps
+ and end property maps.
+
+
+
+
+ Gets an EdmProperty that specifies the mapped property.
+
+
+
+
+ Mapping metadata for scalar properties.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ComplexPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ --EndPropertyMap
+ --ScalarPropertyMap ( CMemberMetadata-->SMemberMetadata )
+ This class represents the metadata for all the scalar property map elements in the
+ above example.
+
+
+
+
+ Creates a mapping between a simple property and a column.
+
+ The property to be mapped.
+ The column to be mapped.
+
+
+
+ Gets an EdmProperty that specifies the mapped column.
+
+
+
+
+ Represents a collection of items in Storage Mapping (CS Mapping) space.
+
+
+
+ Initializes a new instance of the class using the specified , and a collection of string indicating the metadata file paths.
+ The that this mapping is to use.
+ The that this mapping is to use.
+ The file paths that this mapping is to use.
+
+
+ Initializes a new instance of the class using the specified , and XML readers.
+ The that this mapping is to use.
+ The that this mapping is to use.
+ The XML readers that this mapping is to use.
+
+
+
+ Gets or sets a for creating instances
+ that are used to retrieve pre-generated mapping views.
+
+
+
+ Gets the version of this represents.
+ The version of this represents.
+
+
+
+ Computes a hash value for the container mapping specified by the names of the mapped containers.
+
+ The name of a container in the conceptual model.
+ The name of a container in the store model.
+ A string that specifies the computed hash value.
+
+
+
+ Computes a hash value for the single container mapping in the collection.
+
+ A string that specifies the computed hash value.
+
+
+
+ Creates a dictionary of (extent, generated view) for a container mapping specified by
+ the names of the mapped containers.
+
+ The name of a container in the conceptual model.
+ The name of a container in the store model.
+ A list that accumulates potential errors.
+
+ A dictionary of (, ) that specifies the generated views.
+
+
+
+
+ Creates a dictionary of (extent, generated view) for the single container mapping
+ in the collection.
+
+ A list that accumulates potential errors.
+
+ A dictionary of (, ) that specifies the generated views.
+
+
+
+
+ Factory method that creates a .
+
+
+ The edm metadata collection to map. Must not be null.
+
+
+ The store metadata collection to map. Must not be null.
+
+
+ MSL artifacts to load. Must not be null.
+
+
+ Paths to MSL artifacts. Used in error messages. Can be null in which case
+ the base Uri of the XmlReader will be used as a path.
+
+
+ The collection of errors encountered while loading.
+
+
+ instance if no errors encountered. Otherwise null.
+
+
+
+
+ Specifies a structural type mapping.
+
+
+
+
+ Gets a read-only collection of property mappings.
+
+
+
+
+ Gets a read-only collection of property mapping conditions.
+
+
+
+
+ Adds a property mapping.
+
+ The property mapping to be added.
+
+
+
+ Removes a property mapping.
+
+ The property mapping to be removed.
+
+
+
+ Adds a property mapping condition.
+
+ The property mapping condition to be added.
+
+
+
+ Removes a property mapping condition.
+
+ The property mapping condition to be removed.
+
+
+
+ Represents the Mapping metadata for a type map in CS space.
+
+
+ For Example if conceptually you could represent the CS MSL file as following
+ --Mapping
+ --EntityContainerMapping ( CNorthwind-->SNorthwind )
+ --EntitySetMapping
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EntityTypeMapping
+ --MappingFragment
+ --EntityKey
+ --ScalarPropertyMap
+ --ComplexPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --AssociationSetMapping
+ --AssociationTypeMapping
+ --MappingFragment
+ --EndPropertyMap
+ --ScalarPropertyMap
+ --ScalarPropertyMap
+ --EndPropertyMap
+ --ScalarPropertyMap
+ This class represents the metadata for all the Type map elements in the
+ above example namely EntityTypeMapping, AssociationTypeMapping and CompositionTypeMapping.
+ The TypeMapping elements contain TableMappingFragments which in turn contain the property maps.
+
+
+
+
+ Specifies a mapping condition evaluated by comparing the value of
+ a property or column with a given value.
+
+
+
+
+ Creates a ValueConditionMapping instance.
+
+ An EdmProperty that specifies a property or column.
+ An object that specifies the value to compare with.
+
+
+
+ Gets an object that specifies the value to check against.
+
+
+
+
+ metadata exception class
+
+
+
+
+ Initializes a new instance of the class with a default message.
+
+
+
+
+ Initializes a new instance of the class with the specified message.
+
+ The exception message.
+
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+
+ The exception message.
+
+ The exception that is the cause of this .
+
+
+
+
+ Represents a end of a Association Type
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Creates a read-only AssociationEndMember instance.
+
+ The name of the association end member.
+ The reference type for the end.
+ The multiplicity of the end.
+ Flag that indicates the delete behavior of the end.
+ Metadata properties to be associated with the instance.
+ The newly created AssociationEndMember instance.
+ The specified name is null or empty.
+ The specified reference type is null.
+
+
+
+ Class for representing an Association set
+
+
+
+
+ Gets the association related to this .
+
+
+ An object that represents the association related to this
+
+ .
+
+
+
+
+ Gets the ends of this .
+
+
+ A collection of type that contains the ends of this
+
+ .
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents built-in type kind for this
+
+ .
+
+
+
+
+ Creates a read-only AssociationSet instance from the specified parameters.
+
+ The name of the association set.
+ The association type of the elements in the association set.
+ The entity set for the source association set end.
+ The entity set for the target association set end.
+ Metadata properties to be associated with the instance.
+ The newly created AssociationSet instance.
+ The specified name is null or empty.
+ The specified association type is null.
+
+ The entity type of one of the ends of the specified
+ association type does not match the entity type of the corresponding entity set end.
+
+
+
+
+ Class representing a AssociationSet End
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the parent association set of this .
+
+
+ An object that represents the parent association set of this
+
+ .
+
+ Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state
+
+
+
+ Gets the End member that this object corresponds to.
+
+
+ An object that represents the End member that this
+
+ object corresponds to.
+
+ Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state
+
+
+
+ Gets the name of the End for this .
+
+
+ The name of the End for this .
+
+
+
+
+ Gets the name of the End role for this .
+
+
+ The name of the End role for this .
+
+ Thrown if Setter is called when the AssociationSetEnd instance is in ReadOnly state
+
+
+ Gets the entity set referenced by this End role.
+
+ An object that represents the entity set referred by this End role.
+
+
+
+
+ Returns the name of the End role for this .
+
+
+ The name of the End role for this .
+
+
+
+
+ Describes an association/relationship between two entities in the conceptual model or a foreign key relationship
+ between two tables in the store model. In the conceptual model the dependant class may or may not define a foreign key property.
+ If a foreign key is defined the property will be true and the property will contain details of the foreign keys
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the list of ends for this .
+
+
+ A collection of type that contains the list of ends for this
+
+ .
+
+
+
+ Gets or sets the referential constraint.
+ The referential constraint.
+
+
+
+ Gets the list of constraints for this .
+
+
+ A collection of type that contains the list of constraints for this
+
+ .
+
+
+
+ Gets the Boolean property value that specifies whether the column is a foreign key.
+ A Boolean value that specifies whether the column is a foreign key. If true, the column is a foreign key. If false (default), the column is not a foreign key.
+
+
+
+ Creates a read-only AssociationType instance from the specified parameters.
+
+ The name of the association type.
+ The namespace of the association type.
+ Flag that indicates a foreign key (FK) relationship.
+ The data space for the association type.
+ The source association end member.
+ The target association end member.
+ A referential constraint.
+ Metadata properties to be associated with the instance.
+ The newly created AssociationType instance.
+ The specified name is null or empty.
+ The specified namespace is null or empty.
+
+
+
+ List of all the built in types
+
+
+
+
+ Association Type Kind
+
+
+
+
+ AssociationSetEnd Kind
+
+
+
+
+ AssociationSet Kind
+
+
+
+
+ Association Type Kind
+
+
+
+
+ EntitySetBase Kind
+
+
+
+
+ Entity Type Base Kind
+
+
+
+
+ Collection Type Kind
+
+
+
+
+ Collection Kind
+
+
+
+
+ Complex Type Kind
+
+
+
+
+ Documentation Kind
+
+
+
+
+ DeleteAction Type Kind
+
+
+
+
+ Edm Type Kind
+
+
+
+
+ Entity Container Kind
+
+
+
+
+ Entity Set Kind
+
+
+
+
+ Entity Type Kind
+
+
+
+
+ Enumeration Type Kind
+
+
+
+
+ Enum Member Kind
+
+
+
+
+ Facet Kind
+
+
+
+
+ EdmFunction Kind
+
+
+
+
+ Function Parameter Kind
+
+
+
+
+ Global Item Type Kind
+
+
+
+
+ Metadata Property Kind
+
+
+
+
+ Navigation Property Kind
+
+
+
+
+ Metadata Item Type Kind
+
+
+
+
+ EdmMember Type Kind
+
+
+
+
+ Parameter Mode Kind
+
+
+
+
+ Primitive Type Kind
+
+
+
+
+ Primitive Type Kind Kind
+
+
+
+
+ EdmProperty Type Kind
+
+
+
+
+ ProviderManifest Type Kind
+
+
+
+
+ Referential Constraint Type Kind
+
+
+
+
+ Ref Type Kind
+
+
+
+
+ RelationshipEnd Type Kind
+
+
+
+
+ Relationship Multiplicity Type Kind
+
+
+
+
+ Relationship Set Type Kind
+
+
+
+
+ Relationship Type
+
+
+
+
+ Row Type Kind
+
+
+
+
+ Simple Type Kind
+
+
+
+
+ Structural Type Kind
+
+
+
+
+ Type Information Kind
+
+
+
+
+ Kind of collection (applied to Properties)
+
+
+
+
+ Property is not a Collection
+
+
+
+
+ Collection has Bag semantics( unordered and duplicates ok)
+
+
+
+
+ Collection has List semantics
+ (Order is deterministic and duplicates ok)
+
+
+
+
+ Represents the Edm Collection Type
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the instance of the class that contains the type of the element that this current
+
+ object includes and facets for that type.
+
+
+ The instance of the class that contains the type of the element that this current
+
+ object includes and facets for that type.
+
+
+
+
+ Represents the Edm Complex Type. This can be used to configure complex types
+ from a conceptual-space model-based convention. Complex types are not supported in the store model.
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the list of properties for this .
+
+
+ A collection of type that contains the list of properties for this
+
+ .
+
+
+
+
+ Creates a new instance of the type.
+
+ The name of the complex type.
+ The namespace of the complex type.
+ The dataspace to which the complex type belongs to.
+ Members of the complex type.
+ Metadata properties to be associated with the instance.
+ Thrown if either name, namespace or members argument is null.
+
+ A new instance a the type.
+
+
+ The newly created will be read only.
+
+
+
+
+ The concurrency mode for properties.
+
+
+
+
+ Default concurrency mode: the property is never validated
+ at write time
+
+
+
+
+ Fixed concurrency mode: the property is always validated at
+ write time
+
+
+
+
+ Serializes an that conforms to the restrictions of a single
+ CSDL schema file to an XML writer. The model to be serialized must contain a single
+ .
+
+
+
+
+ Occurs when an error is encountered serializing the model.
+
+
+
+
+ Serialize the to the XmlWriter.
+
+
+ The EdmModel to serialize.
+
+ The XmlWriter to serialize to.
+ The serialized model's namespace.
+ true if the model is valid; otherwise, false.
+
+
+
+ Information about an error that occurred processing an Entity Framework model.
+
+
+
+
+ Gets an optional value indicating which property of the source item caused the event to be raised.
+
+
+
+
+ Gets an optional descriptive message the describes the error that is being raised.
+
+
+
+
+ Gets a value indicating the that caused the event to be raised.
+
+
+
+
+ DataSpace
+
+
+
+
+ OSpace indicates the item in the clr space
+
+
+
+
+ CSpace indicates the item in the CSpace - edm primitive types +
+ types defined in csdl
+
+
+
+
+ SSpace indicates the item in the SSpace
+
+
+
+
+ Mapping between OSpace and CSpace
+
+
+
+
+ Mapping between CSpace and SSpace
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Gets the conceptual model from the specified DbModel.
+
+ An instance of a class that implements IEdmModelAdapter (ex. DbModel).
+ An instance of EdmModel that represents the conceptual model.
+
+
+
+ Gets the store model from the specified DbModel.
+
+ An instance of a class that implements IEdmModelAdapter (ex. DbModel).
+ An instance of EdmModel that represents the store model.
+
+
+
+ Class representing the Documentation associated with an item
+
+
+
+
+ Initializes a new Documentation instance.
+
+ A summary string.
+ A long description string.
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the summary for this .
+
+
+ The summary for this .
+
+
+
+
+ Gets the long description for this .
+
+
+ The long description for this .
+
+
+
+
+ Gets a value indicating whether this object contains only a null or an empty
+
+ and a
+
+ .
+
+
+ true if this object contains only a null or an empty
+
+ and a
+
+ ; otherwise, false.
+
+
+
+
+ Returns the summary for this .
+
+
+ The summary for this .
+
+
+
+
+ This class encapsulates the error information for a generic EDM error.
+
+
+
+ Gets the error message.
+ The error message.
+
+
+
+ Class for representing a function
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ One of the enumeration values of the enumeration.
+
+
+
+ Returns the full name (namespace plus name) of this type.
+ The full name of the type.
+
+
+
+ Gets the parameters of this .
+
+
+ A collection of type that contains the parameters of this
+
+ .
+
+
+
+
+ Adds a parameter to this function.
+
+ The parameter to be added.
+
+
+
+ Gets the return parameter of this .
+
+
+ A object that represents the return parameter of this
+
+ .
+
+
+
+
+ Gets the return parameters of this .
+
+
+ A collection of type that represents the return parameters of this
+
+ .
+
+
+
+ Gets the store function name attribute of this function.
+
+
+ Gets the parameter type semantics attribute of this function.
+
+
+ Gets the aggregate attribute of this function.
+
+
+
+ Gets a value indicating whether built in attribute is present on this function.
+
+
+ true if the attribute is present; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is from the provider manifest.
+
+
+ true if this instance is from the provider manifest; otherwise, false.
+
+
+
+
+ Gets a value indicating whether the is a niladic function (a function that accepts no arguments).
+
+
+ true if the function is niladic; otherwise, false.
+
+
+
+ Gets whether this instance is mapped to a function or to a stored procedure.
+ true if this instance is mapped to a function; false if this instance is mapped to a stored procedure.
+
+
+ Gets a query in the language that is used by the database management system or storage model.
+
+ A string value in the syntax used by the database management system or storage model that contains the query or update statement of the
+
+ .
+
+
+
+ Gets or sets the schema associated with the function.
+ The schema associated with the function.
+
+
+
+ The factory method for constructing the object.
+
+ The name of the function.
+ The namespace of the function.
+ The namespace the function belongs to.
+ Additional function attributes and properties.
+ Metadata properties that will be added to the function. Can be null.
+
+ A new, read-only instance of the type.
+
+
+
+
+ Contains additional attributes and properties of the
+
+
+ Note that objects are short lived and exist only to
+ make initialization easier. Instance of this type are not
+ compared to each other and arrays returned by array properties are copied to internal
+ collections in the ctor. Therefore it is fine to suppress the
+ Code Analysis messages.
+
+
+
+ Gets or sets the function schema.
+ The function schema.
+
+
+ Gets or sets the store function name.
+ The store function name.
+
+
+ Gets or sets the command text associated with the function.
+ The command text associated with the function.
+
+
+ Gets or sets the entity sets for the function.
+ The entity sets for the function.
+
+
+ Gets a value that indicates whether this is an aggregate function.
+ true if this is an aggregate function; otherwise, false.
+
+
+ Gets or sets whether this function is a built-in function.
+ true if this function is a built-in function; otherwise, false.
+
+
+ Gets or sets whether the function contains no arguments.
+ true if the function contains no arguments; otherwise, false.
+
+
+ Gets or sets whether this function can be composed.
+ true if this function can be composed; otherwise, false.
+
+
+ Gets or sets whether this function is from a provider manifest.
+ true if this function is from a provider manifest; otherwise, false.
+
+
+ Gets or sets whether this function is a cached store function.
+ true if this function is a cached store function; otherwise, false.
+
+
+ Gets or sets whether this function is a function import.
+ true if this function is a function import; otherwise, false.
+
+
+ Gets or sets the return parameters.
+ The return parameters.
+
+
+ Gets or sets the parameter type semantics.
+ The parameter type semantics.
+
+
+ Gets or sets the function parameters.
+ The function parameters.
+
+
+
+ Class for representing a collection of items in Edm space.
+
+
+
+
+ Initializes a new instance of the class by using the collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist.
+
+ The collection of the XMLReader objects where the conceptual schema definition language (CSDL) files exist.
+
+
+ Initializes a new instance of the class.
+ The entity data model.
+
+
+
+ Initializes a new instance of the class by using the paths where the conceptual schema definition language (CSDL) files exist.
+
+ The paths where the conceptual schema definition language (CSDL) files exist.
+
+
+ Gets the conceptual model version for this collection.
+ The conceptual model version for this collection.
+
+
+
+ Returns a collection of the objects.
+
+
+ A ReadOnlyCollection object that represents a collection of the
+
+ objects.
+
+
+
+
+ Returns a collection of the objects with the specified conceptual model version.
+
+
+ A ReadOnlyCollection object that represents a collection of the
+
+ objects.
+
+ The conceptual model version.
+
+
+
+ Factory method that creates an .
+
+
+ CSDL artifacts to load. Must not be null.
+
+
+ Paths to CSDL artifacts. Used in error messages. Can be null in which case
+ the base Uri of the XmlReader will be used as a path.
+
+
+ The collection of errors encountered while loading.
+
+
+ instance if no errors encountered. Otherwise null.
+
+
+
+
+ Represents the edm member class
+
+
+
+
+ Gets or sets the name of the property. Setting this from a store-space model-convention will change the name of the database
+ column for this property. In the conceptual model, this should align with the corresponding property from the entity class
+ and should not be changed.
+
+ The name of this member.
+
+
+ Gets the type on which this member is declared.
+
+ A object that represents the type on which this member is declared.
+
+
+
+
+ Gets the instance of the class that contains both the type of the member and facets for the type.
+
+
+ A object that contains both the type of the member and facets for the type.
+
+
+
+ Returns the name of this member.
+ The name of this member.
+
+
+
+ Tells whether this member is marked as a Computed member in the EDM definition
+
+
+
+
+ Tells whether this member's Store generated pattern is marked as Identity in the EDM definition
+
+
+
+
+ Represents a conceptual or store model. This class can be used to access information about the shape of the model
+ and the way the that it has been configured.
+
+
+
+ Gets the built-in type kind for this type.
+
+ A object that represents the built-in type kind for this type.
+
+
+
+
+ Gets the data space associated with the model, which indicates whether
+ it is a conceptual model (DataSpace.CSpace) or a store model (DataSpace.SSpace).
+
+
+
+
+ Gets the association types in the model.
+
+
+
+
+ Gets the complex types in the model.
+
+
+
+
+ Gets the entity types in the model.
+
+
+
+
+ Gets the enum types in the model.
+
+
+
+
+ Gets the functions in the model.
+
+
+
+
+ Gets the container that stores entity and association sets, and function imports.
+
+
+
+ Gets the global items associated with the model.
+ The global items associated with the model.
+
+
+
+ Adds an association type to the model.
+
+ The AssociationType instance to be added.
+
+
+
+ Adds a complex type to the model.
+
+ The ComplexType instance to be added.
+
+
+
+ Adds an entity type to the model.
+
+ The EntityType instance to be added.
+
+
+
+ Adds an enumeration type to the model.
+
+ The EnumType instance to be added.
+
+
+
+ Adds a function to the model.
+
+ The EdmFunction instance to be added.
+
+
+
+ Removes an association type from the model.
+
+ The AssociationType instance to be removed.
+
+
+
+ Removes a complex type from the model.
+
+ The ComplexType instance to be removed.
+
+
+
+ Removes an entity type from the model.
+
+ The EntityType instance to be removed.
+
+
+
+ Removes an enumeration type from the model.
+
+ The EnumType instance to be removed.
+
+
+
+ Removes a function from the model.
+
+ The EdmFunction instance to be removed.
+
+
+
+ In conceptual-space, EdmProperty represents a property on an Entity.
+ In store-space, EdmProperty represents a column in a table.
+
+
+
+ Creates a new primitive property.
+ The newly created property.
+ The name of the property.
+ The type of the property.
+
+
+ Creates a new enum property.
+ The newly created property.
+ The name of the property.
+ The type of the property.
+
+
+ Creates a new complex property.
+ The newly created property.
+ The name of the property.
+ The type of the property.
+
+
+
+ Creates a new instance of EdmProperty type.
+
+ Name of the property.
+
+ Property
+
+ A new instance of EdmProperty type
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets a value indicating whether this can have a null value.
+
+
+ Nullability in the conceptual model and store model is a simple indication of whether or not
+ the property is considered nullable. Nullability in the object model is more complex.
+ When using convention based mapping (as usually happens with POCO entities), a property in the
+ object model is considered nullable if and only if the underlying CLR type is nullable and
+ the property is not part of the primary key.
+ When using attribute based mapping (usually used with entities that derive from the EntityObject
+ base class), a property is considered nullable if the IsNullable flag is set to true in the
+ attribute. This flag can
+ be set to true even if the underlying type is not nullable, and can be set to false even if the
+ underlying type is nullable. The latter case happens as part of default code generation when
+ a non-nullable property in the conceptual model is mapped to a nullable CLR type such as a string.
+ In such a case, the Entity Framework treats the property as non-nullable even though the CLR would
+ allow null to be set.
+ There is no good reason to set a non-nullable CLR type as nullable in the object model and this
+ should not be done even though the attribute allows it.
+
+
+ true if this can have a null value; otherwise, false.
+
+ Thrown if the setter is called when the EdmProperty instance is in ReadOnly state
+
+
+ Gets the type name of the property.
+ The type name of the property.
+
+
+
+ Gets the default value for this .
+
+
+ The default value for this .
+
+ Thrown if the setter is called when the EdmProperty instance is in ReadOnly state
+
+
+ Gets whether the property is a collection type property.
+ true if the property is a collection type property; otherwise, false.
+
+
+ Gets whether this property is a complex type property.
+ true if this property is a complex type property; otherwise, false.
+
+
+ Gets whether this property is a primitive type.
+ true if this property is a primitive type; otherwise, false.
+
+
+ Gets whether this property is an enumeration type property.
+ true if this property is an enumeration type property; otherwise, false.
+
+
+ Gets whether this property is an underlying primitive type.
+ true if this property is an underlying primitive type; otherwise, false.
+
+
+ Gets the complex type information for this property.
+ The complex type information for this property.
+
+
+ Gets the primitive type information for this property.
+ The primitive type information for this property.
+
+
+ Gets the enumeration type information for this property.
+ The enumeration type information for this property.
+
+
+ Gets the underlying primitive type information for this property.
+ The underlying primitive type information for this property.
+
+
+ Gets or sets the concurrency mode for the property.
+ The concurrency mode for the property.
+
+
+ Gets or sets the database generation method for the database column associated with this property
+ The store generated pattern for the property.
+
+
+ Gets or sets the kind of collection for this model.
+ The kind of collection for this model.
+
+
+ Gets whether the maximum length facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets or sets the maximum length of the property.
+ The maximum length of the property.
+
+
+ Gets or sets whether this property uses the maximum length supported by the provider.
+ true if this property uses the maximum length supported by the provider; otherwise, false.
+
+
+ Gets whether the fixed length facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets or sets whether the length of this property is fixed.
+ true if the length of this property is fixed; otherwise, false.
+
+
+ Gets whether the Unicode facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets or sets whether this property is a Unicode property.
+ true if this property is a Unicode property; otherwise, false.
+
+
+ Gets whether the precision facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets or sets the precision of this property.
+ The precision of this property.
+
+
+ Gets whether the scale facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets or sets the scale of this property.
+ The scale of this property.
+
+
+ Sets the metadata properties.
+ The metadata properties to be set.
+
+
+
+ This class encapsulates the error information for a schema error that was encountered.
+
+
+
+
+ Constructs a EdmSchemaError object.
+
+ The explanation of the error.
+ The code associated with this error.
+ The severity of the error.
+
+
+ Returns the error message.
+ The error message.
+
+
+ Gets the error code.
+ The error code.
+
+
+ Gets the severity level of the error.
+
+ One of the values. The default is
+
+ .
+
+
+
+ Gets the line number where the error occurred.
+ The line number where the error occurred.
+
+
+ Gets the column where the error occurred.
+ The column where the error occurred.
+
+
+ Gets the location of the schema that contains the error. This string also includes the name of the schema at the end.
+ The location of the schema that contains the error.
+
+
+ Gets the name of the schema that contains the error.
+ The name of the schema that contains the error.
+
+
+ Gets a string representation of the stack trace at the time the error occurred.
+ A string representation of the stack trace at the time the error occurred.
+
+
+
+ Defines the different severities of errors that can occur when validating an Entity Framework model.
+
+
+
+
+ A warning that does not prevent the model from being used.
+
+
+
+
+ An error that prevents the model from being used.
+
+
+
+
+ Base EdmType class for all the model types
+
+
+
+ Gets the name of this type.
+ The name of this type.
+
+
+ Gets the namespace of this type.
+ The namespace of this type.
+
+
+ Gets a value indicating whether this type is abstract or not.
+ true if this type is abstract; otherwise, false.
+ Thrown if the setter is called on instance that is in ReadOnly state
+
+
+ Gets the base type of this type.
+ The base type of this type.
+ Thrown if the setter is called on instance that is in ReadOnly state
+ Thrown if the value passed in for setter will create a loop in the inheritance chain
+
+
+ Gets the full name of this type.
+ The full name of this type.
+
+
+ Returns the full name of this type.
+ The full name of this type.
+
+
+
+ Returns an instance of the whose element type is this type.
+
+
+ The object whose element type is this type.
+
+
+
+
+ Class for representing an entity container
+
+
+
+
+ Creates an entity container with the specified name and data space.
+
+ The entity container name.
+ The entity container data space.
+ Thrown if the name argument is null.
+ Thrown if the name argument is empty string.
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the name of this .
+
+
+ The name of this .
+
+
+
+
+ Gets a list of entity sets and association sets that this
+
+ includes.
+
+
+ A object that contains a list of entity sets and association sets that this
+
+ includes.
+
+
+
+ Gets the association sets for this entity container.
+ The association sets for this entity container .
+
+
+ Gets the entity sets for this entity container.
+ The entity sets for this entity container .
+
+
+
+ Specifies a collection of elements. Each function contains the details of a stored procedure that exists in the database or equivalent CommandText that is mapped to an entity and its properties.
+
+
+ A that contains
+
+ elements.
+
+
+
+
+ Returns an object by using the specified name for the entity set.
+
+
+ An object that represents the entity set that has the specified name.
+
+ The name of the entity set that is searched for.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+
+ Returns an object by using the specified name for the entity set.
+
+ true if there is an entity set that matches the search criteria; otherwise, false.
+ The name of the entity set that is searched for.
+ true to perform the case-insensitive search; otherwise, false.
+
+ When this method returns, contains an object. If there is no entity set, this output parameter contains null.
+
+
+
+
+ Returns a object by using the specified name for the relationship set.
+
+
+ An object that represents the relationship set that has the specified name.
+
+ The name of the relationship set that is searched for.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+
+ Returns a object by using the specified name for the relationship set.
+
+ true if there is a relationship set that matches the search criteria; otherwise, false.
+ The name of the relationship set that is searched for.
+ true to perform the case-insensitive search; otherwise, false.
+
+ When this method returns, contains a object.
+
+
+
+
+ Returns the name of this .
+
+
+ The name of this .
+
+
+
+
+ Adds the specified entity set to the container.
+
+ The entity set to add.
+
+
+ Removes a specific entity set from the container.
+ The entity set to remove.
+
+
+
+ Adds a function import to the container.
+
+ The function import to add.
+
+
+
+ The factory method for constructing the EntityContainer object.
+
+ The name of the entity container to be created.
+ DataSpace in which this entity container belongs to.
+ Entity sets that will be included in the new container. Can be null.
+ Functions that will be included in the new container. Can be null.
+ Metadata properties to be associated with the instance.
+ The EntityContainer object.
+ Thrown if the name argument is null or empty string.
+ The newly created EntityContainer will be read only.
+
+
+
+ Represents a particular usage of a structure defined in EntityType. In the conceptual-model, this represents a set that can
+ query and persist entities. In the store-model it represents a table.
+ From a store-space model-convention it can be used to configure
+ table name with property and table schema with property.
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the entity type of this .
+
+
+ An object that represents the entity type of this
+
+ .
+
+
+
+
+ The factory method for constructing the EntitySet object.
+
+ The name of the EntitySet.
+ The db schema. Can be null.
+ The db table. Can be null.
+
+ The provider specific query that should be used to retrieve data for this EntitySet. Can be null.
+
+ The entity type of the entities that this entity set type contains.
+
+ Metadata properties that will be added to the newly created EntitySet. Can be null.
+
+ The EntitySet object.
+ Thrown if the name argument is null or empty string.
+ The newly created EntitySet will be read only.
+
+
+
+ Class for representing a entity set
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets escaped provider specific SQL describing this entity set.
+
+
+
+
+ Gets or sets the name of the current entity or relationship set.
+ If this property is changed from store-space, the mapping layer must also be updated to reflect the new name.
+ To change the table name of a store space use the Table property.
+
+ The name of the current entity or relationship set.
+ Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
+
+
+ Gets the entity container of the current entity or relationship set.
+
+ An object that represents the entity container of the current entity or relationship set.
+
+ Thrown if the setter is called when the EntitySetBase instance or the EntityContainer passed into the setter is in ReadOnly state
+
+
+
+ Gets the entity type of this .
+
+
+ An object that represents the entity type of this
+
+ .
+
+ Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
+
+
+
+ Gets or sets the database table name for this entity set.
+
+ if value passed into setter is null
+ Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
+
+
+
+ Gets or sets the database schema for this entity set.
+
+ if value passed into setter is null
+ Thrown if the setter is called when EntitySetBase instance is in ReadOnly state
+
+
+ Returns the name of the current entity or relationship set.
+ The name of the current entity or relationship set.
+
+
+
+ Represents the structure of an . In the conceptual-model this represents the shape and structure
+ of an entity. In the store model this represents the structure of a table. To change the Schema and Table name use EntitySet.
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+ Gets the declared navigation properties associated with the entity type.
+ The declared navigation properties associated with the entity type.
+
+
+
+ Gets the navigation properties of this .
+
+
+ A collection of type that contains the list of navigation properties on this
+
+ .
+
+
+
+ Gets the list of declared properties for the entity type.
+ The declared properties for the entity type.
+
+
+ Gets the collection of declared members for the entity type.
+ The collection of declared members for the entity type.
+
+
+
+ Gets the list of properties for this .
+
+
+ A collection of type that contains the list of properties for this
+
+ .
+
+
+
+
+ Returns a object that references this
+
+ .
+
+
+ A object that references this
+
+ .
+
+
+
+
+ The factory method for constructing the EntityType object.
+
+ The name of the entity type.
+ The namespace of the entity type.
+ The dataspace in which the EntityType belongs to.
+ Name of key members for the type.
+ Members of the entity type (primitive and navigation properties).
+ Metadata properties to be associated with the instance.
+ The EntityType object.
+ Thrown if either name, namespace arguments are null.
+ The newly created EntityType will be read only.
+
+
+
+ The factory method for constructing the EntityType object.
+
+ The name of the entity type.
+ The namespace of the entity type.
+ The dataspace in which the EntityType belongs to.
+ The base type.
+ Name of key members for the type.
+ Members of the entity type (primitive and navigation properties).
+ Metadata properties to be associated with the instance.
+ The EntityType object.
+ Thrown if either name, namespace arguments are null.
+ The newly created EntityType will be read only.
+
+
+
+ Adds the specified navigation property to the members of this type.
+ The navigation property is added regardless of the read-only flag.
+
+ The navigation property to be added.
+
+
+
+ Represents the Entity Type
+
+
+
+ Gets the list of all the key members for the current entity or relationship type.
+
+ A object that represents the list of key members for the current entity or relationship type.
+
+
+
+ Gets the list of all the key properties for this entity type.
+ The list of all the key properties for this entity type.
+
+
+
+ Adds the specified property to the list of keys for the current entity.
+
+ The property to add.
+ if member argument is null
+ Thrown if the EntityType has a base type of another EntityTypeBase. In this case KeyMembers should be added to the base type
+ If the EntityType instance is in ReadOnly state
+
+
+ Removes the specified key member from the collection.
+ The key member to remove.
+
+
+
+ Represents an enumeration member.
+
+
+
+ Gets the kind of this type.
+
+
+ Gets the name of this enumeration member.
+
+
+ Gets the value of this enumeration member.
+
+
+ Overriding System.Object.ToString to provide better String representation for this type.
+ The name of this enumeration member.
+
+
+
+ Creates a read-only EnumMember instance.
+
+ The name of the enumeration member.
+ The value of the enumeration member.
+ Metadata properties to be associated with the enumeration member.
+ The newly created EnumMember instance.
+ name is null or empty.
+
+
+
+ Creates a read-only EnumMember instance.
+
+ The name of the enumeration member.
+ The value of the enumeration member.
+ Metadata properties to be associated with the enumeration member.
+ The newly created EnumMember instance.
+ name is null or empty.
+
+
+
+ Creates a read-only EnumMember instance.
+
+ The name of the enumeration member.
+ The value of the enumeration member.
+ Metadata properties to be associated with the enumeration member.
+ The newly created EnumMember instance.
+ name is null or empty.
+
+
+
+ Creates a read-only EnumMember instance.
+
+ The name of the enumeration member.
+ The value of the enumeration member.
+ Metadata properties to be associated with the enumeration member.
+ The newly created EnumMember instance.
+ name is null or empty.
+
+
+
+ Creates a read-only EnumMember instance.
+
+ The name of the enumeration member.
+ The value of the enumeration member.
+ Metadata properties to be associated with the enumeration member.
+ The newly created EnumMember instance.
+ name is null or empty.
+
+
+
+ Represents an enumeration type.
+
+
+
+ Returns the kind of the type
+
+
+ Gets a collection of enumeration members for this enumeration type.
+
+
+ Gets a value indicating whether the enum type is defined as flags (i.e. can be treated as a bit field)
+
+
+ Gets the underlying type for this enumeration type.
+
+
+
+ Creates a read-only EnumType instance.
+
+ The name of the enumeration type.
+ The namespace of the enumeration type.
+ The underlying type of the enumeration type.
+ Indicates whether the enumeration type can be treated as a bit field; that is, a set of flags.
+ The members of the enumeration type.
+ Metadata properties to be associated with the enumeration type.
+ The newly created EnumType instance.
+ underlyingType is null.
+
+ name is null or empty.
+ -or-
+ namespaceName is null or empty.
+ -or-
+ underlyingType is not a supported underlying type.
+ -or-
+ The specified members do not have unique names.
+ -or-
+ The value of a specified member is not in the range of the underlying type.
+
+
+
+
+ Class for representing a Facet object
+ This object is Immutable (not just set to readonly) and
+ some parts of the system are depending on that behavior
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the description of this .
+
+
+ The object that represents the description of this
+
+ .
+
+
+
+
+ Gets the name of this .
+
+
+ The name of this .
+
+
+
+
+ Gets the type of this .
+
+
+ The object that represents the type of this
+
+ .
+
+
+
+
+ Gets the value of this .
+
+
+ The value of this .
+
+ Thrown if the Facet instance is in ReadOnly state
+
+
+ Gets a value indicating whether the value of the facet is unbounded.
+ true if the value of the facet is unbounded; otherwise, false.
+
+
+
+ Returns the name of this .
+
+
+ The name of this .
+
+
+
+
+ Class for representing a FacetDescription object
+
+
+
+ Gets the name of this facet.
+ The name of this facet.
+
+
+ Gets the type of this facet.
+
+ An object that represents the type of this facet.
+
+
+
+ Gets the minimum value for this facet.
+ The minimum value for this facet.
+
+
+ Gets the maximum value for this facet.
+ The maximum value for this facet.
+
+
+ Gets the default value of a facet with this facet description.
+ The default value of a facet with this facet description.
+
+
+ Gets a value indicating whether the value of this facet is a constant.
+ true if this facet is a constant; otherwise, false.
+
+
+ Gets a value indicating whether this facet is a required facet.
+ true if this facet is a required facet; otherwise, false.
+
+
+ Returns the name of this facet.
+ The name of this facet.
+
+
+
+ Class representing a function parameter
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the mode of this .
+
+
+ One of the values.
+
+ Thrown if the FunctionParameter instance is in ReadOnly state
+
+
+
+ Gets the name of this .
+
+
+ The name of this .
+
+
+
+
+ Gets the instance of the class that contains both the type of the parameter and facets for the type.
+
+
+ A object that contains both the type of the parameter and facets for the type.
+
+
+
+ Gets the type name of this parameter.
+ The type name of this parameter.
+
+
+ Gets whether the max length facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets the maximum length of the parameter.
+ The maximum length of the parameter.
+
+
+ Gets whether the parameter uses the maximum length supported by the database provider.
+ true if parameter uses the maximum length supported by the database provider; otherwise, false.
+
+
+ Gets whether the precision facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets the precision value of the parameter.
+ The precision value of the parameter.
+
+
+ Gets whether the scale facet is constant for the database provider.
+ true if the facet is constant; otherwise, false.
+
+
+ Gets the scale value of the parameter.
+ The scale value of the parameter.
+
+
+
+ Gets the on which this parameter is declared.
+
+
+ A object that represents the function on which this parameter is declared.
+
+
+
+
+ Returns the name of this .
+
+
+ The name of this .
+
+
+
+
+ The factory method for constructing the object.
+
+ The name of the parameter.
+ The EdmType of the parameter.
+
+ The of the parameter.
+
+
+ A new, read-only instance of the type.
+
+
+
+
+ Represents the base item class for all the metadata
+
+
+
+
+ An interface to get the underlying store and conceptual model for a .
+
+
+
+
+ Gets the conceptual model.
+
+
+
+
+ Gets the store model.
+
+
+
+
+ Class for representing a collection of items.
+ Most of the implementation for actual maintenance of the collection is
+ done by MetadataCollection
+
+
+
+ Gets the data model associated with this item collection.
+ The data model associated with this item collection.
+
+
+
+ Returns a strongly typed object by using the specified identity.
+
+ The item that is specified by the identity.
+ The identity of the item.
+ The type returned by the method.
+
+
+
+ Returns a strongly typed object by using the specified identity from this item collection.
+
+ true if there is an item that matches the search criteria; otherwise, false.
+ The identity of the item.
+
+ When this method returns, the output parameter contains a
+
+ object. If there is no global item with the specified identity in the item collection, this output parameter contains null.
+
+ The type returned by the method.
+
+
+
+ Returns a strongly typed object by using the specified identity from this item collection.
+
+ true if there is an item that matches the search criteria; otherwise, false.
+ The identity of the item.
+ true to perform the case-insensitive search; otherwise, false.
+
+ When this method returns, the output parameter contains a
+
+ object. If there is no global item with the specified identity in the item collection, this output parameter contains null.
+
+ The type returned by the method.
+
+
+
+ Returns a strongly typed object by using the specified identity with either case-sensitive or case-insensitive search.
+
+ The item that is specified by the identity.
+ The identity of the item.
+ true to perform the case-insensitive search; otherwise, false.
+ The type returned by the method.
+
+
+ Returns all the items of the specified type from this item collection.
+
+ A collection of type that contains all the items of the specified type.
+
+ The type returned by the method.
+
+
+
+ Returns an object by using the specified type name and the namespace name in this item collection.
+
+
+ An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null.
+
+ The name of the type.
+ The namespace of the type.
+
+
+
+ Returns an object by using the specified type name and the namespace name from this item collection.
+
+ true if there is a type that matches the search criteria; otherwise, false.
+ The name of the type.
+ The namespace of the type.
+
+ When this method returns, this output parameter contains an
+
+ object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null.
+
+
+
+
+ Returns an object by using the specified type name and the namespace name from this item collection.
+
+
+ An object that represents the type that matches the specified type name and the namespace name in this item collection. If there is no matched type, this method returns null.
+
+ The name of the type.
+ The namespace of the type.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+
+ Returns an object by using the specified type name and the namespace name from this item collection.
+
+ true if there is a type that matches the search criteria; otherwise, false.
+ The name of the type.
+ The namespace of the type.
+ true to perform the case-insensitive search; otherwise, false.
+
+ When this method returns, this output parameter contains an
+
+ object. If there is no type with the specified name and namespace name in this item collection, this output parameter contains null.
+
+
+
+ Returns all the overloads of the functions by using the specified name from this item collection.
+
+ A collection of type that contains all the functions that have the specified name.
+
+ The full name of the function.
+
+
+ Returns all the overloads of the functions by using the specified name from this item collection.
+
+ A collection of type that contains all the functions that have the specified name.
+
+ The full name of the function.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+ Returns all the overloads of the functions by using the specified name from this item collection.
+ A collection of type ReadOnlyCollection that contains all the functions that have the specified name.
+ A dictionary of functions.
+ The full name of the function.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+
+ Returns an object by using the specified entity container name.
+
+ If there is no entity container, this method returns null; otherwise, it returns the first one.
+ The name of the entity container.
+
+
+
+ Returns an object by using the specified entity container name. If there is no entity container, the output parameter contains null; otherwise, it contains the first entity container.
+
+ true if there is an entity container that matches the search criteria; otherwise, false.
+ The name of the entity container.
+
+ When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container.
+
+
+
+
+ Returns an object by using the specified entity container name.
+
+ If there is no entity container, this method returns null; otherwise, it returns the first entity container.
+ The name of the entity container.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+
+ Returns an object by using the specified entity container name. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container.
+
+ true if there is an entity container that matches the search criteria; otherwise, false.
+ The name of the entity container.
+ true to perform the case-insensitive search; otherwise, false.
+
+ When this method returns, it contains an object. If there is no entity container, this output parameter contains null; otherwise, it contains the first entity container.
+
+
+
+
+ Do not perform any extension check
+
+
+
+
+ Check the extension against a specific value
+
+
+
+
+ Check the extension against the set of acceptable extensions
+
+
+
+
+ Represents the base item class for all the metadata
+
+
+ Represents the base item class for all the metadata
+
+
+
+ Gets the built-in type kind for this type.
+
+ A object that represents the built-in type kind for this type.
+
+
+
+ Gets the list of properties of the current type.
+
+ A collection of type that contains the list of properties of the current type.
+
+
+
+
+ Adds or updates an annotation with the specified name and value.
+
+
+ If an annotation with the given name already exists then the value of that annotation
+ is updated to the given value. If the given value is null then the annotation will be
+ removed.
+
+ The name of the annotation property.
+ The value of the annotation property.
+
+
+
+ Removes an annotation with the specified name.
+
+ The name of the annotation property.
+ true if an annotation was removed; otherwise, false.
+
+
+ Gets or sets the documentation associated with this type.
+
+ A object that represents the documentation on this type.
+
+
+
+
+ Returns a conceptual model built-in type that matches one of the
+
+ values.
+
+
+ An object that represents the built-in type in the EDM.
+
+
+ One of the values.
+
+
+
+ Returns the list of the general facet descriptions for a specified type.
+
+ A object that represents the list of the general facet descriptions for a specified type.
+
+
+
+
+ Class representing a metadata attribute for an item
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the name of this .
+
+
+ The name of this .
+
+
+
+
+ Gets the value of this .
+
+
+ The value of this .
+
+ Thrown if the MetadataProperty instance is in readonly state
+
+
+
+ Gets the instance of the class that contains both the type of this
+
+ and facets for the type.
+
+
+ A object that contains both the type of this
+
+ and facets for the type.
+
+ Thrown if the MetadataProperty instance is in readonly state
+
+
+
+ Gets the value of this .
+
+
+ The value of this .
+
+
+
+
+ Gets a boolean that indicates whether the metadata property is an annotation.
+
+
+
+
+ The factory method for constructing the MetadataProperty object.
+
+ The name of the metadata property.
+ The type usage of the metadata property.
+ The value of the metadata property.
+ The MetadataProperty object.
+
+ Thrown is null.
+
+ The newly created MetadataProperty will be read only.
+
+
+
+ Creates a metadata annotation having the specified name and value.
+
+ The annotation name.
+ The annotation value.
+ A MetadataProperty instance representing the created annotation.
+
+
+
+ Runtime Metadata Workspace
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Constructs a with loaders for all item collections ()
+ needed by EF except the o/c mapping which will be created automatically based on the given o-space and c-space
+ loaders. The item collection delegates are executed lazily when a given collection is used for the first
+ time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this
+ is rarely done, and any attempt by EF to use the collection in such cases will result in an exception.
+
+ Delegate to return the c-space (CSDL) item collection.
+ Delegate to return the s-space (SSDL) item collection.
+ Delegate to return the c/s mapping (MSL) item collection.
+ Delegate to return the o-space item collection.
+
+
+
+ Constructs a with loaders for all item collections ()
+ that come from traditional EDMX mapping. Default o-space and o/c mapping collections will be used.
+ The item collection delegates are executed lazily when a given collection is used for the first
+ time. It is acceptable to pass a delegate that returns null if the collection will never be used, but this
+ is rarely done, and any attempt by EF to use the collection in such cases will result in an exception.
+
+ Delegate to return the c-space (CSDL) item collection.
+ Delegate to return the s-space (SSDL) item collection.
+ Delegate to return the c/s mapping (MSL) item collection.
+
+
+
+ Initializes a new instance of the class using the specified paths and assemblies.
+
+ The paths to workspace metadata.
+ The names of assemblies used to construct workspace.
+
+
+
+ The Max EDM version thats going to be supported by the runtime.
+
+
+
+
+ Creates an configured to use the
+
+ data space.
+
+ The created parser object.
+
+
+
+ Creates a new bound to this metadata workspace based on the specified query expression.
+
+
+ A new with the specified expression as it's
+
+ property.
+
+
+ A that defines the query.
+
+
+ If
+
+ is null
+
+
+ If
+
+ contains metadata that cannot be resolved in this metadata workspace
+
+
+ If
+
+ is not structurally valid because it contains unresolvable variable references
+
+
+
+
+ Gets items.
+
+
+ The items.
+
+
+ The from which to retrieve items.
+
+
+
+ Registers the item collection with each associated data model.
+ The output parameter collection that needs to be filled up.
+
+
+ Loads metadata from the given assembly.
+ The assembly from which the metadata will be loaded.
+
+
+ Loads metadata from the given assembly.
+ The assembly from which the metadata will be loaded.
+ The delegate for logging the load messages.
+
+
+ Returns an item by using the specified identity and the data model.
+ The item that matches the given identity in the specified data model.
+ The identity of the item.
+ The conceptual model in which the item is searched.
+ The type returned by the method.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+ Returns an item by using the specified identity and the data model.
+ true if there is an item that matches the search criteria; otherwise, false.
+ The conceptual model on which the item is searched.
+ The conceptual model on which the item is searched.
+
+ When this method returns, contains a object. This parameter is passed uninitialized.
+
+ The type returned by the method.
+
+
+ Returns an item by using the specified identity and the data model.
+ The item that matches the given identity in the specified data model.
+ The identity of the item.
+ true to perform the case-insensitive search; otherwise, false.
+ The conceptual model on which the item is searched.
+ The type returned by the method.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+ Returns an item by using the specified identity and the data model.
+ true if there is an item that matches the search criteria; otherwise, false.
+ The conceptual model on which the item is searched.
+ true to perform the case-insensitive search; otherwise, false.
+ The conceptual model on which the item is searched.
+
+ When this method returns, contains a object. This parameter is passed uninitialized.
+
+ The type returned by the method.
+
+
+ Gets all the items in the specified data model.
+
+ A collection of type that contains all the items in the specified data model.
+
+ The conceptual model for which the list of items is needed.
+ The type returned by the method.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+
+ Returns an object by using the specified type name, namespace name, and data model.
+
+
+ An object that represents the type that matches the given type name and the namespace name in the specified data model. If there is no matched type, this method returns null.
+
+ The name of the type.
+ The namespace of the type.
+ The conceptual model on which the type is searched.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+
+ Returns an object by using the specified type name, namespace name, and data model.
+
+ true if there is a type that matches the search criteria; otherwise, false.
+ The name of the type.
+ The namespace of the type.
+ The conceptual model on which the type is searched.
+
+ When this method returns, contains an object. This parameter is passed uninitialized.
+
+
+
+
+ Returns an object by using the specified type name, namespace name, and data model.
+
+
+ An object.
+
+ The name of the type.
+ The namespace of the type.
+ true to perform the case-insensitive search; otherwise, false.
+ The conceptual model on which the type is searched.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+
+ Returns an object by using the specified type name, namespace name, and data model.
+
+ true if there is a type that matches the search criteria; otherwise, false.
+ The name of the type.
+ The namespace of the type.
+ true to perform the case-insensitive search; otherwise, false.
+ The conceptual model on which the type is searched.
+
+ When this method returns, contains an object. This parameter is passed uninitialized.
+
+
+
+
+ Returns an object by using the specified entity container name and the data model.
+
+ If there is no entity container, this method returns null; otherwise, it returns the first entity container.
+ The name of the entity container.
+ The conceptual model on which the entity container is searched.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+
+ Returns an object by using the specified entity container name and the data model.
+
+ true if there is an entity container that matches the search criteria; otherwise, false.
+ The name of the entity container.
+ The conceptual model on which the entity container is searched.
+
+ When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized.
+
+
+
+
+ Returns an object by using the specified entity container name and the data model.
+
+ If there is no entity container, this method returns null; otherwise, it returns the first entity container.
+ The name of the entity container.
+ true to perform the case-insensitive search; otherwise, false.
+ The conceptual model on which the entity container is searched.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+
+ Returns an object by using the specified entity container name and the data model.
+
+ true if there is an entity container that matches the search criteria; otherwise, false.
+ The name of the entity container.
+ true to perform the case-insensitive search; otherwise, false.
+ The conceptual model on which the entity container is searched.
+
+ When this method returns, contains an object. If there is no entity container, this output parameter contains null; otherwise, it returns the first entity container. This parameter is passed uninitialized.
+
+
+
+ Returns all the overloads of the functions by using the specified name, namespace name, and data model.
+
+ A collection of type that contains all the functions that match the specified name in a given namespace and a data model.
+
+ The name of the function.
+ The namespace of the function.
+ The conceptual model in which the functions are searched.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+ Returns all the overloads of the functions by using the specified name, namespace name, and data model.
+
+ A collection of type that contains all the functions that match the specified name in a given namespace and a data model.
+
+ The name of the function.
+ The namespace of the function.
+ The conceptual model in which the functions are searched.
+ true to perform the case-insensitive search; otherwise, false.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+ Returns the list of primitive types in the specified data model.
+
+ A collection of type that contains all the primitive types in the specified data model.
+
+ The data model for which you need the list of primitive types.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+ Gets all the items in the specified data model.
+
+ A collection of type that contains all the items in the specified data model.
+
+ The conceptual model for which the list of items is needed.
+ Thrown if the space is not a valid space. Valid space is either C, O, CS or OCSpace
+
+
+
+ Tests the retrieval of .
+
+ true if the retrieval was successful; otherwise, false.
+
+ The from which to attempt retrieval of
+
+ .
+
+ When this method returns, contains the item collection. This parameter is passed uninitialized.
+
+
+
+ Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType .
+
+
+ A object that represents the Object space type. If there is no matched type, this method returns null.
+
+
+ A object that represents the
+
+ .
+
+
+
+
+ Returns a object via the out parameter objectSpaceType that represents the type that matches the
+
+ supplied by the parameter edmSpaceType .
+
+ true if there is a type that matches the search criteria; otherwise, false.
+
+ A object that represents the
+
+ .
+
+
+ When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized.
+
+
+
+
+ Returns a object that represents the object space type that matches the type supplied by the parameter edmSpaceType .
+
+
+ A object that represents the Object space type. If there is no matched type, this method returns null.
+
+
+ A object that represents the
+
+ .
+
+
+
+
+ Returns a object via the out parameter objectSpaceType that represents the type that matches the
+
+ supplied by the parameter edmSpaceType .
+
+ true if there is a type that matches the search criteria; otherwise, false.
+
+ A object that represents the
+
+ .
+
+
+ When this method returns, contains a object that represents the Object space type. This parameter is passed uninitialized.
+
+
+
+
+ Returns a object that represents the
+
+ that matches the type supplied by the parameter objectSpaceType .
+
+
+ A object that represents the
+
+ . If there is no matched type, this method returns null.
+
+
+ A that supplies the type in the object space.
+
+
+
+
+ Returns a object via the out parameter edmSpaceType that represents the
+
+ that matches the type supplied by the parameter objectSpaceType .
+
+ true if there is a type that matches the search criteria; otherwise, false.
+
+ A object that represents the object space type.
+
+
+ When this method returns, contains a object that represents the
+
+ . This parameter is passed uninitialized.
+
+
+
+
+ Returns a object that represents the
+
+ that matches the type supplied by the parameter objectSpaceType .
+
+
+ A object that represents the
+
+ . If there is no matched type, this method returns null.
+
+
+ A that supplies the type in the object space.
+
+
+
+
+ Returns a object via the out parameter edmSpaceType that represents the
+
+ that matches the type supplied by the parameter objectSpaceType .
+
+ true on success, false on failure.
+
+ A object that represents the object space type.
+
+
+ When this method returns, contains a object that represents the
+
+ . This parameter is passed uninitialized.
+
+
+
+ Clears all the metadata cache entries.
+
+
+ Gets original value members from an entity set and entity type.
+ The original value members from an entity set and entity type.
+ The entity set from which to retrieve original values.
+ The entity type of which to retrieve original values.
+
+
+
+ Returns members of a given /
+
+ for which original values are needed when modifying an entity.
+
+
+ The s for which original value is required.
+
+
+ An belonging to the C-Space.
+
+
+ An that participates in the given
+
+ .
+
+ true if entities may be updated partially; otherwise, false.
+
+
+
+ Represent the edm navigation property class
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+ Gets the relationship type that this navigation property operates on.
+ The relationship type that this navigation property operates on.
+ Thrown if the NavigationProperty instance is in ReadOnly state
+
+
+ Gets the "to" relationship end member of this navigation.
+ The "to" relationship end member of this navigation.
+ Thrown if the NavigationProperty instance is in ReadOnly state
+
+
+ Gets the "from" relationship end member in this navigation.
+ The "from" relationship end member in this navigation.
+ Thrown if the NavigationProperty instance is in ReadOnly state
+
+
+
+ Where the given navigation property is on the dependent end of a referential constraint,
+ returns the foreign key properties. Otherwise, returns an empty set. We will return the members in the order
+ of the principal end key properties.
+
+ A collection of the foreign key properties.
+
+
+
+ Creates a NavigationProperty instance from the specified parameters.
+
+ The name of the navigation property.
+ Specifies the navigation property type and its facets.
+ The relationship type for the navigation.
+ The source end member in the navigation.
+ The target end member in the navigation.
+ The metadata properties of the navigation property.
+ The newly created NavigationProperty instance.
+
+
+
+ Class for representing a collection of items for the object layer.
+ Most of the implementation for actual maintenance of the collection is
+ done by ItemCollection
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Loads metadata from the given assembly.
+ The assembly from which the metadata will be loaded.
+
+
+ Loads metadata from the given assembly.
+ The assembly from which the metadata will be loaded.
+ The EDM metadata source for the O space metadata.
+ The delegate to which log messages are sent.
+
+
+ Loads metadata from the specified assembly.
+ The assembly from which the metadata will be loaded.
+ The EDM metadata source for the O space metadata.
+
+
+ Returns a collection of primitive type objects.
+ A collection of primitive type objects.
+
+
+
+ Returns the CLR type that corresponds to the supplied by the objectSpaceType parameter.
+
+ The CLR type of the OSpace argument.
+
+ A that represents the object space type.
+
+
+
+
+ Returns a CLR type corresponding to the supplied by the objectSpaceType parameter.
+
+ true if there is a type that matches the search criteria; otherwise, false.
+
+ A that represents the object space type.
+
+ The CLR type.
+
+
+ The method returns the underlying CLR type for the specified OSpace type argument. If the DataSpace of the parameter is not OSpace, an ArgumentException is thrown.
+ The CLR type of the OSpace argument.
+ The OSpace type to look up.
+
+
+ Returns the underlying CLR type for the specified OSpace enum type argument. If the DataSpace of the parameter is not OSpace, the method returns false and sets the out parameter to null.
+ true on success, false on failure
+ The OSpace enum type to look up
+ The CLR enum type of the OSpace argument
+
+
+ Returns all the items of the specified type from this item collection.
+
+ A collection of type that contains all items of the specified type.
+
+ The type returned by the method.
+
+
+
+ Represents the list of possible actions for delete operation
+
+
+
+
+ no action
+
+
+
+
+ Cascade to other ends
+
+
+
+
+ The enumeration defining the mode of a parameter
+
+
+
+
+ In parameter
+
+
+
+
+ Out parameter
+
+
+
+
+ Both in and out parameter
+
+
+
+
+ Return Parameter
+
+
+
+
+ The enumeration defining the type semantics used to resolve function overloads.
+ These flags are defined in the provider manifest per function definition.
+
+
+
+
+ Allow Implicit Conversion between given and formal argument types (default).
+
+
+
+
+ Allow Type Promotion between given and formal argument types.
+
+
+
+
+ Use strict Equivalence only.
+
+
+
+
+ Class representing a primitive type
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets a enumeration value that indicates a primitive type of this
+
+ .
+
+
+ A enumeration value that indicates a primitive type of this
+
+ .
+
+
+
+
+ Gets the list of facet descriptions for this .
+
+
+ A collection of type that contains the list of facet descriptions for this
+
+ .
+
+
+
+
+ Returns an equivalent common language runtime (CLR) type of this
+
+ . Note that the
+
+ property always returns a non-nullable type value.
+
+
+ A object that represents an equivalent common language runtime (CLR) type of this
+
+ .
+
+
+
+
+ Returns the equivalent of this
+
+ .
+
+
+ For example if this instance is nvarchar and it's
+ base type is Edm String then the return type is Edm String.
+ If the type is actually already a model type then the
+ return type is "this".
+
+
+ An object that is an equivalent of this
+
+ .
+
+
+
+ Returns the list of primitive types.
+
+ A collection of type that contains the list of primitive types.
+
+
+
+
+ Returns the equivalent of a
+
+ .
+
+
+ An object that is an equivalent of a specified
+
+ .
+
+
+ A value of type .
+
+
+
+
+ Primitive Types as defined by EDM
+
+
+
+
+ Binary Type Kind
+
+
+
+
+ Boolean Type Kind
+
+
+
+
+ Byte Type Kind
+
+
+
+
+ DateTime Type Kind
+
+
+
+
+ Decimal Type Kind
+
+
+
+
+ Double Type Kind
+
+
+
+
+ Guid Type Kind
+
+
+
+
+ Single Type Kind
+
+
+
+
+ SByte Type Kind
+
+
+
+
+ Int16 Type Kind
+
+
+
+
+ Int32 Type Kind
+
+
+
+
+ Int64 Type Kind
+
+
+
+
+ String Type Kind
+
+
+
+
+ Time Type Kind
+
+
+
+
+ DateTimeOffset Type Kind
+
+
+
+
+ Geometry Type Kind
+
+
+
+
+ Geography Type Kind
+
+
+
+
+ Geometric point type kind
+
+
+
+
+ Geometric linestring type kind
+
+
+
+
+ Geometric polygon type kind
+
+
+
+
+ Geometric multi-point type kind
+
+
+
+
+ Geometric multi-linestring type kind
+
+
+
+
+ Geometric multi-polygon type kind
+
+
+
+
+ Geometric collection type kind
+
+
+
+
+ Geographic point type kind
+
+
+
+
+ Geographic linestring type kind
+
+
+
+
+ Geographic polygon type kind
+
+
+
+
+ Geographic multi-point type kind
+
+
+
+
+ Geographic multi-linestring type kind
+
+
+
+
+ Geographic multi-polygon type kind
+
+
+
+
+ Geographic collection type kind
+
+
+
+
+ HierarchyId type kind
+
+
+
+
+ Specifies the kinds of item attributes in the conceptual model.
+
+
+
+
+ An enumeration member indicating that an item attribute is System
+
+
+
+
+ An enumeration member indicating that an item attribute is Extended.
+
+
+
+
+ Class representing a read-only wrapper around MetadataCollection
+
+ The type of items in this collection
+
+
+
+ The enumerator for MetadataCollection
+
+
+
+ Gets the member at the current position.
+ The member at the current position.
+
+
+
+ Gets the member at the current position
+
+
+
+ Disposes of this enumerator.
+
+
+
+ Moves to the next member in the collection of type
+
+ .
+
+
+ true if the enumerator is moved in the collection of type
+
+ ; otherwise, false.
+
+
+
+
+ Positions the enumerator before the first position in the collection of type
+
+ .
+
+
+
+ Gets a value indicating whether this collection is read-only.
+ true if this collection is read-only; otherwise, false.
+
+
+ Gets an item from this collection by using the specified identity.
+ An item from this collection.
+ The identity of the item to be searched for.
+
+
+ Retrieves an item from this collection by using the specified identity.
+ An item from this collection.
+ The identity of the item to be searched for.
+ true to perform the case-insensitive search; otherwise, false.
+
+
+ Determines whether the collection contains an item with the specified identity.
+ true if the collection contains the item to be searched for; otherwise, false. The default is false.
+ The identity of the item.
+
+
+ Retrieves an item from this collection by using the specified identity.
+ true if there is an item that matches the search criteria; otherwise, false.
+ The identity of the item to be searched for.
+ true to perform the case-insensitive search; otherwise, false.
+ When this method returns, this output parameter contains an item from the collection. If there is no matched item, this output parameter contains null.
+
+
+ Returns an enumerator that can iterate through this collection.
+
+ A that can be used to iterate through this
+
+ .
+
+
+
+ Returns the index of the specified value in this collection.
+ The index of the specified value in this collection.
+ A value to seek.
+
+
+
+ This class represents a referential constraint between two entities specifying the "to" and "from" ends of the relationship.
+
+
+
+
+ Constructs a new constraint on the relationship
+
+ role from which the relationship originates
+ role to which the relationship is linked/targeted to
+ properties on entity type of to role which take part in the constraint
+ properties on entity type of from role which take part in the constraint
+ Argument Null exception if any of the arguments is null
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the "from role" that takes part in this
+
+ .
+
+
+ A object that represents the "from role" that takes part in this
+
+ .
+
+ Thrown if value passed into setter is null
+ Thrown if the ReferentialConstraint instance is in ReadOnly state
+
+
+
+ Gets the "to role" that takes part in this .
+
+
+ A object that represents the "to role" that takes part in this
+
+ .
+
+ Thrown if value passed into setter is null
+ Thrown if the ReferentialConstraint instance is in ReadOnly state
+
+
+
+ Gets the list of properties for the "from role" on which this
+
+ is defined.
+
+
+ A collection of type that contains the list of properties for "from role" on which this
+
+ is defined.
+
+
+
+
+ Gets the list of properties for the "to role" on which this
+
+ is defined.
+
+
+ A collection of type that contains the list of properties for the "to role" on which this
+
+ is defined.
+
+
+
+
+ Returns the combination of the names of the
+
+ and the
+
+ .
+
+
+ The combination of the names of the
+
+ and the
+
+ .
+
+
+
+
+ Class representing a ref type
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the entity type referenced by this .
+
+
+ An object that represents the entity type referenced by this
+
+ .
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the RelationshipEndMember class
+
+
+
+ Gets the operational behavior of this relationship end member.
+
+ One of the values. The default is
+
+ .
+
+
+
+ Gets the multiplicity of this relationship end member.
+
+ One of the values.
+
+
+
+ Access the EntityType of the EndMember in an association.
+ The EntityType of the EndMember in an association.
+
+
+
+ Represents the multiplicity information about the end of a relationship type
+
+
+
+
+ Lower Bound is Zero and Upper Bound is One
+
+
+
+
+ Both lower bound and upper bound is one
+
+
+
+
+ Lower bound is zero and upper bound is null
+
+
+
+
+ Class for representing a relationship set
+
+
+
+
+ Gets the relationship type of this .
+
+
+ An object that represents the relationship type of this
+
+ .
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Represents the Relationship type
+
+
+
+ Gets the list of ends for this relationship type.
+
+ A collection of type that contains the list of Ends for this relationship type.
+
+
+
+
+ Represents the Edm Row Type
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the list of properties on this .
+
+
+ A collection of type that contains the list of properties on this
+
+ .
+
+
+
+ Gets a collection of the properties defined by the current type.
+ A collection of the properties defined by the current type.
+
+
+
+ The factory method for constructing the object.
+
+ Properties of the row type object.
+ Metadata properties that will be added to the function. Can be null.
+
+ A new, read-only instance of the object.
+
+
+
+
+ Class representing a simple type
+
+
+
+
+ Serializes the storage (database) section of an to XML.
+
+
+
+
+ Occurs when an error is encountered serializing the model.
+
+
+
+
+ Serialize the to the
+
+ The EdmModel to serialize
+ Provider information on the Schema element
+ ProviderManifestToken information on the Schema element
+ The XmlWriter to serialize to
+ A value indicating whether to serialize Nullable attributes when they are set to the default value.
+ true if model can be serialized, otherwise false
+
+
+
+ Serialize the to the
+
+ The EdmModel to serialize
+ Namespace name on the Schema element
+ Provider information on the Schema element
+ ProviderManifestToken information on the Schema element
+ The XmlWriter to serialize to
+ A value indicating whether to serialize Nullable attributes when they are set to the default value.
+ true if model can be serialized, otherwise false
+
+
+
+ The pattern for Server Generated Properties.
+
+
+
+
+ Not a Server Generated Property. This is the default.
+
+
+
+
+ A value is generated on INSERT, and remains unchanged on update.
+
+
+
+
+ A value is generated on both INSERT and UPDATE.
+
+
+
+
+ Class for representing a collection of items in Store space.
+
+
+
+
+ Initializes a new instance of the class using the specified XMLReader.
+
+ The XMLReader used to create metadata.
+
+
+ Initializes a new instances of the class.
+ The model of the .
+
+
+
+ Initializes a new instance of the class using the specified file paths.
+
+ The file paths used to create metadata.
+
+
+ Gets the provider factory of the StoreItemCollection.
+ The provider factory of the StoreItemCollection.
+
+
+ Gets the provider manifest of the StoreItemCollection.
+ The provider manifest of the StoreItemCollection.
+
+
+ Gets the manifest token of the StoreItemCollection.
+ The manifest token of the StoreItemCollection.
+
+
+ Gets the invariant name of the StoreItemCollection.
+ The invariant name of the StoreItemCollection.
+
+
+ Gets the version of the store schema for this collection.
+ The version of the store schema for this collection.
+
+
+
+ Returns a collection of the objects.
+
+
+ A object that represents the collection of the
+
+ objects.
+
+
+
+
+ Factory method that creates a .
+
+
+ SSDL artifacts to load. Must not be null.
+
+
+ Paths to SSDL artifacts. Used in error messages. Can be null in which case
+ the base Uri of the XmlReader will be used as a path.
+
+
+ Custom resolver. Currently used to resolve DbProviderServices implementation. If null
+ the default resolver will be used.
+
+
+ The collection of errors encountered while loading.
+
+
+ instance if no errors encountered. Otherwise null.
+
+
+
+
+ Represents the Structural Type
+
+
+
+ Gets the list of members on this type.
+
+ A collection of type that contains a set of members on this type.
+
+
+
+
+ Adds a member to this type
+
+ The member to add
+
+
+ Removes a member from this type.
+ The member to remove.
+
+
+
+ Class representing a type information for an item
+
+
+
+
+ Factory method for creating a TypeUsage with specified EdmType and facets
+
+ EdmType for which to create a type usage
+ facets to be copied into the new TypeUsage
+ new TypeUsage instance
+
+
+
+ Creates a object with the specified conceptual model type.
+
+
+ A object with the default facet values for the specified
+
+ .
+
+
+ A for which the
+
+ object is created.
+
+
+
+
+ Creates a object to describe a string type by using the specified facet values.
+
+
+ A object describing a string type by using the specified facet values.
+
+
+ A for which the
+
+ object is created.
+
+ true to set the character-encoding standard of the string type to Unicode; otherwise, false.
+ true to set the character-encoding standard of the string type to Unicode; otherwise, false.
+ true to set the length of the string type to fixed; otherwise, false.
+
+
+
+ Creates a object to describe a string type by using the specified facet values and unbounded MaxLength.
+
+
+ A object describing a string type by using the specified facet values and unbounded MaxLength.
+
+
+ A for which the
+
+ object is created.
+
+ true to set the character-encoding standard of the string type to Unicode; otherwise, false.
+ true to set the length of the string type to fixed; otherwise, false
+
+
+
+ Creates a object to describe a binary type by using the specified facet values.
+
+
+ A object describing a binary type by using the specified facet values.
+
+
+ A for which the
+
+ object is created.
+
+ true to set the length of the binary type to fixed; otherwise, false.
+ The maximum length of the binary type.
+
+
+
+ Creates a object to describe a binary type by using the specified facet values.
+
+
+ A object describing a binary type by using the specified facet values.
+
+
+ A for which the
+
+ object is created.
+
+ true to set the length of the binary type to fixed; otherwise, false.
+
+
+
+ Creates a object of the type that the parameters describe.
+
+
+ A object.
+
+
+ The simple type that defines the units of measurement of the object.
+
+
+ The degree of granularity of the in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds.
+
+
+
+
+ Creates a object of the type that the parameters describe.
+
+
+ A object.
+
+ The simple type that defines the units of measurement of the offset.
+
+ The degree of granularity of the in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds.
+
+
+
+
+ Creates a object of the type that the parameters describe.
+
+
+ A object.
+
+
+ The simple type that defines the units of measurement of the object.
+
+
+ The degree of granularity of the in fractions of a second, based on the number of decimal places supported. For example a precision of 3 means the granularity supported is milliseconds.
+
+
+
+
+ Creates a object to describe a decimal type by using the specified facet values.
+
+
+ A object describing a decimal type by using the specified facet values.
+
+
+ A for which the
+
+ object is created.
+
+
+ The precision of the decimal type as type .
+
+
+ The scale of the decimal type as type .
+
+
+
+
+ Creates a object to describe a decimal type with unbounded precision and scale facet values.
+
+
+ A object describing a decimal type with unbounded precision and scale facet values.
+
+
+ A for which the
+
+ object is created.
+
+
+
+
+ Gets the built-in type kind for this .
+
+
+ A object that represents the built-in type kind for this
+
+ .
+
+
+
+
+ Gets the type information described by this .
+
+
+ An object that represents the type information described by this
+
+ .
+
+
+
+
+ Gets the list of facets for the type that is described by this
+
+ .
+
+
+ A collection of type that contains the list of facets for the type that is described by this
+
+ .
+
+
+
+
+ Returns a Model type usage for a provider type
+
+ Model (CSpace) type usage
+
+
+
+ Checks whether this is a subtype of the specified
+
+ .
+
+
+ true if this is a subtype of the specified
+
+ ; otherwise, false.
+
+
+ The object to be checked.
+
+
+
+
+ Returns the full name of the type described by this .
+
+
+ The full name of the type described by this as string.
+
+
+
+
+ This exception is thrown when a requested object is not found in the store.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with a specialized error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of class that uses a specified error message and a reference to the inner exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Caches an ELinq query
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg15 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg14 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg13 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg12 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg11 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg10 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg9 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg8 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg7 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg6 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg5 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg4 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg3 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg2 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+ Represents the type of the parameter that has to be passed in when executing the delegate returned by this method. TArg1 must be a primitive type.
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+ Creates a new delegate that represents the compiled LINQ to Entities query.
+
+ , a generic delegate that represents the compiled LINQ to Entities query.
+
+ The lambda expression to compile.
+
+ A type derived from .
+
+
+ The type T of the query results returned by executing the delegate returned by the
+
+ method.
+
+
+
+
+ The values currently assigned to the properties of an entity.
+
+
+
+
+ This is the interface that represent the minimum interface required
+ to be an entity in ADO.NET.
+
+
+
+ Notifies the change tracker that a property change is pending on a complex object.
+ The name of the changing property.
+ property is null.
+
+
+ Notifies the change tracker that a property of a complex object has changed.
+ The name of the changed property.
+ property is null.
+
+
+
+ Attribute for complex properties
+ Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
+ The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
+
+
+
+
+ attribute for complex types
+
+
+
+
+ Attribute identifying the Edm base class
+
+
+
+
+ Attribute indicating an enum type.
+
+
+
+
+ Indicates that the given method is a proxy for an EDM function.
+
+
+ Note that this attribute has been replaced by the starting with EF6.
+
+
+
+
+ Creates a new DbFunctionAttribute instance.
+
+ The namespace name of the EDM function represented by the attributed method.
+ The function name of the EDM function represented by the attributed method.
+
+
+
+ Base attribute for properties mapped to store elements.
+ Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
+ The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
+
+
+
+
+ Attribute identifying the Ends defined for a RelationshipSet
+ Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
+ The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
+
+
+
+
+ Initializes a new instance of the
+
+ class.
+
+ The namespace name of the relationship property.
+ The name of the relationship. The relationship name is not namespace qualified.
+ The role name at the other end of the relationship.
+
+
+ The namespace name of the navigation property.
+
+ A that is the namespace name.
+
+
+
+ Gets the unqualified relationship name.
+ The relationship name.
+
+
+ Gets the role name at the other end of the relationship.
+ The target role name is specified by the Role attribute of the other End element in the association that defines this relationship in the conceptual model. For more information, see Association (EDM).
+
+
+
+ Defines a relationship between two entity types based on an association in the conceptual model.
+
+
+
+
+ Creates an instance of the class.
+
+ The name of the namespace for the association in which this entity participates.
+ The name of a relationship in which this entity participates.
+ Name of the role for the type at one end of the association.
+
+ A value of that indicates the multiplicity at one end of the association, such as one or many.
+
+ The type of the entity at one end of the association.
+ Name of the role for the type at the other end of the association.
+
+ A value of that indicates the multiplicity at the other end of the association, such as one or many.
+
+ The type of the entity at the other end of the association.
+
+
+
+ Initializes a new instance of the
+
+ class.
+
+ The name of the namespace for the association in which this entity participates.
+ The name of a relationship in which this entity participates.
+ Name of the role for the type at one end of the association.
+
+ A value of that indicates the multiplicity at one end of the association, such as one or many.
+
+ The type of the entity at one end of the association.
+ Name of the role for the type at the other end of the association.
+
+ A value of that indicates the multiplicity at the other end of the association, such as one or many.
+
+ The type of the entity at the other end of the association.
+ A value that indicates whether the relationship is based on the foreign key value.
+
+
+ The namespace for the relationship.
+
+ A that is the namespace for the relationship.
+
+
+
+ Name of the relationship.
+
+ A that is the name of a relationship that is defined by this
+
+ .
+
+
+
+ Name of the role at one end of the relationship.
+
+ A that is the name of the role.
+
+
+
+ Multiplicity at one end of the relationship.
+
+ A value that indicates the multiplicity.
+
+
+
+ Type of the entity at one end of the relationship.
+
+ A that is the type of the object at this end of the association.
+
+
+
+ Name of the role at the other end of the relationship.
+
+ A that is the name of the role.
+
+
+
+ Multiplicity at the other end of the relationship.
+
+ A value that indicates the multiplicity.
+
+
+
+ Type of the entity at the other end of the relationship.
+
+ A that is the type of the object t the other end of the association.
+
+
+
+ Gets a Boolean value that indicates whether the relationship is based on the foreign key value.
+ true if the relationship is based on the foreign key value; otherwise false.
+
+
+
+ Attribute for scalar properties in an IEntity.
+ Implied default AttributeUsage properties Inherited=True, AllowMultiple=False,
+ The metadata system expects this and will only look at the first of each of these attributes, even if there are more.
+
+
+
+ Gets or sets the value that indicates whether the property can have a null value.
+ The value that indicates whether the property can have a null value.
+
+
+ Gets or sets the value that indicates whether the property is part of the entity key.
+ The value that indicates whether the property is part of the entity key.
+
+
+
+ Attribute for static types
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a unique value for each model referenced by the assembly.
+
+
+ Setting this parameter to a unique value for each model file in a Visual Basic
+ assembly will prevent the following error:
+ "'System.Data.Entity.Core.Objects.DataClasses.EdmSchemaAttribute' cannot be specified more than once in this project, even with identical parameter values."
+
+ A string that is a unique GUID value for the model in the assembly.
+
+
+
+ Base attribute for schematized types
+
+
+
+ The name of the type in the conceptual schema that maps to the class to which this attribute is applied.
+
+ A that is the name.
+
+
+
+ The namespace name of the entity object type or complex type in the conceptual schema that maps to this type.
+
+ A that is the namespace name.
+
+
+
+
+ Collection of entities modeling a particular EDM construct
+ which can either be all entities of a particular type or
+ entities participating in a particular relationship.
+
+ The type of entities in this collection.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Gets the number of objects that are contained in the collection.
+
+ The number of elements that are contained in the
+
+ .
+
+
+
+
+ Gets a value that indicates whether the
+
+ is read-only.
+
+ Always returns false.
+
+
+
+ IListSource.ContainsListCollection implementation. Always returns false.
+ This means that the IList we return is the one which contains our actual data,
+ it is not a list of collections.
+
+
+
+
+ Returns the collection as an used for data binding.
+
+
+ An of entity objects.
+
+
+
+ Loads related objects into the collection, using the specified merge option.
+
+ Specifies how the objects in this collection should be merged with the objects that might have been returned from previous queries against the same
+
+ .
+
+
+
+
+
+
+ Defines relationships between an object and a collection of related objects in an object context.
+
+ Loads related entities into the local collection. If the collection is already filled
+ or partially filled, merges existing entities with the given entities. The given
+ entities are not assumed to be the complete set of related entities.
+ Owner and all entities passed in must be in Unchanged or Modified state. We allow
+ deleted elements only when the state manager is already tracking the relationship
+ instance.
+
+ Collection of objects in the object context that are related to the source object.
+ entities collection is null.
+
+ The source object or an object in the entities collection is null or is not in an
+
+ or state.-or-The relationship cannot be defined based on the EDM metadata. This can occur when the association in the conceptual schema does not support a relationship between the two types.
+
+
+
+ Defines a relationship between two attached objects in an object context.
+ The object being attached.
+ When the entity is null.
+
+ When the entity cannot be related to the source object. This can occur when the association in the conceptual schema does not support a relationship between the two types.-or-When either object is null or is not in an
+
+ or state.
+
+
+
+ Adds an object to the collection.
+
+ An object to add to the collection. entity must implement
+
+ .
+
+ entity is null.
+
+
+ Removes an object from the collection and marks the relationship for deletion.
+ true if item was successfully removed; otherwise, false.
+ The object to remove from the collection.
+ entity object is null.
+ The entity object is not attached to the same object context.-or-The entity object does not have a valid relationship manager.
+
+
+ Returns an enumerator that is used to iterate through the objects in the collection.
+
+ An that iterates through the set of values cached by
+
+ .
+
+
+
+
+ Returns an enumerator that is used to iterate through the set of values cached by
+
+ .
+
+
+ An that iterates through the set of values cached by
+
+ .
+
+
+
+ Removes all entities from the collection.
+
+
+ Determines whether a specific object exists in the collection.
+
+ true if the object is found in the ; otherwise, false.
+
+
+ The object to locate in the .
+
+
+
+ Copies all the contents of the collection to an array, starting at the specified index of the target array.
+ The array to copy to.
+ The zero-based index in the array at which copying begins.
+
+
+ Used internally to serialize entity objects.
+ The streaming context.
+
+
+ Used internally to deserialize entity objects.
+ The streaming context.
+
+
+ Returns an object query that, when it is executed, returns the same set of objects that exists in the current collection.
+
+ An that represents the entity collection.
+
+
+ When the object is in an state
+ or when the object is in a
+ state with a
+ other than
+ .
+
+
+
+
+ This is the class is the basis for all perscribed EntityObject classes.
+
+
+
+ Gets the entity state of the object.
+
+ The of this object.
+
+
+
+ Gets or sets the key for this object.
+
+ The for this object.
+
+
+
+
+ Used by the ObjectStateManager to attach or detach this EntityObject to the cache.
+
+ Reference to the ObjectStateEntry that contains this entity
+
+
+
+ Returns the container for the lazily created relationship
+ navigation property objects, collections and refs.
+
+
+
+ Notifies the change tracker that a property change is pending.
+ The name of the changing property.
+ property is null.
+
+
+ Notifies the change tracker that a property has changed.
+ The name of the changed property.
+ property is null.
+
+
+
+ Models a relationship end with multiplicity 1.
+
+
+
+ Returns the key for the related object.
+
+ Returns the EntityKey of the target entity associated with this EntityReference.
+ Is non-null in the following scenarios:
+ (a) Entities are tracked by a context and an Unchanged or Added client-side relationships exists for this EntityReference's owner with the
+ same RelationshipName and source role. This relationship could have been created explicitly by the user (e.g. by setting
+ the EntityReference.Value, setting this property directly, or by calling EntityCollection.Add) or automatically through span queries.
+ (b) If the EntityKey was non-null before detaching an entity from the context, it will still be non-null after detaching, until any operation
+ occurs that would set it to null, as described below.
+ (c) Entities are detached and the EntityKey is explicitly set to non-null by the user.
+ (d) Entity graph was created using a NoTracking query with full span
+ Is null in the following scenarios:
+ (a) Entities are tracked by a context but there is no Unchanged or Added client-side relationship for this EntityReference's owner with the
+ same RelationshipName and source role.
+ (b) Entities are tracked by a context and a relationship exists, but the target entity has a temporary key (i.e. it is Added) or the key
+ is one of the special keys
+ (c) Entities are detached and the relationship was explicitly created by the user.
+
+
+ An that is the key of the related object.
+
+
+
+
+ Models a relationship end with multiplicity 1.
+
+ The type of the entity being referenced.
+
+
+
+ Creates a new instance of .
+
+
+ The default constructor is required for some serialization scenarios. It should not be used to
+ create new EntityReferences. Use the GetRelatedReference or GetRelatedEnd methods on the RelationshipManager
+ class instead.
+
+
+
+
+ Gets or sets the related object returned by this
+
+ .
+
+
+ The object returned by this .
+
+
+
+
+ Loads the related object for this with the specified merge option.
+
+
+ Specifies how the object should be returned if it already exists in the
+
+ .
+
+
+ The source of the is null
+ or a query returned more than one related end
+ or a query returned zero related ends, and one related end was expected.
+
+
+
+
+
+
+ Creates a many-to-one or one-to-one relationship between two objects in the object context.
+ The object being attached.
+ When the entity is null.
+ When the entity cannot be related to the current related end. This can occur when the association in the conceptual schema does not support a relationship between the two types.
+
+
+ Creates an equivalent object query that returns the related object.
+
+ An that returns the related object.
+
+
+ When the object is in an state
+ or when the object is in a
+ state with a
+ other than .
+
+
+
+ This method is used internally to serialize related entity objects.
+ The serialized stream.
+
+
+ This method is used internally to serialize related entity objects.
+ The serialized stream.
+
+
+
+ This interface is implemented by a change tracker and is used by data classes to report changes
+
+
+
+ Notifies the change tracker of a pending change to a property of an entity type.
+ The name of the property that is changing.
+
+
+ Notifies the change tracker that a property of an entity type has changed.
+ The name of the property that has changed.
+
+
+ Notifies the change tracker of a pending change to a complex property.
+ The name of the top-level entity property that is changing.
+ The complex type that contains the property that is changing.
+ The name of the property that is changing on complex type.
+
+
+ Notifies the change tracker that a property of a complex type has changed.
+ The name of the complex property of the entity type that has changed.
+ The complex type that contains the property that changed.
+ The name of the property that changed on complex type.
+
+
+ Gets current state of a tracked object.
+
+ An that is the state of the tracked object.For more information, see Identity Resolution, State Management, and Change Tracking and Tracking Changes in POCO Entities.
+
+
+
+
+ Minimum interface that a data class must implement in order to be managed by a change tracker.
+
+
+
+
+ Gets or sets the used to report changes.
+
+
+ The used to report changes.
+
+
+
+
+ Interface that defines an entity containing a key.
+
+
+
+
+ Gets or sets the for instances of entity types that implement this interface.
+
+
+ If an object is being managed by a change tracker, it is expected that
+ IEntityChangeTracker methods EntityMemberChanging and EntityMemberChanged will be
+ used to report changes on EntityKey. This allows the change tracker to validate the
+ EntityKey's new value and to verify if the change tracker is in a state where it can
+ allow updates to the EntityKey.
+
+
+ The for instances of entity types that implement this interface.
+
+
+
+
+ Interface that a data class must implement if exposes relationships
+
+
+
+ Returns the relationship manager that manages relationships for an instance of an entity type.
+
+ Classes that expose relationships must implement this property
+ by constructing and setting RelationshipManager in their constructor.
+ The implementation of this property should use the static method RelationshipManager.Create
+ to create a new RelationshipManager when needed. Once created, it is expected that this
+ object will be stored on the entity and will be provided through this property.
+
+
+ The for this entity.
+
+
+
+
+ Represents one end of a relationship.
+
+
+
+
+ Gets or sets a value indicating whether the entity (for an or all entities
+ in the collection (for an have been loaded from the database.
+
+
+ Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly
+ with one of the Load methods will set the IsLoaded flag to true.
+ IsLoaded can be explicitly set to true to prevent the related entities from being lazy-loaded.
+ This can be useful if the application has caused a subset of related entities to be loaded
+ and wants to prevent any other entities from being loaded automatically.
+ Note that explicit loading using will load all related entities from the database
+ regardless of whether or not IsLoaded is true.
+ When any related entity is detached the IsLoaded flag is reset to false indicating that not all related entities
+ are now loaded.
+
+
+ True if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise false.
+
+
+
+ Gets the name of the relationship in which this related end participates.
+
+ The name of the relationship in which this is participating. The relationship name is not namespace qualified.
+
+
+
+ Gets the role name at the source end of the relationship.
+ The role name at the source end of the relationship.
+
+
+ Gets the role name at the target end of the relationship.
+ The role name at the target end of the relationship.
+
+
+ Returns a reference to the metadata for the related end.
+
+ A object that contains metadata for the end of a relationship.
+
+
+
+ Loads the related object or objects into this related end with the default merge option.
+
+
+ Asynchronously loads the related object or objects into this related end with the default merge option.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+ Loads the related object or objects into the related end with the specified merge option.
+
+ The to use when merging objects into an existing
+ .
+
+
+
+ Asynchronously loads the related object or objects into the related end with the specified merge option.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The to use when merging objects into an existing
+ .
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+ Adds an object to the related end.
+
+ An object to add to the collection. entity must implement
+
+ .
+
+
+
+ Adds an object to the related end.
+ An object to add to the collection.
+
+
+ Removes an object from the collection of objects at the related end.
+
+ true if entity was successfully removed, false if entity was not part of the
+
+ .
+
+
+ The object to remove from the collection. entity must implement
+
+ .
+
+
+
+ Removes an object from the collection of objects at the related end.
+
+ true if entity was successfully removed; false if entity was not part of the
+
+ .
+
+ An object to remove from the collection.
+
+
+ Defines a relationship between two attached objects.
+
+ The object being attached. entity must implement
+
+ .
+
+
+
+ Defines a relationship between two attached objects.
+ The object being attached.
+
+
+
+ Returns an that represents the objects that belong to the related end.
+
+
+ An that represents the objects that belong to the related end.
+
+
+
+
+ Returns an that iterates through the collection of related objects.
+
+
+ An that iterates through the collection of related objects.
+
+
+
+
+ Base class for EntityCollection and EntityReference
+
+
+
+ Occurs when a change is made to a related end.
+
+
+ Gets the name of the relationship in which this related end participates.
+
+ The name of the relationship in which this participates. The relationship name is not namespace qualified.
+
+
+
+ Gets the role name at the source end of the relationship.
+
+ A that is the role name.
+
+
+
+ Gets the role name at the target end of the relationship.
+
+ A that is the role name.
+
+
+
+
+ Returns an that represents the objects that belong to the related end.
+
+
+ An that represents the objects that belong to the related end.
+
+
+
+ Gets a reference to the metadata for the related end.
+
+ A object that contains metadata for the end of a relationship.
+
+
+
+
+
+
+
+ Loads the related object or objects into the related end with the default merge option.
+
+
+ When the source object was retrieved by using a query
+ and the is not
+ or the related objects are already loaded
+ or when the source object is not attached to the
+ or when the source object is being tracked but is in the
+ or state
+ or the
+ used for
+ is .
+
+
+
+
+ Asynchronously loads the related object or objects into the related end with the default merge option.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+ When the source object was retrieved by using a query
+ and the is not
+ or the related objects are already loaded
+ or when the source object is not attached to the
+ or when the source object is being tracked but is in the
+ or state
+ or the
+ used for
+ is .
+
+
+
+
+ Loads an object or objects from the related end with the specified merge option.
+
+
+ The to use when merging objects into an existing
+ .
+
+
+ When the source object was retrieved by using a query
+ and the
+ is not
+ or the related objects are already loaded
+ or when the source object is not attached to the
+ or when the source object is being tracked but is in the
+ or state
+ or the
+ used for
+ is .
+
+
+
+
+ Asynchronously loads an object or objects from the related end with the specified merge option.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The to use when merging objects into an existing
+ .
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+ When the source object was retrieved by using a query
+ and the
+ is not
+ or the related objects are already loaded
+ or when the source object is not attached to the
+ or when the source object is being tracked but is in the
+ or state
+ or the
+ used for
+ is .
+
+
+
+
+ Attaches an entity to the related end. This method works in exactly the same way as Attach(object).
+ It is maintained for backward compatibility with previous versions of IRelatedEnd.
+
+ The entity to attach to the related end
+
+ Thrown when
+
+ is null.
+
+ Thrown when the entity cannot be related via the current relationship end.
+
+
+
+ Attaches an entity to the related end. If the related end is already filled
+ or partially filled, this merges the existing entities with the given entity. The given
+ entity is not assumed to be the complete set of related entities.
+ Owner and all entities passed in must be in Unchanged or Modified state.
+ Deleted elements are allowed only when the state manager is already tracking the relationship
+ instance.
+
+ The entity to attach to the related end
+
+ Thrown when
+
+ is null.
+
+ Thrown when the entity cannot be related via the current relationship end.
+
+
+
+ Adds an entity to the related end. This method works in exactly the same way as Add(object).
+ It is maintained for backward compatibility with previous versions of IRelatedEnd.
+
+ Entity instance to add to the related end
+
+
+
+ Adds an entity to the related end. If the owner is
+ attached to a cache then the all the connected ends are
+ added to the object cache and their corresponding relationships
+ are also added to the ObjectStateManager. The RelatedEnd of the
+ relationship is also fixed.
+
+ Entity instance to add to the related end
+
+
+
+ Removes an entity from the related end. This method works in exactly the same way as Remove(object).
+ It is maintained for backward compatibility with previous versions of IRelatedEnd.
+
+ Entity instance to remove from the related end
+ Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd.
+
+
+
+ Removes an entity from the related end. If owner is
+ attached to a cache, marks relationship for deletion and if
+ the relationship is composition also marks the entity for deletion.
+
+ Entity instance to remove from the related end
+ Returns true if the entity was successfully removed, false if the entity was not part of the RelatedEnd.
+
+
+
+ Returns an that iterates through the collection of related objects.
+
+
+ An that iterates through the collection of related objects.
+
+
+
+
+ Used internally to deserialize entity objects along with the
+
+ instances.
+
+ The serialized stream.
+
+
+
+ Identifies the kind of a relationship
+
+
+
+
+ The relationship is an Association
+
+
+
+
+ Container for the lazily created relationship navigation
+ property objects (collections and refs).
+
+
+
+
+ Creates a new object.
+
+
+ Used by data classes that support relationships. If the change tracker
+ requests the RelationshipManager property and the data class does not
+ already have a reference to one of these objects, it calls this method
+ to create one, then saves a reference to that object. On subsequent accesses
+ to that property, the data class should return the saved reference.
+ The reason for using a factory method instead of a public constructor is to
+ emphasize that this is not something you would normally call outside of a data class.
+ By requiring that these objects are created via this method, developers should
+ give more thought to the operation, and will generally only use it when
+ they explicitly need to get an object of this type. It helps define the intended usage.
+
+
+ The requested .
+
+ Reference to the entity that is calling this method.
+
+
+
+ Returns either an or
+
+ of the correct type for the specified target role in a relationship.
+
+
+ representing the
+
+ or
+
+ that was retrieved.
+
+ Name of the relationship in which targetRoleName is defined. The relationship name is not namespace qualified.
+ Target role to use to retrieve the other end of relationshipName .
+ relationshipName or targetRoleName is null.
+ The source type does not match the type of the owner.
+ targetRoleName is invalid or unable to find the relationship type in the metadata.
+
+
+
+ Takes an existing EntityReference that was created with the default constructor and initializes it using the provided relationship and target role names.
+ This method is designed to be used during deserialization only, and will throw an exception if the provided EntityReference has already been initialized,
+ if the relationship manager already contains a relationship with this name and target role, or if the relationship manager is already attached to a ObjectContext.W
+
+ The relationship name.
+ The role name of the related end.
+
+ The to initialize.
+
+
+ The type of the being initialized.
+
+
+ When the provided
+ is already initialized.-or-When the relationship manager is already attached to an
+
+ or when the relationship manager already contains a relationship with this name and target role.
+
+
+
+
+ Takes an existing EntityCollection that was created with the default constructor and initializes it using the provided relationship and target role names.
+ This method is designed to be used during deserialization only, and will throw an exception if the provided EntityCollection has already been initialized,
+ or if the relationship manager is already attached to a ObjectContext.
+
+ The relationship name.
+ The target role name.
+ An existing EntityCollection.
+ Type of the entity represented by targetRoleName
+
+
+
+ Gets an of related objects with the specified relationship name and target role name.
+
+
+ The of related objects.
+
+ Name of the relationship to navigate. The relationship name is not namespace qualified.
+ Name of the target role for the navigation. Indicates the direction of navigation across the relationship.
+
+ The type of the returned .
+
+
+ The specified role returned an instead of an
+
+ .
+
+
+
+
+ Gets the for a related object by using the specified combination of relationship name and target role name.
+
+
+ The of a related object.
+
+ Name of the relationship to navigate. The relationship name is not namespace qualified.
+ Name of the target role for the navigation. Indicates the direction of navigation across the relationship.
+
+ The type of the returned .
+
+
+ The specified role returned an instead of an
+
+ .
+
+
+
+ Returns an enumeration of all the related ends managed by the relationship manager.
+
+ An of objects that implement
+
+ . An empty enumeration is returned when the relationships have not yet been populated.
+
+
+
+
+ Called by Object Services to prepare an for binary serialization with a serialized relationship.
+
+ Describes the source and destination of a given serialized stream, and provides an additional caller-defined context.
+
+
+
+ Used internally to deserialize entity objects along with the
+
+ instances.
+
+ The serialized stream.
+
+
+
+ This class contains the common methods need for an date object.
+
+
+
+
+ Public constant name used for change tracking
+ Providing this definition allows users to use this constant instead of
+ hard-coding the string. This helps to ensure the property name is correct
+ and allows faster comparisons in places where we are looking for this specific string.
+ Users can still use the case-sensitive string directly instead of the constant,
+ it will just be slightly slower on comparison.
+ Including the dash (-) character around the name ensures that this will not conflict with
+ a real data property, because -EntityKey- is not a valid identifier name
+
+
+
+
+ Notification that a property has been changed.
+
+
+ The PropertyChanged event can indicate all properties on the
+ object have changed by using either a null reference
+ (Nothing in Visual Basic) or String.Empty as the property name
+ in the PropertyChangedEventArgs.
+
+
+
+
+ Notification that a property is about to be changed.
+
+
+ The PropertyChanging event can indicate all properties on the
+ object are changing by using either a null reference
+ (Nothing in Visual Basic) or String.Empty as the property name
+ in the PropertyChangingEventArgs.
+
+
+
+
+ Raises the event.
+
+ The name of the changed property.
+
+
+
+ Raises the event.
+
+ The name of the property changing.
+
+
+ Returns the minimum date time value supported by the data source.
+
+ A value that is the minimum date time that is supported by the data source.
+
+
+
+ Raises an event that is used to report that a property change is pending.
+ The name of the changing property.
+
+
+ Raises an event that is used to report that a property change has occurred.
+ The name for the changed property.
+
+
+ Returns a complex type for the specified property.
+
+ Unlike most of the other helper methods in this class, this one is not static
+ because it references the SetValidValue for complex objects, which is also not static
+ because it needs a reference to this.
+
+ A complex type object for the property.
+ A complex object that inherits from complex object.
+ The name of the complex property that is the complex object.
+ Indicates whether the type supports null values.
+ Indicates whether the type is initialized.
+ The type of the complex object being requested.
+
+
+ Determines whether the specified byte arrays contain identical values.
+ true if both arrays are of the same length and contain the same byte values or if both arrays are null; otherwise, false.
+ The first byte array value to compare.
+ The second byte array to compare.
+
+
+ Returns a copy of the current byte value.
+
+ A copy of the current value.
+
+ The current byte array value.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being validated.
+
+ The value passed into the property setter.
+ Flag indicating if this property is allowed to be null.
+ The name of the property that is being validated.
+ If value is null for a non nullable value.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ A value being set.
+
+ The value being set.
+ Indicates whether the property is nullable.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+ The Boolean value.
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+ The Boolean value.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ A that is set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value that is set.
+
+ The value that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ A value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+ Makes sure the Single value being set for a property is valid.
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+ Makes sure the Single value being set for a property is valid.
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ Name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The nullable value being set.
+
+
+ The nullable value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+ Makes sure the UInt16 value being set for a property is valid.
+ The nullable UInt16 value being set.
+ The nullable UInt16 value.
+ The name of the property that is being validated.
+
+
+ Makes sure the UInt16 value being set for a property is valid.
+ The nullable UInt16 value being set.
+ The nullable UInt16 value.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+ Makes sure the UInt32 value being set for a property is valid.
+ The nullable UInt32 value being set.
+ The nullable UInt32 value.
+ The name of the property that is being validated.
+
+
+ Makes sure the UInt32 value being set for a property is valid.
+ The nullable UInt32 value being set.
+ The nullable UInt32 value.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+
+ The value being set.
+
+
+ The value.
+
+
+
+
+ Makes sure the value being set for a property is valid.
+
+ The nullable UInt64 value being set.
+ The nullable UInt64 value.
+ The name of the property that is being validated.
+
+
+
+ Makes sure the value being set for a property is valid.
+
+ The nullable UInt64 value being set.
+ The nullable UInt64 value.
+
+
+ Validates that the property is not null, and throws if it is.
+ The validated property.
+ The string value to be checked.
+ Flag indicating if this property is allowed to be null.
+ The name of the property that is being validated.
+ The string value is null for a non-nullable string.
+
+
+ Validates that the property is not null, and throws if it is.
+
+ The validated value.
+
+ The string value to be checked.
+ Flag indicating if this property is allowed to be null.
+
+
+ Validates that the property is not null, and throws if it is.
+
+ The value being set.
+
+
+ The value to be checked.
+
+ Flag indicating if this property is allowed to be null.
+ Name of the property that is being validated.
+ The value is null for a non-nullable property.
+
+
+ Validates that the property is not null, and throws if it is.
+
+ The value being set.
+
+
+ value to be checked.
+
+ Flag indicating if this property is allowed to be null.
+ The value is null for a non-nullable property.
+
+
+ Validates that the property is not null, and throws if it is.
+
+ The value being set.
+
+
+ value to be checked.
+
+ Flag indicating if this property is allowed to be null.
+ The name of the property that is being validated.
+ The value is null for a non-nullable property.
+
+
+ Validates that the property is not null, and throws if it is.
+
+ The value being set.
+
+
+ The value to be checked.
+
+ Flag indicating if this property is allowed to be null.
+ The value is null for a non-nullable property.
+
+
+ Sets a complex object for the specified property.
+ A complex type that derives from complex object.
+ The original complex object for the property, if any.
+ The complex object is being set.
+ The complex property that is being set to the complex object.
+ The type of the object being replaced.
+
+
+ Verifies that a complex object is not null.
+ The complex object being validated.
+ The complex object that is being validated.
+ The complex property on the parent object that is associated with complexObject .
+ The type of the complex object being verified.
+
+
+
+ Provides access to the original values of object data. The DbUpdatableDataRecord implements methods that allow updates to the original values of an object.
+
+
+
+ Gets the number of fields in the record.
+ An integer value that is the field count.
+
+
+ Returns a value that has the given field ordinal.
+ The value that has the given field ordinal.
+ The ordinal of the field.
+
+
+ Gets a value that has the given field name.
+ The field value.
+ The name of the field.
+
+
+ Retrieves the field value as a Boolean.
+ The field value as a Boolean.
+ The ordinal of the field.
+
+
+ Retrieves the field value as a byte.
+ The field value as a byte.
+ The ordinal of the field.
+
+
+ Retrieves the field value as a byte array.
+ The number of bytes copied.
+ The ordinal of the field.
+ The index at which to start copying data.
+ The destination buffer where data is copied.
+ The index in the destination buffer where copying will begin.
+ The number of bytes to copy.
+
+
+ Retrieves the field value as a char.
+ The field value as a char.
+ The ordinal of the field.
+
+
+ Retrieves the field value as a char array.
+ The number of characters copied.
+ The ordinal of the field.
+ The index at which to start copying data.
+ The destination buffer where data is copied.
+ The index in the destination buffer where copying will begin.
+ The number of characters to copy.
+
+
+
+ Retrieves the field value as an .
+
+
+ The field value as an .
+
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as a
+
+
+ The field value as a .
+
+ The ordinal of the field.
+
+
+ Retrieves the name of the field data type.
+ The name of the field data type.
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as a .
+
+
+ The field value as a .
+
+ The ordinal of the field.
+
+
+ Retrieves the field value as a decimal.
+ The field value as a decimal.
+ The ordinal of the field.
+
+
+ Retrieves the field value as a double.
+ The field value as a double.
+ The ordinal of the field.
+
+
+ Retrieves the type of a field.
+ The field type.
+ The ordinal of the field.
+
+
+ Retrieves the field value as a float.
+ The field value as a float.
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as a .
+
+
+ The field value as a .
+
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as an .
+
+
+ The field value as an .
+
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as an .
+
+
+ The field value as an .
+
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as an .
+
+
+ The field value as an .
+
+ The ordinal of the field.
+
+
+ Retrieves the name of a field.
+ The name of the field.
+ The ordinal of the field.
+
+
+ Retrieves the ordinal of a field by using the name of the field.
+ The ordinal of the field.
+ The name of the field.
+
+
+ Retrieves the field value as a string.
+ The field value.
+ The ordinal of the field.
+
+
+ Retrieves the value of a field.
+ The field value.
+ The ordinal of the field.
+
+
+ Retrieves the value of a field.
+ The field value.
+ The ordinal of the field.
+
+
+ Populates an array of objects with the field values of the current record.
+ The number of field values returned.
+ An array of objects to store the field values.
+
+
+
+ Returns whether the specified field is set to .
+
+
+ true if the field is set to ; otherwise false.
+
+ The ordinal of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+ Sets field values in a record.
+ The number of the fields that were set.
+ The values of the field.
+
+
+
+ Sets a field to the value.
+
+ The ordinal of the field.
+
+
+ Gets data record information.
+
+ A object.
+
+
+
+
+ Retrieves a field value as a .
+
+
+ A field value as a .
+
+ The ordinal of the field.
+
+
+
+ Retrieves the field value as a .
+
+
+ The field value as a .
+
+ The ordinal of the field.
+
+
+ Sets the value of a field in a record.
+ The ordinal of the field.
+ The value of the field.
+
+
+
+ List of type pairs that constructor call new XXXX(YYY yyy) could be translated to SQL CAST(yyy AS XXXXX) call
+
+
+
+
+ Provides common language runtime (CLR) methods that expose EDM canonical functions
+ for use in or LINQ to Entities queries.
+
+
+ Note that these functions have been moved to the class starting with EF6.
+ The functions are retained here only to help in the migration of older EF apps to EF6.
+
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given
+ number of the leftmost characters in a string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input string.
+ The number of characters to return
+ A string containing the number of characters asked for from the left of the input string.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given
+ number of the rightmost characters in a string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input string.
+ The number of characters to return
+ A string containing the number of characters asked for from the right of the input string.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given
+ string with the order of the characters reversed.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input string.
+ The input string with the order of the characters reversed.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to
+ return the number of minutes that the given date/time is offset from UTC. This is generally between +780
+ and -780 (+ or - 13 hrs).
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The date/time value to use.
+ The offset of the input from UTC.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
+ the given date with the time portion cleared.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The date/time value to use.
+ The input date with the time portion cleared.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
+ the given date with the time portion cleared.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The date/time value to use.
+ The input date with the time portion cleared.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to
+ create a new object.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The year.
+ The month (1-based).
+ The day (1-based).
+ The hours.
+ The minutes.
+ The seconds, including fractional parts of the seconds if desired.
+ The new date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to
+ create a new object.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The year.
+ The month (1-based).
+ The day (1-based).
+ The hours.
+ The minutes.
+ The seconds, including fractional parts of the seconds if desired.
+ The time zone offset part of the new date.
+ The new date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to
+ create a new object.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The hours.
+ The minutes.
+ The seconds, including fractional parts of the seconds if desired.
+ The new time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
+ add the given number of years to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of years to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
+ add the given number of years to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of years to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
+ add the given number of months to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of months to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
+ add the given number of months to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of months to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
+ add the given number of days to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of days to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
+ add the given number of days to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of days to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
+ add the given number of hours to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of hours to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
+ add the given number of hours to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of hours to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
+ add the given number of hours to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of hours to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
+ add the given number of minutes to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of minutes to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
+ add the given number of minutes to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of minutes to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
+ add the given number of minutes to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of minutes to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
+ add the given number of seconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of seconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
+ add the given number of seconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of seconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
+ add the given number of seconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of seconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
+ add the given number of milliseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of milliseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
+ add the given number of milliseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of milliseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
+ add the given number of milliseconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of milliseconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
+ add the given number of microseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of microseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
+ add the given number of microseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of microseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
+ add the given number of microseconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of microseconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
+ add the given number of nanoseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of nanoseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
+ add the given number of nanoseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of nanoseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
+ add the given number of nanoseconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of nanoseconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
+ calculate the number of years between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of years between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
+ calculate the number of years between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of years between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
+ calculate the number of months between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of months between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
+ calculate the number of months between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of months between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
+ calculate the number of days between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of days between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
+ calculate the number of days between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of days between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
+ calculate the number of hours between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of hours between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
+ calculate the number of hours between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of hours between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
+ calculate the number of hours between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of hours between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
+ calculate the number of minutes between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of minutes between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
+ calculate the number of minutes between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of minutes between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
+ calculate the number of minutes between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of minutes between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
+ calculate the number of seconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of seconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
+ calculate the number of seconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of seconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
+ calculate the number of seconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of seconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
+ calculate the number of milliseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of milliseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
+ calculate the number of milliseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of milliseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
+ calculate the number of milliseconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of milliseconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
+ calculate the number of microseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of microseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
+ calculate the number of microseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of microseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
+ calculate the number of microseconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of microseconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
+ calculate the number of nanoseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of nanoseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
+ calculate the number of nanoseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of nanoseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
+ calculate the number of nanoseconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of nanoseconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
+ truncate the given value to the number of specified digits.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The value to truncate.
+ The number of digits to preserve.
+ The truncated value.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
+ truncate the given value to the number of specified digits.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The value to truncate.
+ The number of digits to preserve.
+ The truncated value.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Like EDM operator to match an expression.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The string to search.
+ The expression to match against.
+ True if the searched string matches the expression; otherwise false.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Like EDM operator to match an expression.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The string to search.
+ The expression to match against.
+ The string to escape special characters with, must only be a single character.
+ True if the searched string matches the expression; otherwise false.
+
+
+
+ When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
+ is treated as a Unicode string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function impacts the way the LINQ query is translated to a query that can be run in the database.
+
+ The input string.
+ The input string treated as a Unicode string.
+
+
+
+ When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
+ is treated as a non-Unicode string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function impacts the way the LINQ query is translated to a query that can be run in the database.
+
+ The input string.
+ The input string treated as a non-Unicode string.
+
+
+
+ Options for query execution.
+
+
+
+
+ Creates a new instance of .
+
+ Merge option to use for entity results.
+
+
+
+ Creates a new instance of .
+
+ Merge option to use for entity results.
+ Whether the query is streaming or buffering.
+
+
+
+ Merge option to use for entity results.
+
+
+
+
+ Whether the query is streaming or buffering.
+
+
+
+ Determines whether the specified objects are equal.
+ true if the two objects are equal; otherwise, false.
+ The left object to compare.
+ The right object to compare.
+
+
+
+ Determines whether the specified objects are not equal.
+
+ The left object to compare.
+ The right object to compare.
+ true if the two objects are not equal; otherwise, false.
+
+
+
+
+
+
+
+
+
+ Defines behavior for implementations of IQueryable that allow modifications to the membership of the resulting set.
+
+ Type of entities returned from the queryable.
+
+
+ Notifies the set that an object that represents a new entity must be added to the set.
+
+ Depending on the implementation, the change to the set may not be visible in an enumeration of the set
+ until changes to that set have been persisted in some manner.
+
+ The new object to add to the set.
+
+
+ Notifies the set that an object that represents an existing entity must be added to the set.
+
+ Depending on the implementation, the change to the set may not be visible in an enumeration of the set
+ until changes to that set have been persisted in some manner.
+
+ The existing object to add to the set.
+
+
+ Notifies the set that an object that represents an existing entity must be deleted from the set.
+
+ Depending on the implementation, the change to the set may not be visible in an enumeration of the set
+ until changes to that set have been persisted in some manner.
+
+ The existing object to delete from the set.
+
+
+ Notifies the set that an object that represents an existing entity must be detached from the set.
+
+ Depending on the implementation, the change to the set may not be visible in an enumeration of the set
+ until changes to that set have been persisted in some manner.
+
+ The object to detach from the set.
+
+
+
+ The different ways that new objects loaded from the database can be merged with existing objects already in memory.
+
+
+
+
+ Will only append new (top level-unique) rows. This is the default behavior.
+
+
+
+
+ Same behavior as LoadOption.OverwriteChanges.
+
+
+
+
+ Same behavior as LoadOption.PreserveChanges.
+
+
+
+
+ Will not modify cache.
+
+
+
+
+ ObjectContext is the top-level object that encapsulates a connection between the CLR and the database,
+ serving as a gateway for Create, Read, Update, and Delete operations.
+
+
+
+
+ Initializes a new instance of the class with the given connection. During construction, the metadata workspace is extracted from the
+
+ object.
+
+
+ An that contains references to the model and to the data source connection.
+
+ The connection is null.
+ The connection is invalid or the metadata workspace is invalid.
+
+
+
+ Creates an ObjectContext with the given connection and metadata workspace.
+
+ connection to the store
+ If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection.
+
+
+
+ Initializes a new instance of the class with the given connection string and default entity container name.
+
+ The connection string, which also provides access to the metadata information.
+ The connectionString is null.
+ The connectionString is invalid or the metadata workspace is not valid.
+
+
+
+ Initializes a new instance of the class with a given connection string and entity container name.
+
+ The connection string, which also provides access to the metadata information.
+ The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only.
+ The connectionString is null.
+ The connectionString , defaultContainerName , or metadata workspace is not valid.
+
+
+
+ Initializes a new instance of the class with a given connection and entity container name.
+
+
+ An that contains references to the model and to the data source connection.
+
+ The name of the default entity container. When the defaultContainerName is set through this method, the property becomes read-only.
+ The connection is null.
+ The connection , defaultContainerName , or metadata workspace is not valid.
+
+
+ Gets the connection used by the object context.
+
+ A object that is the connection.
+
+
+ When the instance has been disposed.
+
+
+
+ Gets or sets the default container name.
+
+ A that is the default container name.
+
+
+
+ Gets the metadata workspace used by the object context.
+
+ The object associated with this
+
+ .
+
+
+
+ Gets the object state manager used by the object context to track object changes.
+
+ The used by this
+
+ .
+
+
+
+ Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used.
+
+ An value that is the timeout value, in seconds.
+
+ The timeout value is less than 0.
+
+
+ Gets the LINQ query provider associated with this object context.
+
+ The instance used by this object context.
+
+
+
+
+ Gets the instance that contains options that affect the behavior of the
+
+ .
+
+
+ The instance that contains options that affect the behavior of the
+
+ .
+
+
+
+
+ Returns itself. ObjectContext implements to provide a common
+ interface for and ObjectContext both of which will return the underlying
+ ObjectContext.
+
+
+
+
+ Gets the transaction handler in use by this context. May be null if no transaction have been started.
+
+
+ The transaction handler.
+
+
+
+
+ Returns the being used for this context.
+
+
+
+ Occurs when changes are saved to the data source.
+
+
+ Occurs when a new entity object is created from data in the data source as part of a query or load operation.
+
+
+ Accepts all changes made to objects in the object context.
+
+
+ Adds an object to the object context.
+ Represents the entity set name, which may optionally be qualified by the entity container name.
+
+ The to add.
+
+ The entity parameter is null or the entitySetName does not qualify.
+
+
+ Explicitly loads an object related to the supplied object by the specified navigation property and using the default merge option.
+ The entity for which related objects are to be loaded.
+ The name of the navigation property that returns the related objects to be loaded.
+
+ The entity is in a ,
+
+ or state or the entity is attached to another instance of
+
+ .
+
+
+
+ Explicitly loads an object that is related to the supplied object by the specified navigation property and using the specified merge option.
+ The entity for which related objects are to be loaded.
+ The name of the navigation property that returns the related objects to be loaded.
+
+ The value to use when you load the related objects.
+
+
+ The entity is in a ,
+
+ or state or the entity is attached to another instance of
+
+ .
+
+
+
+ Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the default merge option.
+ The type of the entity.
+ The source object for which related objects are to be loaded.
+ A LINQ expression that defines the related objects to be loaded.
+ selector does not supply a valid input parameter.
+ selector is null.
+
+ The entity is in a ,
+
+ or state or the entity is attached to another instance of
+
+ .
+
+
+
+ Explicitly loads an object that is related to the supplied object by the specified LINQ query and by using the specified merge option.
+ The type of the entity.
+ The source object for which related objects are to be loaded.
+ A LINQ expression that defines the related objects to be loaded.
+
+ The value to use when you load the related objects.
+
+ selector does not supply a valid input parameter.
+ selector is null.
+
+ The entity is in a ,
+
+ or state or the entity is attached to another instance of
+
+ .
+
+
+
+ Applies property changes from a detached object to an object already attached to the object context.
+ The name of the entity set to which the object belongs.
+ The detached object that has property updates to apply to the original object.
+ When entitySetName is null or an empty string or when changed is null.
+
+ When the from entitySetName does not match the
+
+ of the object
+
+ or when the entity is in a state other than
+
+ or
+
+ or the original object is not attached to the context.
+
+ When the type of the changed object is not the same type as the original object.
+
+
+
+ Copies the scalar values from the supplied object into the object in the
+
+ that has the same key.
+
+ The updated object.
+ The name of the entity set to which the object belongs.
+
+ The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the
+
+ property of an entry in the
+
+ .
+
+ The entity type of the object.
+ entitySetName or current is null.
+
+ The from entitySetName does not match the
+
+ of the object
+
+ or the object is not in the
+
+ or it is in a
+
+ state or the entity key of the supplied object is invalid.
+
+ entitySetName is an empty string.
+
+
+
+ Copies the scalar values from the supplied object into set of original values for the object in the
+
+ that has the same key.
+
+ The updated object.
+ The name of the entity set to which the object belongs.
+
+ The detached object that has original values to apply to the object. The entity key of originalEntity must match the
+
+ property of an entry in the
+
+ .
+
+ The type of the entity object.
+ entitySetName or original is null.
+
+ The from entitySetName does not match the
+
+ of the object
+
+ or an
+
+ for the object cannot be found in the
+
+ or the object is in an
+
+ or a
+
+ state or the entity key of the supplied object is invalid or has property changes.
+
+ entitySetName is an empty string.
+
+
+ Attaches an object or object graph to the object context in a specific entity set.
+ Represents the entity set name, which may optionally be qualified by the entity container name.
+
+ The to attach.
+
+ The entity is null.
+
+ Invalid entity set or the object has a temporary key or the object has an
+
+ and the
+
+ does not match with the entity set passed in as an argument of the method or the object does not have an
+
+ and no entity set is provided or any object from the object graph has a temporary
+
+ or any object from the object graph has an invalid
+
+ (for example, values in the key do not match values in the object) or the entity set could not be found from a given entitySetName name and entity container name or any object from the object graph already exists in another state manager.
+
+
+
+ Attaches an object or object graph to the object context when the object has an entity key.
+ The object to attach.
+ The entity is null.
+ Invalid entity key.
+
+
+ Creates the entity key for a specific object, or returns the entity key if it already exists.
+
+ The of the object.
+
+ The fully qualified name of the entity set to which the entity object belongs.
+ The object for which the entity key is being retrieved.
+ When either parameter is null.
+ When entitySetName is empty or when the type of the entity object does not exist in the entity set or when the entitySetName is not fully qualified.
+ When the entity key cannot be constructed successfully based on the supplied parameters.
+
+
+
+ Creates a new instance that is used to query, add, modify, and delete objects of the specified entity type.
+
+
+ The new instance.
+
+
+ Entity type of the requested .
+
+
+ The property is not set on the
+
+ or the specified type belongs to more than one entity set.
+
+
+
+
+ Creates a new instance that is used to query, add, modify, and delete objects of the specified type and with the specified entity set name.
+
+
+ The new instance.
+
+
+ Name of the entity set for the returned . The string must be qualified by the default container name if the
+
+ property is not set on the
+
+ .
+
+
+ Entity type of the requested .
+
+
+ The from entitySetName does not match the
+
+ of the object
+
+ or the
+
+ property is not set on the
+
+ and the name is not qualified as part of the entitySetName parameter or the specified type belongs to more than one entity set.
+
+
+
+
+ Creates an in the current object context by using the specified query string.
+
+
+ An of the specified type.
+
+ The query string to be executed.
+ Parameters to pass to the query.
+
+ The entity type of the returned .
+
+ The queryString or parameters parameter is null.
+
+
+ Marks an object for deletion.
+
+ An object that specifies the entity to delete. The object can be in any state except
+
+ .
+
+
+
+ Removes the object from the object context.
+
+ Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same
+
+ , those will not be detached automatically.
+
+ The entity is null.
+
+ The entity is not associated with this (for example, was newly created and not associated with any context yet, or was obtained through some other context, or was already detached).
+
+
+
+
+ Finalizes an instance of the class.
+
+
+
+ Releases the resources used by the object context.
+
+
+
+ Releases the resources used by the object context.
+
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Returns an object that has the specified entity key.
+
+ An that is an instance of an entity type.
+
+ The key of the object to be found.
+ The key parameter is null.
+
+ The object is not found in either the or the data source.
+
+
+
+ Updates a collection of objects in the object context with data from the database.
+
+ A value that indicates whether
+ property changes in the object context are overwritten with property values from the database.
+
+
+ An collection of objects to refresh.
+
+ collection is null.
+ refreshMode is not valid.
+ collection is empty or an object is not attached to the context.
+
+
+ Updates an object in the object context with data from the database.
+
+ A value that indicates whether
+ property changes in the object context are overwritten with property values from the database.
+
+ The object to be refreshed.
+ entity is null.
+ refreshMode is not valid.
+ entity is not attached to the context.
+
+
+ Asynchronously updates a collection of objects in the object context with data from the database.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A value that indicates whether
+ property changes in the object context are overwritten with property values from the database.
+
+
+ An collection of objects to refresh.
+
+
+ A task that represents the asynchronous operation.
+
+ collection is null.
+ refreshMode is not valid.
+ collection is empty or an object is not attached to the context.
+
+
+ Asynchronously updates a collection of objects in the object context with data from the database.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A value that indicates whether
+ property changes in the object context are overwritten with property values from the database.
+
+
+ An collection of objects to refresh.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+ collection is null.
+ refreshMode is not valid.
+ collection is empty or an object is not attached to the context.
+
+
+ Asynchronously updates an object in the object context with data from the database.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A value that indicates whether
+ property changes in the object context are overwritten with property values from the database.
+
+ The object to be refreshed.
+
+ A task that represents the asynchronous operation.
+
+ entity is null.
+ refreshMode is not valid.
+ entity is not attached to the context.
+
+
+ Asynchronously updates an object in the object context with data from the database.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A value that indicates whether
+ property changes in the object context are overwritten with property values from the database.
+
+ The object to be refreshed.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+ entity is null.
+ refreshMode is not valid.
+ entity is not attached to the context.
+
+
+ Persists all updates to the database and resets change tracking in the object context.
+
+ The number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+ Asynchronously persists all updates to the database and resets change tracking in the object context.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous save operation.
+ The task result contains the number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+ Asynchronously persists all updates to the database and resets change tracking in the object context.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous save operation.
+ The task result contains the number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+ Persists all updates to the database and optionally resets change tracking in the object context.
+
+ This parameter is needed for client-side transaction support. If true, the change tracking on all objects is reset after
+
+ finishes. If false, you must call the
+ method after .
+
+
+ The number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+ Persists all updates to the database and optionally resets change tracking in the object context.
+
+ A value that determines the behavior of the operation.
+
+
+ The number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+ Asynchronously persists all updates to the database and optionally resets change tracking in the object context.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A value that determines the behavior of the operation.
+
+
+ A task that represents the asynchronous save operation.
+ The task result contains the number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+ Asynchronously persists all updates to the database and optionally resets change tracking in the object context.
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A value that determines the behavior of the operation.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous save operation.
+ The task result contains the number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An optimistic concurrency violation has occurred while saving changes.
+
+
+
+ Ensures that changes are synchronized with changes in all objects that are tracked by the
+
+ .
+
+
+
+ Returns an object that has the specified entity key.
+ true if the object was retrieved successfully. false if the key is temporary, the connection is null, or the value is null.
+ The key of the object to be found.
+ When this method returns, contains the object.
+ Incompatible metadata for key .
+ key is null.
+
+
+
+ Executes a stored procedure or function that is defined in the data source and mapped in the conceptual model, with the specified parameters. Returns a typed
+
+ .
+
+
+ An for the data that is returned by the stored procedure.
+
+ The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.
+
+ An array of objects. If output parameters are used,
+ their values will not be available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ The entity type of the returned when the function is executed against the data source. This type must implement
+
+ .
+
+ function is null or empty or function is not found.
+ The entity reader does not support this function or there is a type mismatch on the reader and the function .
+
+
+
+ Executes the given stored procedure or function that is defined in the data source and expressed in the conceptual model, with the specified parameters, and merge option. Returns a typed
+
+ .
+
+
+ An for the data that is returned by the stored procedure.
+
+ The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.
+
+ The to use when executing the query.
+
+
+ An array of objects. If output parameters are used,
+ their values will not be available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ The entity type of the returned when the function is executed against the data source. This type must implement
+
+ .
+
+ function is null or empty or function is not found.
+ The entity reader does not support this function or there is a type mismatch on the reader and the function .
+
+
+
+ Executes the given function on the default container.
+
+ Element type for function results.
+
+ Name of function. May include container (e.g. ContainerName.FunctionName) or just function name when DefaultContainerName is known.
+
+ The options for executing this function.
+
+ The parameter values to use for the function. If output parameters are used, their values
+ will not be available until the results have been read completely. This is due to the underlying
+ behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+ An object representing the result of executing this function.
+ If function is null or empty
+
+ If function is invalid (syntax,
+ does not exist, refers to a function with return type incompatible with T)
+
+
+
+ Executes a stored procedure or function that is defined in the data source and expressed in the conceptual model; discards any results returned from the function; and returns the number of rows affected by the execution.
+ The number of rows affected.
+ The name of the stored procedure or function. The name can include the container name, such as <Container Name>.<Function Name>. When the default container name is known, only the function name is required.
+
+ An array of objects. If output parameters are used,
+ their values will not be available until the results have been read completely. This is due to the underlying
+ behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+ function is null or empty or function is not found.
+ The entity reader does not support this function or there is a type mismatch on the reader and the function .
+
+
+ Generates an equivalent type that can be used with the Entity Framework for each type in the supplied enumeration.
+
+ An enumeration of objects that represent custom data classes that map to the conceptual model.
+
+
+
+ Returns all the existing proxy types.
+
+ An of all the existing proxy types.
+
+
+
+ Returns the entity type of the POCO entity associated with a proxy object of a specified type.
+
+ The of the associated POCO entity.
+
+
+ The of the proxy object.
+
+
+
+ Creates and returns an instance of the requested type .
+ An instance of the requested type T , or an instance of a derived type that enables T to be used with the Entity Framework. The returned object is either an instance of the requested type or an instance of a derived type that enables the requested type to be used with the Entity Framework.
+ Type of object to be returned.
+
+
+
+ Executes an arbitrary command directly against the data source using the existing connection.
+ The command is specified using the server's native query language, such as SQL.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ If there isn't an existing local transaction a new transaction will be used
+ to execute the command.
+
+ The command specified in the server's native query language.
+ The parameter values to use for the query.
+ The number of rows affected.
+
+
+
+ Executes an arbitrary command directly against the data source using the existing connection.
+ The command is specified using the server's native query language, such as SQL.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ Controls the creation of a transaction for this command.
+ The command specified in the server's native query language.
+ The parameter values to use for the query.
+ The number of rows affected.
+
+
+
+ Asynchronously executes an arbitrary command directly against the data source using the existing connection.
+ The command is specified using the server's native query language, such as SQL.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ If there isn't an existing local transaction a new transaction will be used
+ to execute the command.
+
+ The command specified in the server's native query language.
+ The parameter values to use for the query.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of rows affected.
+
+
+
+
+ Asynchronously executes an arbitrary command directly against the data source using the existing connection.
+ The command is specified using the server's native query language, such as SQL.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ Controls the creation of a transaction for this command.
+ The command specified in the server's native query language.
+ The parameter values to use for the query.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of rows affected.
+
+
+
+
+ Asynchronously executes an arbitrary command directly against the data source using the existing connection.
+ The command is specified using the server's native query language, such as SQL.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ If there isn't an existing local transaction a new transaction will be used
+ to execute the command.
+
+ The command specified in the server's native query language.
+
+ A to observe while waiting for the task to complete.
+
+ The parameter values to use for the query.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of rows affected.
+
+
+
+
+ Asynchronously executes an arbitrary command directly against the data source using the existing connection.
+ The command is specified using the server's native query language, such as SQL.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ Controls the creation of a transaction for this command.
+ The command specified in the server's native query language.
+
+ A to observe while waiting for the task to complete.
+
+ The parameter values to use for the query.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of rows affected.
+
+
+
+
+ Executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ Results are not tracked by the context, use the overload that specifies an entity set name to track results.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ An enumeration of objects of type .
+
+
+
+
+ Executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ Results are not tracked by the context, use the overload that specifies an entity set name to track results.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The options for executing this query.
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior of
+ DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ An enumeration of objects of type .
+
+
+
+
+ Executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ If an entity set name is specified, results are tracked by the context.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked.
+
+ The to use when executing the query. The default is
+ .
+
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ An enumeration of objects of type .
+
+
+
+
+ Executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ If an entity set name is specified, results are tracked by the context.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked.
+ The options for executing this query.
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ An enumeration of objects of type .
+
+
+
+
+ Asynchronously executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ Results are not tracked by the context, use the overload that specifies an entity set name to track results.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an enumeration of objects of type .
+
+
+
+
+ Asynchronously executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ Results are not tracked by the context, use the overload that specifies an entity set name to track results.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+
+ A to observe while waiting for the task to complete.
+
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an enumeration of objects of type .
+
+
+
+
+ Asynchronously executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ Results are not tracked by the context, use the overload that specifies an entity set name to track results.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The options for executing this query.
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an enumeration of objects of type .
+
+
+
+
+ Asynchronously executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ Results are not tracked by the context, use the overload that specifies an entity set name to track results.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The options for executing this query.
+
+ A to observe while waiting for the task to complete.
+
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an enumeration of objects of type .
+
+
+
+
+ Asynchronously executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ If an entity set name is specified, results are tracked by the context.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked.
+ The options for executing this query.
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an enumeration of objects of type .
+
+
+
+
+ Asynchronously executes a query directly against the data source and returns a sequence of typed results.
+ The query is specified using the server's native query language, such as SQL.
+ If an entity set name is specified, results are tracked by the context.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.ExecuteStoreQueryAsync<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The element type of the result sequence.
+ The query specified in the server's native query language.
+ The entity set of the TResult type. If an entity set name is not provided, the results are not going to be tracked.
+ The options for executing this query.
+
+ A to observe while waiting for the task to complete.
+
+
+ The parameter values to use for the query. If output parameters are used, their values will not be
+ available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an enumeration of objects of type .
+
+
+
+
+ Translates a that contains rows of entity data to objects of the requested entity type.
+
+ The entity type.
+ An enumeration of objects of type TResult .
+
+ The that contains entity data to translate into entity objects.
+
+ When reader is null.
+
+
+
+ Translates a that contains rows of entity data to objects of the requested entity type, in a specific entity set, and with the specified merge option.
+
+ The entity type.
+ An enumeration of objects of type TResult .
+
+ The that contains entity data to translate into entity objects.
+
+ The entity set of the TResult type.
+
+ The to use when translated objects are added to the object context. The default is
+
+ .
+
+ When reader is null.
+
+ When the supplied mergeOption is not a valid value.
+
+ When the supplied entitySetName is not a valid entity set for the TResult type.
+
+
+
+ Creates the database by using the current data source connection and the metadata in the
+
+ .
+
+
+
+ Deletes the database that is specified as the database in the current data source connection.
+
+
+
+ Checks if the database that is specified as the database in the current store connection exists on the store. Most of the actual work
+ is done by the DbProviderServices implementation for the current store connection.
+
+ true if the database exists; otherwise, false.
+
+
+
+ Generates a data definition language (DDL) script that creates schema objects (tables, primary keys, foreign keys) for the metadata in the
+
+ . The
+
+ loads metadata from store schema definition language (SSDL) files.
+
+
+ A DDL script that creates schema objects for the metadata in the
+
+ .
+
+
+
+
+ Defines options that affect the behavior of the ObjectContext.
+
+
+
+
+ Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction.
+
+
+ This flag determines whether a new transaction will be started when methods such as
+ and are executed outside of a transaction.
+ Note that this does not change the behavior of .
+
+
+ The default transactional behavior.
+
+
+
+ Gets or sets a Boolean value that determines whether related objects are loaded automatically when a navigation property is accessed.
+ true if lazy loading is enabled; otherwise, false.
+
+
+ Gets or sets a Boolean value that determines whether proxy instances are created for custom data classes that are persistence ignorant.
+ true if proxies are created; otherwise, false. The default value is true.
+
+
+ Gets or sets a Boolean value that determines whether to use the legacy PreserveChanges behavior.
+ true if the legacy PreserveChanges behavior should be used; otherwise, false.
+
+
+ Gets or sets a Boolean value that determines whether to use the consistent NullReference behavior.
+
+ If this flag is set to false then setting the Value property of the for an
+ FK relationship to null when it is already null will have no effect. When this flag is set to true, then
+ setting the value to null will always cause the FK to be nulled and the relationship to be deleted
+ even if the value is currently null. The default value is false when using ObjectContext and true
+ when using DbContext.
+
+ true if the consistent NullReference behavior should be used; otherwise, false.
+
+
+ Gets or sets a Boolean value that determines whether to use the C# NullComparison behavior.
+
+ This flag determines whether C# behavior should be exhibited when comparing null values in LinqToEntities.
+ If this flag is set, then any equality comparison between two operands, both of which are potentially
+ nullable, will be rewritten to show C# null comparison semantics. As an example:
+ (operand1 = operand2) will be rewritten as
+ (((operand1 = operand2) AND NOT (operand1 IS NULL OR operand2 IS NULL)) || (operand1 IS NULL && operand2 IS NULL))
+ The default value is false when using .
+
+ true if the C# NullComparison behavior should be used; otherwise, false.
+
+
+
+ EventArgs for the ObjectMaterialized event.
+
+
+
+
+ Constructs new arguments for the ObjectMaterialized event.
+
+ The object that has been materialized.
+
+
+ Gets the entity object that was created.
+ The entity object that was created.
+
+
+
+ Delegate for the ObjectMaterialized event.
+
+ The ObjectContext responsable for materializing the object.
+ EventArgs containing a reference to the materialized object.
+
+
+
+ This class represents a query parameter at the object layer, which consists
+ of a Name, a Type and a Value.
+
+
+
+
+ Initializes a new instance of the class with the specified name and type.
+
+ The parameter name. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character.
+ The common language runtime (CLR) type of the parameter.
+ If the value of either argument is null.
+ If the value of the name argument is invalid. Parameter names must start with a letter and can only contain letters, numbers, and underscores.
+
+
+
+ Initializes a new instance of the class with the specified name and value.
+
+ The parameter name. This name should not include the "@" parameter marker that is used in Entity SQL statements, only the actual name. The first character of the expression must be a letter. Any successive characters in the expression must be either letters, numbers, or an underscore (_) character.
+ The initial value (and inherently, the type) of the parameter.
+ If the value of either argument is null.
+ If the value of the name argument is not valid. Parameter names must start with a letter and can only contain letters, numbers, and underscores.
+
+
+ Gets the parameter name, which can only be set through a constructor.
+ The parameter name, which can only be set through a constructor.
+
+
+ Gets the parameter type.
+
+ The of the parameter.
+
+
+
+ Gets or sets the parameter value.
+ The parameter value.
+
+
+
+ This class represents a collection of query parameters at the object layer.
+
+
+
+ Gets the number of parameters currently in the collection.
+
+ The number of objects that are currently in the collection.
+
+
+
+
+ This collection is read-write - parameters may be added, removed
+ and [somewhat] modified at will (value only) - provided that the
+ implementation the collection belongs to has not locked its parameters
+ because it's command definition has been prepared.
+
+
+
+ Provides an indexer that allows callers to retrieve parameters by name.
+
+ The instance.
+
+ The name of the parameter to find. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name.
+ No parameter with the specified name is found in the collection.
+
+
+
+ Adds the specified to the collection.
+
+ The parameter to add to the collection.
+ The parameter argument is null.
+
+ The parameter argument already exists in the collection. This behavior differs from that of most collections that allow duplicate entries. -or-Another parameter with the same name as the parameter argument already exists in the collection. Note that the lookup is case-insensitive. This behavior differs from that of most collections, and is more like that of a
+
+ .
+
+ The type of the parameter is not valid.
+
+
+
+ Deletes all instances from the collection.
+
+
+
+
+ Checks for the existence of a specified in the collection by reference.
+
+ Returns true if the parameter object was found in the collection; otherwise, false.
+
+ The to find in the collection.
+
+ The parameter argument is null.
+
+
+
+ Determines whether an with the specified name is in the collection.
+
+ Returns true if a parameter with the specified name was found in the collection; otherwise, false.
+ The name of the parameter to look for in the collection. This name should not include the "@" parameter marker that is used in the Entity SQL statements, only the actual name.
+ The name parameter is null.
+
+
+ Allows the parameters in the collection to be copied into a supplied array, starting with the object at the specified index.
+ The array into which to copy the parameters.
+ The index in the array at which to start copying the parameters.
+
+
+
+ Removes an instance of an from the collection by reference if it exists in the collection.
+
+ Returns true if the parameter object was found and removed from the collection; otherwise, false.
+ An object to remove from the collection.
+ The parameter argument is null.
+
+
+
+ These methods return enumerator instances, which allow the collection to
+ be iterated through and traversed.
+
+ An object that can be used to iterate through the collection.
+
+
+ Returns an untyped enumerator over the collection.
+
+ An instance.
+
+
+
+
+ This class implements untyped queries at the object-layer.
+
+
+
+ Returns the command text for the query.
+ A string value.
+
+
+ Gets the object context associated with this object query.
+
+ The associated with this
+
+ instance.
+
+
+
+ Gets or sets how objects returned from a query are added to the object context.
+
+ The query .
+
+
+
+
+ Whether the query is streaming or buffering
+
+
+
+ Gets the parameter collection for this object query.
+
+ The parameter collection for this .
+
+
+
+ Gets or sets a value that indicates whether the query plan should be cached.
+ A value that indicates whether the query plan should be cached.
+
+
+ Returns the commands to execute against the data source.
+ A string that represents the commands that the query executes against the data source.
+
+
+ Returns information about the result type of the query.
+
+ A value that contains information about the result type of the query.
+
+
+
+ Executes the untyped object query with the specified merge option.
+
+ The to use when executing the query.
+ The default is .
+
+
+ An that contains a collection of entity objects returned by the query.
+
+
+
+
+ Asynchronously executes the untyped object query with the specified merge option.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The to use when executing the query.
+ The default is .
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an
+ that contains a collection of entity objects returned by the query.
+
+
+
+
+ Asynchronously executes the untyped object query with the specified merge option.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The to use when executing the query.
+ The default is .
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an
+ that contains a collection of entity objects returned by the query.
+
+
+
+
+ Returns the collection as an used for data binding.
+
+
+ An of entity objects.
+
+
+
+
+ Gets the result element type for this query instance.
+
+
+
+
+ Gets the expression describing this query. For queries built using
+ LINQ builder patterns, returns a full LINQ expression tree; otherwise,
+ returns a constant expression wrapping this query. Note that the
+ default expression is not cached. This allows us to differentiate
+ between LINQ and Entity-SQL queries.
+
+
+
+
+ Gets the associated with this query instance.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An that can be used to iterate through the collection.
+
+
+
+
+ Returns an which when enumerated will execute the given SQL query against the database.
+
+ The query results.
+
+
+
+ ObjectQuery implements strongly-typed queries at the object-layer.
+ Queries are specified using Entity-SQL strings and may be created by calling
+ the Entity-SQL-based query builder methods declared by ObjectQuery.
+
+ The result type of this ObjectQuery
+
+
+
+ Creates a new instance using the specified Entity SQL command as the initial query.
+
+ The Entity SQL query.
+
+ The on which to execute the query.
+
+
+
+
+ Creates a new instance using the specified Entity SQL command as the initial query and the specified merge option.
+
+ The Entity SQL query.
+
+ The on which to execute the query.
+
+
+ Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same
+
+ .
+
+
+
+ Gets or sets the name of this object query.
+
+ A string value that is the name of this .
+
+ The value specified on set is not valid.
+
+
+ Executes the object query with the specified merge option.
+
+ The to use when executing the query.
+ The default is .
+
+
+ An that contains a collection of entity objects returned by the query.
+
+
+
+
+ Asynchronously executes the object query with the specified merge option.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The to use when executing the query.
+ The default is .
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an
+ that contains a collection of entity objects returned by the query.
+
+
+
+
+ Asynchronously executes the object query with the specified merge option.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The to use when executing the query.
+ The default is .
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an
+ that contains a collection of entity objects returned by the query.
+
+
+
+ Specifies the related objects to include in the query results.
+
+ A new with the defined query path.
+
+ Dot-separated list of related objects to return in the query results.
+ path is null.
+ path is empty.
+
+
+ Limits the query to unique results.
+
+ A new instance that is equivalent to the original instance with SELECT DISTINCT applied.
+
+
+
+
+ This query-builder method creates a new query whose results are all of
+ the results of this query, except those that are also part of the other
+ query specified.
+
+ A query representing the results to exclude.
+ a new ObjectQuery instance.
+ If the query parameter is null.
+
+
+ Groups the query results by the specified criteria.
+
+ A new instance of type
+
+ that is equivalent to the original instance with GROUP BY applied.
+
+ The key columns by which to group the results.
+ The list of selected properties that defines the projection.
+ Zero or more parameters that are used in this method.
+ The query parameter is null or an empty string
+ or the projection parameter is null or an empty string.
+
+
+
+ This query-builder method creates a new query whose results are those that
+ are both in this query and the other query specified.
+
+ A query representing the results to intersect with.
+ a new ObjectQuery instance.
+ If the query parameter is null.
+
+
+ Limits the query to only results of a specific type.
+
+ A new instance that is equivalent to the original instance with OFTYPE applied.
+
+
+ The type of the returned when the query is executed with the applied filter.
+
+ The type specified is not valid.
+
+
+ Orders the query results by the specified criteria.
+
+ A new instance that is equivalent to the original instance with ORDER BY applied.
+
+ The key columns by which to order the results.
+ Zero or more parameters that are used in this method.
+ The keys or parameters parameter is null.
+ The key is an empty string.
+
+
+ Limits the query results to only the properties that are defined in the specified projection.
+
+ A new instance of type
+
+ that is equivalent to the original instance with SELECT applied.
+
+ The list of selected properties that defines the projection.
+ Zero or more parameters that are used in this method.
+ projection is null or parameters is null.
+ The projection is an empty string.
+
+
+ Limits the query results to only the property specified in the projection.
+
+ A new instance of a type compatible with the specific projection. The returned
+
+ is equivalent to the original instance with SELECT VALUE applied.
+
+ The projection list.
+ An optional set of query parameters that should be in scope when parsing.
+
+ The type of the returned by the
+
+ method.
+
+ projection is null or parameters is null.
+ The projection is an empty string.
+
+
+ Orders the query results by the specified criteria and skips a specified number of results.
+
+ A new instance that is equivalent to the original instance with both ORDER BY and SKIP applied.
+
+ The key columns by which to order the results.
+ The number of results to skip. This must be either a constant or a parameter reference.
+ An optional set of query parameters that should be in scope when parsing.
+ Any argument is null.
+ keys is an empty string or count is an empty string.
+
+
+ Limits the query results to a specified number of items.
+
+ A new instance that is equivalent to the original instance with TOP applied.
+
+ The number of items in the results as a string.
+ An optional set of query parameters that should be in scope when parsing.
+ count is null.
+ count is an empty string.
+
+
+
+ This query-builder method creates a new query whose results are all of
+ the results of this query, plus all of the results of the other query,
+ without duplicates (i.e., results are unique).
+
+ A query representing the results to add.
+ a new ObjectQuery instance.
+ If the query parameter is null.
+
+
+
+ This query-builder method creates a new query whose results are all of
+ the results of this query, plus all of the results of the other query,
+ including any duplicates (i.e., results are not necessarily unique).
+
+ A query representing the results to add.
+ a new ObjectQuery instance.
+ If the query parameter is null.
+
+
+ Limits the query to results that match specified filtering criteria.
+
+ A new instance that is equivalent to the original instance with WHERE applied.
+
+ The filter predicate.
+ Zero or more parameters that are used in this method.
+ predicate is null or parameters is null.
+ The predicate is an empty string.
+
+
+
+ Returns an which when enumerated will execute the given SQL query against the database.
+
+ The query results.
+
+
+
+ Returns an which when enumerated will execute the given SQL query against the database.
+
+ The query results.
+
+
+
+ This class implements IEnumerable and IDisposable. Instance of this class
+ is returned from ObjectQuery.Execute method.
+
+
+
+
+ This constructor is intended only for use when creating test doubles that will override members
+ with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected
+ behavior including but not limited to throwing .
+
+
+
+
+
+
+ Returns an enumerator that iterates through the query results.
+ An enumerator that iterates through the query results.
+
+
+
+ IListSource.ContainsListCollection implementation. Always returns false.
+
+
+
+ Returns the results in a format useful for data binding.
+
+ An of entity objects.
+
+
+
+
+ When overridden in a derived class, gets the type of the generic
+
+ .
+
+
+ The type of the generic .
+
+
+
+ Performs tasks associated with freeing, releasing, or resetting resources.
+
+
+ Releases the resources used by the object result.
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+ Gets the next result set of a stored procedure.
+ An ObjectResult that enumerates the values of the next result set. Null, if there are no more, or if the ObjectResult is not the result of a stored procedure call.
+ The type of the element.
+
+
+
+ This class represents the result of the method.
+
+ The type of the result.
+
+
+
+ This constructor is intended only for use when creating test doubles that will override members
+ with mocked or faked behavior. Use of this constructor for other purposes may result in unexpected
+ behavior including but not limited to throwing .
+
+
+
+ Returns an enumerator that iterates through the query results.
+ An enumerator that iterates through the query results.
+
+
+
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+ true to release managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Gets the type of the .
+
+
+ A that is the type of the .
+
+
+
+
+ Represents a typed entity set that is used to perform create, read, update, and delete operations.
+
+ The type of the entity.
+
+
+
+ Gets the metadata of the entity set represented by this instance.
+
+
+ An object.
+
+
+
+ Adds an object to the object context in the current entity set.
+ The object to add.
+
+
+ Attaches an object or object graph to the object context in the current entity set.
+ The object to attach.
+
+
+ Marks an object for deletion.
+
+ An object that represents the entity to delete. The object can be in any state except
+
+ .
+
+
+
+ Removes the object from the object context.
+
+ Object to be detached. Only the entity is removed; if there are any related objects that are being tracked by the same
+
+ , those will not be detached automatically.
+
+
+
+
+ Copies the scalar values from the supplied object into the object in the
+
+ that has the same key.
+
+ The updated object.
+
+ The detached object that has property updates to apply to the original object. The entity key of currentEntity must match the
+
+ property of an entry in the
+
+ .
+
+
+
+
+ Sets the property of an
+
+ to match the property values of a supplied object.
+
+ The updated object.
+
+ The detached object that has property updates to apply to the original object. The entity key of originalEntity must match the
+
+ property of an entry in the
+
+ .
+
+
+
+ Creates a new entity type object.
+ The new entity type object, or an instance of a proxy type that corresponds to the entity type.
+
+
+ Creates an instance of the specified type.
+ An instance of the requested type T , or an instance of a proxy type that corresponds to the type T .
+ Type of object to be returned.
+
+
+
+ Represents either a entity, entity stub or relationship
+
+
+
+
+ Gets the for the
+
+ .
+
+
+ The for the
+
+ .
+
+
+
+
+ Gets the for the object or relationship.
+
+
+ The for the object or relationship.
+
+
+
+
+ Gets the state of the .
+
+
+ The state of the .
+
+
+
+ Gets the entity object.
+ The entity object.
+
+
+ Gets the entity key.
+ The entity key.
+
+
+
+ Gets a value that indicates whether the represents a relationship.
+
+
+ true if the represents a relationship; otherwise, false.
+
+
+
+ Gets the read-only version of original values of the object or relationship.
+ The read-only version of original values of the relationship set entry or entity.
+
+
+
+ Gets the updatable version of original values of the object associated with this
+
+ .
+
+ The updatable original values of object data.
+
+
+
+ Gets the current property values of the object or relationship associated with this
+
+ .
+
+
+ A that contains the current values of the object or relationship associated with this
+
+ .
+
+
+
+ Accepts the current values as original values.
+
+
+ Marks an entity as deleted.
+
+
+
+ Returns the names of an object’s properties that have changed since the last time
+
+ was called.
+
+
+ An collection of names as string.
+
+
+
+ Sets the state of the object or relationship to modify.
+ If State is not Modified or Unchanged
+
+
+ Marks the specified property as modified.
+ The name of the property.
+ If State is not Modified or Unchanged
+
+
+ Rejects any changes made to the property with the given name since the property was last loaded, attached, saved, or changes were accepted. The original value of the property is stored and the property will no longer be marked as modified.
+ The name of the property to change.
+
+
+ Uses DetectChanges to determine whether or not the current value of the property with the given name is different from its original value. Note that this may be different from the property being marked as modified since a property which has not changed can still be marked as modified.
+
+ Note that this property always returns the same result as the modified state of the property for change tracking
+ proxies and entities that derive from the EntityObject base class. This is because original values are not tracked
+ for these entity types and hence there is no way to know if the current value is really different from the
+ original value.
+
+ true if the property has changed; otherwise, false.
+ The name of the property.
+
+
+
+ Gets the instance for the object represented by entry.
+
+
+ The object.
+
+ The entry is a stub or represents a relationship
+
+
+
+ Changes state of the entry to the specified value.
+
+
+ The value to set for the
+
+ property of the entry.
+
+
+
+ Sets the current values of the entry to match the property values of a supplied object.
+ The detached object that has updated values to apply to the object. currentEntity can also be the object’s entity key.
+
+
+ Sets the original values of the entry to match the property values of a supplied object.
+ The detached object that has original values to apply to the object. originalEntity can also be the object’s entity key.
+
+
+
+ Used to report that a scalar entity property is about to change
+ The current value of the specified property is cached when this method is called.
+
+ The name of the entity property that is changing
+
+
+
+ Used to report that a scalar entity property has been changed
+ The property value that was cached during EntityMemberChanging is now
+ added to OriginalValues
+
+ The name of the entity property that has changing
+
+
+
+ Used to report that a complex property is about to change
+ The current value of the specified property is cached when this method is called.
+
+ The name of the top-level entity property that is changing
+ The complex object that contains the property that is changing
+ The name of the property that is changing on complexObject
+
+
+
+ Used to report that a complex property has been changed
+ The property value that was cached during EntityMemberChanging is now added to OriginalValues
+
+ The name of the top-level entity property that has changed
+ The complex object that contains the property that changed
+ The name of the property that changed on complexObject
+
+
+
+ Returns the EntityState from the ObjectStateEntry
+
+
+
+
+ Maintains object state and identity management for entity type instances and relationship instances.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The , which supplies mapping and metadata information.
+
+
+
+
+ Gets the associated with this state manager.
+
+
+ The associated with this
+
+ .
+
+
+
+ Occurs when entities are added to or removed from the state manager.
+
+
+
+ Returns a collection of objects for objects or relationships with the given state.
+
+
+ A collection of objects in the given
+
+ .
+
+
+ An used to filter the returned
+
+ objects.
+
+
+ When state is .
+
+
+
+
+ Changes state of the for a specific object to the specified entityState .
+
+
+ The for the supplied entity .
+
+ The object for which the state must be changed.
+ The new state of the object.
+ When entity is null.
+
+ When the object is not detached and does not have an entry in the state manager
+ or when you try to change the state to
+ from any other
+ or when state is not a valid value.
+
+
+
+ Changes the state of the relationship between two entity objects that is specified based on the two related objects and the name of the navigation property.
+
+ The for the relationship that was changed.
+
+
+ The object instance or of the source entity at one end of the relationship.
+
+
+ The object instance or of the target entity at the other end of the relationship.
+
+ The name of the navigation property on source that returns the specified target .
+
+ The requested of the specified relationship.
+
+ When source or target is null.
+
+ When trying to change the state of the relationship to a state other than
+ or
+ when either source or target is in a state
+ or when you try to change the state of the relationship to a state other than
+ or
+ when either source or target is in an state
+ or when state is not a valid value
+
+
+
+ Changes the state of the relationship between two entity objects that is specified based on the two related objects and a LINQ expression that defines the navigation property.
+
+ The for the relationship that was changed.
+
+
+ The object instance or of the source entity at one end of the relationship.
+
+
+ The object instance or of the target entity at the other end of the relationship.
+
+ A LINQ expression that selects the navigation property on source that returns the specified target .
+
+ The requested of the specified relationship.
+
+ The entity type of the source object.
+ When source , target , or selector is null.
+ selector is malformed or cannot return a navigation property.
+
+ When you try to change the state of the relationship to a state other than
+ or
+ when either source or target is in a
+ state
+ or when you try to change the state of the relationship to a state other than
+ or
+ when either source or target is in an state
+ or when state is not a valid value.
+
+
+
+ Changes the state of the relationship between two entity objects that is specified based on the two related objects and the properties of the relationship.
+
+ The for the relationship that was changed.
+
+
+ The object instance or of the source entity at one end of the relationship.
+
+
+ The object instance or of the target entity at the other end of the relationship.
+
+ The name of the relationship.
+ The role name at the target end of the relationship.
+
+ The requested of the specified relationship.
+
+ When source or target is null.
+
+ When you try to change the state of the relationship to a state other than
+ or
+ when either source or target is in a state
+ or when you try to change the state of the relationship to a state other than
+ or
+ when either source or target is in an
+ state
+ or when state is not a valid value.
+
+
+
+
+ Returns an for the object or relationship entry with the specified key.
+
+
+ The corresponding for the given
+
+ .
+
+
+ The .
+
+ When key is null.
+ When the specified key cannot be found in the state manager.
+
+ No entity with the specified exists in the
+
+ .
+
+
+
+
+ Returns an for the specified object.
+
+
+ The corresponding for the given
+
+ .
+
+
+ The to which the retrieved
+
+ belongs.
+
+
+ No entity for the specified exists in the
+
+ .
+
+
+
+
+ Tries to retrieve the corresponding for the specified
+
+ .
+
+
+ A Boolean value that is true if there is a corresponding
+
+ for the given object; otherwise, false.
+
+
+ The to which the retrieved
+
+ belongs.
+
+
+ When this method returns, contains the for the given
+
+ This parameter is passed uninitialized.
+
+
+
+
+ Tries to retrieve the corresponding for the object or relationship with the specified
+
+ .
+
+
+ A Boolean value that is true if there is a corresponding
+
+ for the given
+
+ ; otherwise, false.
+
+
+ The given .
+
+
+ When this method returns, contains an for the given
+
+ This parameter is passed uninitialized.
+
+ A null (Nothing in Visual Basic) value is provided for key .
+
+
+
+ Returns the that is used by the specified object.
+
+
+ The for the specified object.
+
+
+ The object for which to return the .
+
+
+ The entity does not implement IEntityWithRelationships and is not tracked by this ObjectStateManager
+
+
+
+
+ Returns the that is used by the specified object.
+
+
+ true if a instance was returned for the supplied entity ; otherwise false.
+
+
+ The object for which to return the .
+
+
+ When this method returns, contains the
+
+ for the entity .
+
+
+
+
+ The original values of the properties of an entity when it was retrieved from the database.
+
+
+
+
+ A DataContractResolver that knows how to resolve proxy types created for persistent
+ ignorant classes to their base types. This is used with the DataContractSerializer.
+
+
+
+ During deserialization, maps any xsi:type information to the actual type of the persistence-ignorant object.
+ Returns the type that the xsi:type is mapped to. Returns null if no known type was found that matches the xsi:type.
+ The xsi:type information to map.
+ The namespace of the xsi:type.
+ The declared type.
+
+ An instance of .
+
+
+
+ During serialization, maps actual types to xsi:type information.
+ true if the type was resolved; otherwise, false.
+ The actual type of the persistence-ignorant object.
+ The declared type.
+
+ An instance of .
+
+ When this method returns, contains a list of xsi:type declarations.
+ When this method returns, contains a list of namespaces used.
+
+
+
+ Defines the different ways to handle modified properties when refreshing in-memory data from the database.
+
+
+
+
+ For unmodified client objects, same behavior as StoreWins. For modified client
+ objects, Refresh original values with store value, keeping all values on client
+ object. The next time an update happens, all the client change units will be
+ considered modified and require updating.
+
+
+
+
+ Discard all changes on the client and refresh values with store values.
+ Client original values is updated to match the store.
+
+
+
+
+ Flags used to modify behavior of ObjectContext.SaveChanges()
+
+
+
+
+ Changes are saved without the DetectChanges or the AcceptAllChangesAfterSave methods being called.
+
+
+
+
+ After changes are saved, the AcceptAllChangesAfterSave method is called, which resets change tracking in the ObjectStateManager.
+
+
+
+
+ Before changes are saved, the DetectChanges method is called to synchronize the property values of objects that are attached to the object context with data in the ObjectStateManager.
+
+
+
+
+ This exception is thrown when a update operation violates the concurrency constraint.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with a specialized error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of that uses a specified error message and a reference to the inner exception.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of that uses a specified error message, a reference to the inner exception, and an enumerable collection of
+
+ objects.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+ The enumerable collection of objects.
+
+
+
+
+ Property constraint exception class. Note that this class has state - so if you change even
+ its internals, it can be a breaking change
+
+
+
+
+ Initializes a new instance of the class with default message.
+
+
+
+
+ Initializes a new instance of the class with supplied message.
+
+ A localized error message.
+
+
+
+ Initializes a new instance of the class with supplied message and inner exception.
+
+ A localized error message.
+ The inner exception.
+
+
+
+ Initializes a new instance of the class.
+
+ A localized error message.
+ The name of the property.
+
+
+
+ Initializes a new instance of the class.
+
+ A localized error message.
+ The name of the property.
+ The inner exception.
+
+
+ Gets the name of the property that violated the constraint.
+ The name of the property that violated the constraint.
+
+
+
+ Sets the with information about the exception.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+
+ This exception is thrown when the store provider exhibits a behavior incompatible with the entity client provider
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with a specialized error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of that uses a specified error message.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Used for conversion between different representations of bit array.
+ Returns (n+(div-1))/div, rearranged to avoid arithmetic overflow.
+ For example, in the bit to int case, the straightforward calc would
+ be (n+31)/32, but that would cause overflow. So instead it's
+ rearranged to ((n-1)/32) + 1, with special casing for 0.
+
+ Usage:
+ GetArrayLength(77, BitsPerInt32): returns how many ints must be
+ allocated to store 77 bits.
+
+ length of array
+ use a conversion constant, e.g. BytesPerInt32 to get
+ how many ints are required to store n bytes
+ length of the array
+
+
+
+ Is this tree uses user-defined functions
+ Simplifying query with UDFs could caused to suboptimal plans
+
+ Current subtree to process
+ Mapped variables
+
+
+
+
+ Exception during save changes to store
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with a specialized error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class that uses a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class that uses a specified error message, a reference to the inner exception, and an enumerable collection of
+
+ objects.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+ The collection of objects.
+
+
+
+
+ Gets the objects for this
+
+ .
+
+
+ A collection of objects comprised of either a single entity and 0 or more relationships, or 0 entities and 1 or more relationships.
+
+
+
+
+ Initializes a new instance of with serialized data.
+
+
+ The that holds the serialized object data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ An implementation of IDatabaseInitializer that will recreate and optionally re-seed the
+ database only if the database does not exist.
+ To seed the database, create a derived class and override the Seed method.
+
+ The type of the context.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+
+ A method that should be overridden to actually add data to the context for seeding.
+ The default implementation does nothing.
+
+ The context to seed.
+
+
+
+ An instance of this class is obtained from an object and can be used
+ to manage the actual database backing a DbContext or connection.
+ This includes creating, deleting, and checking for the existence of a database.
+ Note that deletion and checking for existence of a database can be performed using just a
+ connection (i.e. without a full context) by using the static methods of this class.
+
+
+
+
+ Gets the transaction the underlying store connection is enlisted in. May be null.
+
+
+
+
+ Enables the user to pass in a database transaction created outside of the object
+ if you want the Entity Framework to execute commands within that external transaction.
+ Alternatively, pass in null to clear the framework's knowledge of that transaction.
+
+ the external transaction
+ Thrown if the transaction is already completed
+
+ Thrown if the connection associated with the object is already enlisted in a
+
+ transaction
+
+
+ Thrown if the connection associated with the object is already participating in a transaction
+
+ Thrown if the connection associated with the transaction does not match the Entity Framework's connection
+
+
+
+ Begins a transaction on the underlying store connection
+
+
+ a object wrapping access to the underlying store's transaction object
+
+
+
+
+ Begins a transaction on the underlying store connection using the specified isolation level
+
+ The database isolation level with which the underlying store transaction will be created
+
+ a object wrapping access to the underlying store's transaction object
+
+
+
+
+ Returns the connection being used by this context. This may cause the
+ connection to be created if it does not already exist.
+
+ Thrown if the context has been disposed.
+
+
+
+ Sets the database initializer to use for the given context type. The database initializer is called when a
+ the given type is used to access a database for the first time.
+ The default strategy for Code First contexts is an instance of .
+
+ The type of the context.
+ The initializer to use, or null to disable initialization for the given context type.
+
+
+
+ Runs the registered on this context.
+ If "force" is set to true, then the initializer is run regardless of whether or not it
+ has been run before. This can be useful if a database is deleted while an app is running
+ and needs to be reinitialized.
+ If "force" is set to false, then the initializer is only run if it has not already been
+ run for this context, model, and connection in this app domain. This method is typically
+ used when it is necessary to ensure that the database has been created and seeded
+ before starting some operation where doing so lazily will cause issues, such as when the
+ operation is part of a transaction.
+
+
+ If set to true the initializer is run even if it has already been run.
+
+
+
+
+ Checks whether or not the database is compatible with the current Code First model.
+
+
+ Model compatibility currently uses the following rules.
+ If the context was created using either the Model First or Database First approach then the
+ model is assumed to be compatible with the database and this method returns true.
+ For Code First the model is considered compatible if the model is stored in the database
+ in the Migrations history table and that model has no differences from the current model as
+ determined by Migrations model differ.
+ If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead,
+ then this is used to check for compatibility.
+
+
+ If set to true then an exception will be thrown if no model metadata is found in the database. If set to false then this method will return true if metadata is not found.
+
+ True if the model hash in the context and the database match; false otherwise.
+
+
+
+ Creates a new database on the database server for the model defined in the backing context.
+ Note that calling this method before the database initialization strategy has run will disable
+ executing that strategy.
+
+
+
+
+ Creates a new database on the database server for the model defined in the backing context, but only
+ if a database with the same name does not already exist on the server.
+
+ True if the database did not exist and was created; false otherwise.
+
+
+
+ Checks whether or not the database exists on the server.
+
+ True if the database exists; false otherwise.
+
+
+
+ Deletes the database on the database server if it exists, otherwise does nothing.
+ Calling this method from outside of an initializer will mark the database as having
+ not been initialized. This means that if an attempt is made to use the database again
+ after it has been deleted, then any initializer set will run again and, usually, will
+ try to create the database again automatically.
+
+ True if the database did exist and was deleted; false otherwise.
+
+
+
+ Checks whether or not the database exists on the server.
+ The connection to the database is created using the given database name or connection string
+ in the same way as is described in the documentation for the class.
+
+ The database name or a connection string to the database.
+ True if the database exists; false otherwise.
+
+
+
+ Deletes the database on the database server if it exists, otherwise does nothing.
+ The connection to the database is created using the given database name or connection string
+ in the same way as is described in the documentation for the class.
+
+ The database name or a connection string to the database.
+ True if the database did exist and was deleted; false otherwise.
+
+
+
+ Checks whether or not the database exists on the server.
+
+ An existing connection to the database.
+ True if the database exists; false otherwise.
+
+
+
+ Deletes the database on the database server if it exists, otherwise does nothing.
+
+ An existing connection to the database.
+ True if the database did exist and was deleted; false otherwise.
+
+
+
+ The connection factory to use when creating a from just
+ a database name or a connection string.
+
+
+ This is used when just a database name or connection string is given to or when
+ the no database name or connection is given to DbContext in which case the name of
+ the context class is passed to this factory in order to generate a DbConnection.
+ By default, the instance to use is read from the application's .config
+ file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in
+ the config file then is used. Setting this property in code
+ always overrides whatever value is found in the config file.
+
+
+
+
+ Creates a raw SQL query that will return elements of the given generic type.
+ The type can be any type that has properties that match the names of the columns returned
+ from the query, or can be a simple primitive type. The type does not have to be an
+ entity type. The results of this query are never tracked by the context even if the
+ type of object returned is an entity type. Use the
+ method to return entities that are tracked by the context.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.SqlQuery<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The type of object returned by the query.
+ The SQL query string.
+
+ The parameters to apply to the SQL query string. If output parameters are used, their values will
+ not be available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A object that will execute the query when it is enumerated.
+
+
+
+
+ Creates a raw SQL query that will return elements of the given type.
+ The type can be any type that has properties that match the names of the columns returned
+ from the query, or can be a simple primitive type. The type does not have to be an
+ entity type. The results of this query are never tracked by the context even if the
+ type of object returned is an entity type. Use the
+ method to return entities that are tracked by the context.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The type of object returned by the query.
+ The SQL query string.
+
+ The parameters to apply to the SQL query string. If output parameters are used, their values
+ will not be available until the results have been read completely. This is due to the underlying
+ behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A object that will execute the query when it is enumerated.
+
+
+
+
+ Executes the given DDL/DML command against the database.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ If there isn't an existing local or ambient transaction a new transaction will be used
+ to execute the command.
+
+ The command string.
+ The parameters to apply to the command string.
+ The result returned by the database after executing the command.
+
+
+
+ Executes the given DDL/DML command against the database.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ Controls the creation of a transaction for this command.
+ The command string.
+ The parameters to apply to the command string.
+ The result returned by the database after executing the command.
+
+
+
+ Asynchronously executes the given DDL/DML command against the database.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ If there isn't an existing local transaction a new transaction will be used
+ to execute the command.
+
+ The command string.
+ The parameters to apply to the command string.
+
+ A task that represents the asynchronous operation.
+ The task result contains the result returned by the database after executing the command.
+
+
+
+
+ Asynchronously executes the given DDL/DML command against the database.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ Controls the creation of a transaction for this command.
+ The command string.
+ The parameters to apply to the command string.
+
+ A task that represents the asynchronous operation.
+ The task result contains the result returned by the database after executing the command.
+
+
+
+
+ Asynchronously executes the given DDL/DML command against the database.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ If there isn't an existing local transaction a new transaction will be used
+ to execute the command.
+
+ The command string.
+
+ A to observe while waiting for the task to complete.
+
+ The parameters to apply to the command string.
+
+ A task that represents the asynchronous operation.
+ The task result contains the result returned by the database after executing the command.
+
+
+
+
+ Asynchronously executes the given DDL/DML command against the database.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ Controls the creation of a transaction for this command.
+ The command string.
+
+ A to observe while waiting for the task to complete.
+
+ The parameters to apply to the command string.
+
+ A task that represents the asynchronous operation.
+ The task result contains the result returned by the database after executing the command.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Gets or sets the timeout value, in seconds, for all context operations.
+ The default value is null, where null indicates that the default value of the underlying
+ provider will be used.
+
+
+ The timeout, in seconds, or null to use the provider default.
+
+
+
+
+ Set this property to log the SQL generated by the to the given
+ delegate. For example, to log to the console, set this property to .
+
+
+ The format of the log text can be changed by creating a new formatter that derives from
+ and setting it with .
+ For more low-level control over logging/interception see and
+ .
+
+
+
+
+ A class derived from this class can be placed in the same assembly as a class derived from
+ to define Entity Framework configuration for an application.
+ Configuration is set by calling protected methods and setting protected properties of this
+ class in the constructor of your derived type.
+ The type to use can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ Any class derived from must have a public parameterless constructor
+ and that constructor should call this constructor.
+
+
+
+
+ The Singleton instance of for this app domain. This can be
+ set at application start before any Entity Framework features have been used and afterwards
+ should be treated as read-only.
+
+ The instance of .
+
+
+
+ Attempts to discover and load the associated with the given
+ type. This method is intended to be used by tooling to ensure that
+ the correct configuration is loaded into the app domain. Tooling should use this method
+ before accessing the property.
+
+ A type to use for configuration discovery.
+
+
+
+ Attempts to discover and load the from the given assembly.
+ This method is intended to be used by tooling to ensure that the correct configuration is loaded into
+ the app domain. Tooling should use this method before accessing the
+ property. If the tooling knows the type being used, then the
+ method should be used since it gives a greater chance that
+ the correct configuration will be found.
+
+ An to use for configuration discovery.
+
+
+
+ Occurs during EF initialization after the DbConfiguration has been constructed but just before
+ it is locked ready for use. Use this event to inspect and/or override services that have been
+ registered before the configuration is locked. Note that this event should be used carefully
+ since it may prevent tooling from discovering the same configuration that is used at runtime.
+
+
+ Handlers can only be added before EF starts to use the configuration and so handlers should
+ generally be added as part of application initialization. Do not access the DbConfiguration
+ static methods inside the handler; instead use the members of
+ to get current services and/or add overrides.
+
+
+
+
+ Call this method from the constructor of a class derived from to
+ add a instance to the Chain of Responsibility of resolvers that
+ are used to resolve dependencies needed by the Entity Framework.
+
+
+ Resolvers are asked to resolve dependencies in reverse order from which they are added. This means
+ that a resolver can be added to override resolution of a dependency that would already have been
+ resolved in a different way.
+ The exceptions to this is that any dependency registered in the application's config file
+ will always be used in preference to using a dependency resolver added here.
+
+ The resolver to add.
+
+
+
+ Call this method from the constructor of a class derived from to
+ add a instance to the Chain of Responsibility of resolvers that
+ are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver
+ method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only
+ be used to resolve a dependency that could not be resolved by any of the other resolvers.
+
+
+ A implementation is automatically registered as a default resolver
+ when it is added with a call to . This allows EF providers to act as
+ resolvers for other services that may need to be overridden by the provider.
+
+ The resolver to add.
+
+
+
+ Gets the that is being used to resolve service
+ dependencies in the Entity Framework.
+
+
+
+
+ Call this method from the constructor of a class derived from to register
+ an Entity Framework provider.
+
+
+ Note that the provider is both registered as a service itself and also registered as a default resolver with
+ a call to AddDefaultResolver. This allows EF providers to act as resolvers for other services that
+ may need to be overridden by the provider.
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ and also using AddDefaultResolver to add the provider as a default
+ resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a
+ resolver backed by an Inversion-of-Control container.
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used.
+ The provider instance.
+
+
+
+ Call this method from the constructor of a class derived from to register
+ an ADO.NET provider.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolvers for
+ and . This means that, if desired,
+ the same functionality can be achieved using a custom resolver or a resolver backed by an
+ Inversion-of-Control container.
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used.
+ The provider instance.
+
+
+
+ Call this method from the constructor of a class derived from to register an
+ for use with the provider represented by the given invariant name.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
+ A function that returns a new instance of an execution strategy.
+
+
+
+ Call this method from the constructor of a class derived from to register an
+ for use with the provider represented by the given invariant name and
+ for a given server name.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
+
+ A function that returns a new instance of an execution strategy.
+ A string that will be matched against the server name in the connection string.
+
+
+
+ Call this method from the constructor of a class derived from to register a
+ .
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ A function that returns a new instance of a transaction handler.
+
+
+
+ Call this method from the constructor of a class derived from to register a
+ for use with the provider represented by the given invariant name.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used.
+
+ A function that returns a new instance of a transaction handler.
+
+
+
+ Call this method from the constructor of a class derived from to register a
+ for use with the provider represented by the given invariant name and
+ for a given server name.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this transaction handler will be used.
+
+ A function that returns a new instance of a transaction handler.
+ A string that will be matched against the server name in the connection string.
+
+
+
+ Sets the that is used to create connections by convention if no other
+ connection string or connection is given to or can be discovered by .
+ Note that a default connection factory is set in the app.config or web.config file whenever the
+ EntityFramework NuGet package is installed. As for all config file settings, the default connection factory
+ set in the config file will take precedence over any setting made with this method. Therefore the setting
+ must be removed from the config file before calling this method will have any effect.
+ Call this method from the constructor of a class derived from to change
+ the default connection factory being used.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The connection factory.
+
+
+
+ Call this method from the constructor of a class derived from to
+ set the pluralization service.
+
+ The pluralization service to use.
+
+
+
+ Call this method from the constructor of a class derived from to
+ set the database initializer to use for the given context type. The database initializer is called when a
+ the given type is used to access a database for the first time.
+ The default strategy for Code First contexts is an instance of .
+
+
+ Calling this method is equivalent to calling .
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The type of the context.
+ The initializer to use, or null to disable initialization for the given context type.
+
+
+
+ Call this method from the constructor of a class derived from to register a
+ for use with the provider represented by the given invariant name.
+
+
+ This method is typically used by providers to register an associated SQL generator for Code First Migrations.
+ It is different from setting the generator in the because it allows
+ EF to use the Migrations pipeline to create a database even when there is no Migrations configuration in the project
+ and/or Migrations are not being explicitly used.
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The invariant name of the ADO.NET provider for which this generator should be used.
+ A delegate that returns a new instance of the SQL generator each time it is called.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ an implementation of which allows provider manifest tokens to
+ be obtained from connections without necessarily opening the connection.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The manifest token resolver.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a factory for implementations of which allows custom annotations
+ represented by instances to be serialized to and from the EDMX XML.
+
+
+ Note that an is not needed if the annotation uses a simple string value.
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The name of custom annotation that will be handled by this serializer.
+ A delegate that will be used to create serializer instances.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ an implementation of which allows a
+ to be obtained from a in cases where the default implementation is not
+ sufficient.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The provider factory service.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a as the model cache key factory which allows the key
+ used to cache the model behind a to be changed.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can
+ be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The key factory.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a delegate which can be used for
+ creation of the default for a any
+ . This default factory will only be used if no factory is
+ set explicitly in the and if no factory has been registered
+ for the provider in use using the
+
+ method.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality
+ can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+
+ A factory for creating instances for a given and
+ representing the default schema.
+
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a delegate which allows for creation of a customized
+ for the given provider for any
+ that does not have an explicit factory set.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality
+ can be achieved using a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The invariant name of the ADO.NET provider for which this generator should be used.
+
+ A factory for creating instances for a given and
+ representing the default schema.
+
+
+
+
+ Call this method from the constructor of a class derived from to set
+ the global instance of which will be used whenever a spatial provider is
+ required and a provider-specific spatial provider cannot be found. Normally, a provider-specific spatial provider
+ is obtained from the a implementation which is in turn returned by resolving
+ a service for passing the provider invariant name as a key. However, this
+ cannot work for stand-alone instances of and since
+ it is impossible to know the spatial provider to use. Therefore, when creating stand-alone instances
+ of and the global spatial provider is always used.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The spatial provider.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ an implementation of to use for a specific provider and provider
+ manifest token.
+
+
+ Use
+ to register spatial services for use only when a specific manifest token is returned by the provider.
+ Use to register global
+ spatial services to be used when provider information is not available or no provider-specific
+ spatial services are found.
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+
+ The indicating the type of ADO.NET connection for which this spatial provider will be used.
+
+ The spatial provider.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ an implementation of to use for a specific provider with any
+ manifest token.
+
+
+ Use
+ to register spatial services for use when any manifest token is returned by the provider.
+ Use to register global
+ spatial services to be used when provider information is not available or no provider-specific
+ spatial services are found.
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this spatial provider will be used.
+ The spatial provider.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a factory for the type of to use with .
+
+
+ Note that setting the type of formatter to use with this method does change the way command are
+ logged when is used. It is still necessary to set a
+ instance onto before any commands will be logged.
+ For more low-level control over logging/interception see and
+ .
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ A delegate that will create formatter instances.
+
+
+
+ Call this method from the constructor of a class derived from to
+ register an at application startup. Note that interceptors can also
+ be added and removed at any time using .
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ . This means that, if desired, the same functionality can be achieved using
+ a custom resolver or a resolver backed by an Inversion-of-Control container.
+
+ The interceptor to register.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a factory to allow to create instances of a context that does not have a public,
+ parameterless constructor.
+
+
+ This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that
+ do not have public, parameterless constructors.
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ with the context as the key. This means that, if desired,
+ the same functionality can be achieved using a custom resolver or a resolver backed by an
+ Inversion-of-Control container.
+
+ The context type for which the factory should be used.
+ The delegate to use to create context instances.
+
+
+
+ Call this method from the constructor of a class derived from to set
+ a factory to allow to create instances of a context that does not have a public,
+ parameterless constructor.
+
+
+ This is typically needed to allow design-time tools like Migrations or scaffolding code to use contexts that
+ do not have public, parameterless constructors.
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ with the context as the key. This means that, if desired,
+ the same functionality can be achieved using a custom resolver or a resolver backed by an
+ Inversion-of-Control container.
+
+ The context type for which the factory should be used.
+ The delegate to use to create context instances.
+
+
+
+ Sets a singleton model store implementation (persisted model cache).
+
+ The model store implementation.
+
+
+
+ Call this method from the constructor of a class derived from to register
+ a database table existence checker for a given provider.
+
+
+ This method is provided as a convenient and discoverable way to add configuration to the Entity Framework.
+ Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for
+ and also using AddDefaultResolver to add the provider as a default
+ resolver. This means that, if desired, the same functionality can be achieved using a custom resolver or a
+ resolver backed by an Inversion-of-Control container.
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this provider will be used.
+ The table existence checker to use.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Creates a shallow copy of the current .
+
+ A shallow copy of the current .
+
+
+
+ This attribute can be placed on a subclass of to indicate that the subclass of
+ representing the code-based configuration for the application is in a different
+ assembly than the context type.
+
+
+ Normally a subclass of should be placed in the same assembly as
+ the subclass of used by the application. It will then be discovered automatically.
+ However, if this is not possible or if the application contains multiple context types in different
+ assemblies, then this attribute can be used to direct DbConfiguration discovery to the appropriate type.
+ An alternative to using this attribute is to specify the DbConfiguration type to use in the application's
+ config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information.
+
+
+
+
+ Indicates that the given subclass of should be used for code-based configuration
+ for this application.
+
+
+ The type to use.
+
+
+
+
+ Indicates that the subclass of represented by the given assembly-qualified
+ name should be used for code-based configuration for this application.
+
+
+ The type to use.
+
+
+
+
+ Gets the subclass of that should be used for code-based configuration
+ for this application.
+
+
+
+
+ A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that
+ it can be used to query from a database and group together changes that will then be written
+ back to the store as a unit.
+ DbContext is conceptually similar to ObjectContext.
+
+
+ DbContext is usually used with a derived type that contains properties for
+ the root entities of the model. These sets are automatically initialized when the
+ instance of the derived class is created. This behavior can be modified by applying the
+ attribute to either the entire derived context
+ class, or to individual properties on the class.
+ The Entity Data Model backing the context can be specified in several ways. When using the Code First
+ approach, the properties on the derived context are used to build a model
+ by convention. The protected OnModelCreating method can be overridden to tweak this model. More
+ control over the model used for the Model First approach can be obtained by creating a
+ explicitly from a and passing this model to one of the DbContext constructors.
+ When using the Database First or Model First approach the Entity Data Model can be created using the
+ Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using
+ entity connection string or an object.
+ The connection to the database (including the name of the database) can be specified in several ways.
+ If the parameterless DbContext constructor is called from a derived context, then the name of the derived context
+ is used to find a connection string in the app.config or web.config file. If no connection string is found, then
+ the name is passed to the DefaultConnectionFactory registered on the class. The connection
+ factory then uses the context name as the database name in a default connection string. (This default connection
+ string points to (localdb)\MSSQLLocalDB unless a different DefaultConnectionFactory is registered.)
+ Instead of using the derived context name, the connection/database name can also be specified explicitly by
+ passing the name to one of the DbContext constructors that takes a string. The name can also be passed in
+ the form "name=myname", in which case the name must be found in the config file or an exception will be thrown.
+ Note that the connection found in the app.config or web.config file can be a normal database connection
+ string (not a special Entity Framework connection string) in which case the DbContext will use Code First.
+ However, if the connection found in the config file is a special Entity Framework connection string, then the
+ DbContext will use Database/Model First and the model specified in the connection string will be used.
+ An existing or explicitly created DbConnection can also be used instead of the database/connection name.
+ A can be applied to a class derived from DbContext to set the
+ version of conventions used by the context when it creates a model. If no attribute is applied then the
+ latest version of conventions will be used.
+
+
+
+
+ Constructs a new context instance using conventions to create the name of the database to
+ which a connection will be made. The by-convention name is the full name (namespace + class name)
+ of the derived context class.
+ See the class remarks for how this is used to create a connection.
+
+
+
+
+ Constructs a new context instance using conventions to create the name of the database to
+ which a connection will be made, and initializes it from the given model.
+ The by-convention name is the full name (namespace + class name) of the derived context class.
+ See the class remarks for how this is used to create a connection.
+
+ The model that will back this context.
+
+
+
+ Constructs a new context instance using the given string as the name or connection string for the
+ database to which a connection will be made.
+ See the class remarks for how this is used to create a connection.
+
+ Either the database name or a connection string.
+
+
+
+ Constructs a new context instance using the given string as the name or connection string for the
+ database to which a connection will be made, and initializes it from the given model.
+ See the class remarks for how this is used to create a connection.
+
+ Either the database name or a connection string.
+ The model that will back this context.
+
+
+
+ Constructs a new context instance using the existing connection to connect to a database.
+ The connection will not be disposed when the context is disposed if
+ is false.
+
+ An existing connection to use for the new context.
+
+ If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection.
+
+
+
+
+ Constructs a new context instance using the existing connection to connect to a database,
+ and initializes it from the given model.
+ The connection will not be disposed when the context is disposed if
+ is false.
+
+ An existing connection to use for the new context.
+ The model that will back this context.
+
+ If set to true the connection is disposed when the context is disposed, otherwise the caller must dispose the connection.
+
+
+
+
+ Constructs a new context instance around an existing ObjectContext.
+
+ An existing ObjectContext to wrap with the new context.
+
+ If set to true the ObjectContext is disposed when the DbContext is disposed, otherwise the caller must dispose the connection.
+
+
+
+
+ This method is called when the model for a derived context has been initialized, but
+ before the model has been locked down and used to initialize the context. The default
+ implementation of this method does nothing, but it can be overridden in a derived class
+ such that the model can be further configured before it is locked down.
+
+
+ Typically, this method is called only once when the first instance of a derived context
+ is created. The model for that context is then cached and is for all further instances of
+ the context in the app domain. This caching can be disabled by setting the ModelCaching
+ property on the given ModelBuilder, but note that this can seriously degrade performance.
+ More control over caching is provided through use of the DbModelBuilder and DbContextFactory
+ classes directly.
+
+ The builder that defines the model for the context being created.
+
+
+
+ Creates a Database instance for this context that allows for creation/deletion/existence checks
+ for the underlying database.
+
+
+
+
+ Returns a instance for access to entities of the given type in the context
+ and the underlying store.
+
+
+ Note that Entity Framework requires that this method return the same instance each time that it is called
+ for a given context instance and entity type. Also, the non-generic returned by the
+ method must wrap the same underlying query and set of entities. These invariants must
+ be maintained if this method is overridden for anything other than creating test doubles for unit testing.
+ See the class for more details.
+
+ The type entity for which a set should be returned.
+ A set for the given entity type.
+
+
+
+ Returns a non-generic instance for access to entities of the given type in the context
+ and the underlying store.
+
+ The type of entity for which a set should be returned.
+ A set for the given entity type.
+
+ Note that Entity Framework requires that this method return the same instance each time that it is called
+ for a given context instance and entity type. Also, the generic returned by the
+ method must wrap the same underlying query and set of entities. These invariants must
+ be maintained if this method is overridden for anything other than creating test doubles for unit testing.
+ See the class for more details.
+
+
+
+
+ Saves all changes made in this context to the underlying database.
+
+
+ The number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An error occurred sending updates to the database.
+
+ A database command did not affect the expected number of rows. This usually indicates an optimistic
+ concurrency violation; that is, a row has been changed in the database since it was queried.
+
+
+ The save was aborted because validation of entity property values failed.
+
+
+ An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently
+ on the same context instance.
+ The context or connection have been disposed.
+
+ Some error occurred attempting to process entities in the context either before or after sending commands
+ to the database.
+
+
+
+
+ Asynchronously saves all changes made in this context to the underlying database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous save operation.
+ The task result contains the number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ An error occurred sending updates to the database.
+
+ A database command did not affect the expected number of rows. This usually indicates an optimistic
+ concurrency violation; that is, a row has been changed in the database since it was queried.
+
+
+ The save was aborted because validation of entity property values failed.
+
+
+ An attempt was made to use unsupported behavior such as executing multiple asynchronous commands concurrently
+ on the same context instance.
+ The context or connection have been disposed.
+
+ Some error occurred attempting to process entities in the context either before or after sending commands
+ to the database.
+
+
+
+
+ Asynchronously saves all changes made in this context to the underlying database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous save operation.
+ The task result contains the number of state entries written to the underlying database. This can include
+ state entries for entities and/or relationships. Relationship state entries are created for
+ many-to-many relationships and relationships where there is no foreign key property
+ included in the entity class (often referred to as independent associations).
+
+ Thrown if the context has been disposed.
+
+
+
+ Returns the Entity Framework ObjectContext that is underlying this context.
+
+ Thrown if the context has been disposed.
+
+
+
+ Validates tracked entities and returns a Collection of containing validation results.
+
+ Collection of validation results for invalid entities. The collection is never null and must not contain null values or results for valid entities.
+
+ 1. This method calls DetectChanges() to determine states of the tracked entities unless
+ DbContextConfiguration.AutoDetectChangesEnabled is set to false.
+ 2. By default only Added on Modified entities are validated. The user is able to change this behavior
+ by overriding ShouldValidateEntity method.
+
+
+
+
+ Extension point allowing the user to override the default behavior of validating only
+ added and modified entities.
+
+ DbEntityEntry instance that is supposed to be validated.
+ true to proceed with validation; false otherwise.
+
+
+
+ Extension point allowing the user to customize validation of an entity or filter out validation results.
+ Called by .
+
+ DbEntityEntry instance to be validated.
+
+ User-defined dictionary containing additional info for custom validation. It will be passed to
+
+ and will be exposed as
+
+ . This parameter is optional and can be null.
+
+ Entity validation result. Possibly null when overridden.
+
+
+
+ Gets a object for the given entity providing access to
+ information about the entity and the ability to perform actions on the entity.
+
+ The type of the entity.
+ The entity.
+ An entry for the entity.
+
+
+
+ Gets a object for the given entity providing access to
+ information about the entity and the ability to perform actions on the entity.
+
+ The entity.
+ An entry for the entity.
+
+
+
+ Provides access to features of the context that deal with change tracking of entities.
+
+ An object used to access features that deal with change tracking.
+
+
+
+ Provides access to configuration options for the context.
+
+ An object used to access configuration options.
+
+
+
+ Calls the protected Dispose method.
+
+
+
+
+ Disposes the context. The underlying is also disposed if it was created
+ is by this context or ownership was passed to this context when this context was created.
+ The connection to the database ( object) is also disposed if it was created
+ is by this context or ownership was passed to this context when this context was created.
+
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps access to the transaction object on the underlying store connection and ensures that the
+ Entity Framework executes commands on the database within the context of that transaction.
+ An instance of this class is retrieved by calling BeginTransaction() on the
+
+ object.
+
+
+
+
+ Gets the database (store) transaction that is underlying this context transaction.
+
+
+
+
+ Commits the underlying store transaction
+
+
+
+
+ Rolls back the underlying store transaction
+
+
+
+
+ Cleans up this transaction object and ensures the Entity Framework
+ is no longer using that transaction.
+
+
+
+
+ Releases the resources used by this transaction object
+
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates that the given method is a proxy for an EDM function.
+
+
+ Note that this class was called EdmFunctionAttribute in some previous versions of Entity Framework.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The namespace of the mapped-to function.
+ The name of the mapped-to function.
+
+
+ The namespace of the mapped-to function.
+ The namespace of the mapped-to function.
+
+
+ The name of the mapped-to function.
+ The name of the mapped-to function.
+
+
+
+ Provides common language runtime (CLR) methods that expose EDM canonical functions
+ for use in or LINQ to Entities queries.
+
+
+ Note that this class was called EntityFunctions in some previous versions of Entity Framework.
+
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDev EDM function to calculate
+ the standard deviation of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical StDevP EDM function to calculate
+ the standard deviation for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The standard deviation for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Var EDM function to calculate
+ the variance of the collection.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical VarP EDM function to calculate
+ the variance for the population.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The collection over which to perform the calculation.
+ The variance for the population.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Left EDM function to return a given
+ number of the leftmost characters in a string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input string.
+ The number of characters to return
+ A string containing the number of characters asked for from the left of the input string.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Right EDM function to return a given
+ number of the rightmost characters in a string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input string.
+ The number of characters to return
+ A string containing the number of characters asked for from the right of the input string.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Reverse EDM function to return a given
+ string with the order of the characters reversed.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input string.
+ The input string with the order of the characters reversed.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical GetTotalOffsetMinutes EDM function to
+ return the number of minutes that the given date/time is offset from UTC. This is generally between +780
+ and -780 (+ or - 13 hrs).
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The date/time value to use.
+ The offset of the input from UTC.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
+ the given date with the time portion cleared.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The date/time value to use.
+ The input date with the time portion cleared.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical TruncateTime EDM function to return
+ the given date with the time portion cleared.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The date/time value to use.
+ The input date with the time portion cleared.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTime EDM function to
+ create a new object.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The year.
+ The month (1-based).
+ The day (1-based).
+ The hours.
+ The minutes.
+ The seconds, including fractional parts of the seconds if desired.
+ The new date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical CreateDateTimeOffset EDM function to
+ create a new object.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The year.
+ The month (1-based).
+ The day (1-based).
+ The hours.
+ The minutes.
+ The seconds, including fractional parts of the seconds if desired.
+ The time zone offset part of the new date.
+ The new date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical CreateTime EDM function to
+ create a new object.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The hours.
+ The minutes.
+ The seconds, including fractional parts of the seconds if desired.
+ The new time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
+ add the given number of years to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of years to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddYears EDM function to
+ add the given number of years to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of years to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
+ add the given number of months to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of months to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMonths EDM function to
+ add the given number of months to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of months to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
+ add the given number of days to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of days to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddDays EDM function to
+ add the given number of days to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of days to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
+ add the given number of hours to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of hours to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
+ add the given number of hours to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of hours to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddHours EDM function to
+ add the given number of hours to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of hours to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
+ add the given number of minutes to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of minutes to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
+ add the given number of minutes to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of minutes to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMinutes EDM function to
+ add the given number of minutes to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of minutes to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
+ add the given number of seconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of seconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
+ add the given number of seconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of seconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddSeconds EDM function to
+ add the given number of seconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of seconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
+ add the given number of milliseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of milliseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
+ add the given number of milliseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of milliseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMilliseconds EDM function to
+ add the given number of milliseconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of milliseconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
+ add the given number of microseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of microseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
+ add the given number of microseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of microseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddMicroseconds EDM function to
+ add the given number of microseconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of microseconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
+ add the given number of nanoseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of nanoseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
+ add the given number of nanoseconds to a date/time.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of nanoseconds to add.
+ A resulting date/time.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical AddNanoseconds EDM function to
+ add the given number of nanoseconds to a time span.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The input date/time.
+ The number of nanoseconds to add.
+ A resulting time span.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
+ calculate the number of years between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of years between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffYears EDM function to
+ calculate the number of years between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of years between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
+ calculate the number of months between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of months between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMonths EDM function to
+ calculate the number of months between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of months between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
+ calculate the number of days between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of days between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffDays EDM function to
+ calculate the number of days between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of days between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
+ calculate the number of hours between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of hours between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
+ calculate the number of hours between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of hours between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffHours EDM function to
+ calculate the number of hours between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of hours between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
+ calculate the number of minutes between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of minutes between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
+ calculate the number of minutes between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of minutes between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMinutes EDM function to
+ calculate the number of minutes between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of minutes between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
+ calculate the number of seconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of seconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
+ calculate the number of seconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of seconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffSeconds EDM function to
+ calculate the number of seconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of seconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
+ calculate the number of milliseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of milliseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
+ calculate the number of milliseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of milliseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMilliseconds EDM function to
+ calculate the number of milliseconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of milliseconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
+ calculate the number of microseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of microseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
+ calculate the number of microseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of microseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffMicroseconds EDM function to
+ calculate the number of microseconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of microseconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
+ calculate the number of nanoseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of nanoseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
+ calculate the number of nanoseconds between two date/times.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first date/time.
+ The second date/time.
+ The number of nanoseconds between the first and second date/times.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical DiffNanoseconds EDM function to
+ calculate the number of nanoseconds between two time spans.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The first time span.
+ The second time span.
+ The number of nanoseconds between the first and second time spans.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
+ truncate the given value to the number of specified digits.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The value to truncate.
+ The number of digits to preserve.
+ The truncated value.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Truncate EDM function to
+ truncate the given value to the number of specified digits.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The value to truncate.
+ The number of digits to preserve.
+ The truncated value.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Like EDM operator to match an expression.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The string to search.
+ The expression to match against.
+ True if the searched string matches the expression; otherwise false.
+
+
+
+ When used as part of a LINQ to Entities query, this method invokes the canonical Like EDM operator to match an expression.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function is translated to a corresponding function in the database.
+
+ The string to search.
+ The expression to match against.
+ The string to escape special characters with, must only be a single character.
+ True if the searched string matches the expression; otherwise false.
+
+
+
+ When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
+ is treated as a Unicode string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function impacts the way the LINQ query is translated to a query that can be run in the database.
+
+ The input string.
+ The input string treated as a Unicode string.
+
+
+
+ When used as part of a LINQ to Entities query, this method acts as an operator that ensures the input
+ is treated as a non-Unicode string.
+
+
+ You cannot call this function directly. This function can only appear within a LINQ to Entities query.
+ This function impacts the way the LINQ query is translated to a query that can be run in the database.
+
+ The input string.
+ The input string treated as a non-Unicode string.
+
+
+
+ DbModelBuilder is used to map CLR classes to a database schema.
+ This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'.
+
+
+ DbModelBuilder is typically used to configure a model by overriding
+ DbContext.OnModelCreating(DbModelBuilder)
+ .
+ You can also use DbModelBuilder independently of DbContext to build a model and then construct a
+ or .
+ The recommended approach, however, is to use OnModelCreating in as
+ the workflow is more intuitive and takes care of common tasks, such as caching the created model.
+ Types that form your model are registered with DbModelBuilder and optional configuration can be
+ performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder
+ API.
+ When the Build method is called a set of conventions are run to discover the initial model.
+ These conventions will automatically discover aspects of the model, such as primary keys, and
+ will also process any data annotations that were specified on your classes. Finally
+ any configuration that was performed using the DbModelBuilder API is applied.
+ Configuration done via the DbModelBuilder API takes precedence over data annotations which
+ in turn take precedence over the default conventions.
+
+
+
+
+ Initializes a new instance of the class.
+ The process of discovering the initial model will use the set of conventions included
+ in the most recent version of the Entity Framework installed on your machine.
+
+
+ Upgrading to newer versions of the Entity Framework may cause breaking changes
+ in your application because new conventions may cause the initial model to be
+ configured differently. There is an alternate constructor that allows a specific
+ version of conventions to be specified.
+
+
+
+
+ Initializes a new instance of the class that will use
+ a specific set of conventions to discover the initial model.
+
+ The version of conventions to be used.
+
+
+
+ Excludes a type from the model. This is used to remove types from the model that were added
+ by convention during initial model discovery.
+
+ The type to be excluded.
+ The same DbModelBuilder instance so that multiple calls can be chained.
+
+
+
+ Configures the default database schema name. This default database schema name is used
+ for database objects that do not have an explicitly configured schema name.
+
+ The name of the default database schema.
+ The same DbModelBuilder instance so that multiple calls can be chained.
+
+
+
+ Excludes the specified type(s) from the model. This is used to remove types from the model that were added
+ by convention during initial model discovery.
+
+ The types to be excluded from the model.
+ The same DbModelBuilder instance so that multiple calls can be chained.
+
+
+
+ Registers an entity type as part of the model and returns an object that can be used to
+ configure the entity. This method can be called multiple times for the same entity to
+ perform multiple lines of configuration.
+
+ The type to be registered or configured.
+ The configuration object for the specified entity type.
+
+
+
+ Registers an entity type as part of the model.
+
+ The type to be registered.
+
+ This method is provided as a convenience to allow entity types to be registered dynamically
+ without the need to use MakeGenericMethod in order to call the normal generic Entity method.
+ This method does not allow further configuration of the entity type using the fluent APIs since
+ these APIs make extensive use of generic type parameters.
+
+
+
+
+ Registers a type as a complex type in the model and returns an object that can be used to
+ configure the complex type. This method can be called multiple times for the same type to
+ perform multiple lines of configuration.
+
+ The type to be registered or configured.
+ The configuration object for the specified complex type.
+
+
+
+ Begins configuration of a lightweight convention that applies to all entities and complex types in
+ the model.
+
+ A configuration object for the convention.
+
+
+
+ Begins configuration of a lightweight convention that applies to all entities and complex types
+ in the model that inherit from or implement the type specified by the generic argument.
+ This method does not register types as part of the model.
+
+ The type of the entities or complex types that this convention will apply to.
+ A configuration object for the convention.
+
+
+
+ Begins configuration of a lightweight convention that applies to all properties
+ in the model.
+
+ A configuration object for the convention.
+
+
+
+ Begins configuration of a lightweight convention that applies to all primitive
+ properties of the specified type in the model.
+
+ The type of the properties that the convention will apply to.
+ A configuration object for the convention.
+
+ The convention will apply to both nullable and non-nullable properties of the
+ specified type.
+
+
+
+
+ Provides access to the settings of this DbModelBuilder that deal with conventions.
+
+
+
+
+ Gets the for this DbModelBuilder.
+ The registrar allows derived entity and complex type configurations to be registered with this builder.
+
+
+
+
+ Creates a based on the configuration performed using this builder.
+ The connection is used to determine the database provider being used as this
+ affects the database layer of the generated model.
+
+ Connection to use to determine provider information.
+ The model that was built.
+
+
+
+ Creates a based on the configuration performed using this builder.
+ Provider information must be specified because this affects the database layer of the generated model.
+ For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.)
+
+ The database provider that the model will be used with.
+ The model that was built.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ A value from this enumeration can be provided directly to the
+ class or can be used in the applied to
+ a class derived from . The value used defines which version of
+ the DbContext and DbModelBuilder conventions should be used when building a model from
+ code--also known as "Code First".
+
+
+ Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available
+ when upgrading to a new release of the Entity Framework. However, it may result in an
+ application behaving differently with the new release than it did with a previous release.
+ This can be avoided by using a specific version of the conventions, but if a version
+ other than the latest is set then not all the latest functionality will be available.
+
+
+
+
+ Indicates that the latest version of the and
+ conventions should be used.
+
+
+
+
+ Indicates that the version of the and
+ conventions shipped with Entity Framework v4.1
+ should be used.
+
+
+
+
+ Indicates that the version of the and
+ conventions shipped with Entity Framework v5.0
+ when targeting .Net Framework 4 should be used.
+
+
+
+
+ Indicates that the version of the and
+ conventions shipped with Entity Framework v5.0
+ should be used.
+
+
+
+
+ Indicates that the version of the and
+ conventions shipped with Entity Framework v6.0
+ should be used.
+
+
+
+
+ This attribute can be applied to a class derived from to set which
+ version of the DbContext and conventions should be used when building
+ a model from code--also known as "Code First". See the
+ enumeration for details about DbModelBuilder versions.
+
+
+ If the attribute is missing from DbContextthen DbContext will always use the latest
+ version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The conventions version to use.
+
+
+
+
+ Gets the conventions version.
+
+
+ The conventions version.
+
+
+
+
+ A non-generic version of which can be used when the type of entity
+ is not known at build time.
+
+
+
+
+ Creates an instance of a when called from the constructor of a derived
+ type that will be used as a test double for DbSets. Methods and properties that will be used by the
+ test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where
+ the default implementation is a no-op.
+
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Asynchronously finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The values of the primary key for the entity to be found.
+ A task that represents the asynchronous find operation. The task result contains the entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Asynchronously finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+ The values of the primary key for the entity to be found.
+ A task that represents the asynchronous find operation. The task result contains the entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Gets an that represents a local view of all Added, Unchanged,
+ and Modified entities in this set. This local view will stay in sync as entities are added or
+ removed from the context. Likewise, entities added to or removed from the local view will automatically
+ be added to or removed from the context.
+
+
+ This property can be used for data binding by populating the set with data, for example by using the Load
+ extension method, and then binding to the local data through this property. For WPF bind to this property
+ directly. For Windows Forms bind to the result of calling ToBindingList on this property
+
+ The local view.
+
+
+
+ Attaches the given entity to the context underlying the set. That is, the entity is placed
+ into the context in the Unchanged state, just as if it had been read from the database.
+
+ The entity to attach.
+ The entity.
+
+ Attach is used to repopulate a context with an entity that is known to already exist in the database.
+ SaveChanges will therefore not attempt to insert an attached entity into the database because
+ it is assumed to already be there.
+ Note that entities that are already in the context in some other state will have their state set
+ to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state.
+
+
+
+
+ Adds the given entity to the context underlying the set in the Added state such that it will
+ be inserted into the database when SaveChanges is called.
+
+ The entity to add.
+ The entity.
+
+ Note that entities that are already in the context in some other state will have their state set
+ to Added. Add is a no-op if the entity is already in the context in the Added state.
+
+
+
+
+ Adds the given collection of entities into context underlying the set with each entity being put into
+ the Added state such that it will be inserted into the database when SaveChanges is called.
+
+ The collection of entities to add.
+
+ The collection of entities.
+
+
+ Note that if is set to true (which is
+ the default), then DetectChanges will be called once before adding any entities and will not be called
+ again. This means that in some situations AddRange may perform significantly better than calling
+ Add multiple times would do.
+ Note that entities that are already in the context in some other state will have their state set to
+ Added. AddRange is a no-op for entities that are already in the context in the Added state.
+
+
+
+
+ Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
+ is called. Note that the entity must exist in the context in some other state before this method
+ is called.
+
+ The entity to remove.
+ The entity.
+
+ Note that if the entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+ Removes the given collection of entities from the context underlying the set with each entity being put into
+ the Deleted state such that it will be deleted from the database when SaveChanges is called.
+
+ The collection of entities to delete.
+
+ The collection of entities.
+
+
+ Note that if is set to true (which is
+ the default), then DetectChanges will be called once before delete any entities and will not be called
+ again. This means that in some situations RemoveRange may perform significantly better than calling
+ Remove multiple times would do.
+ Note that if any entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+ Creates a new instance of an entity for the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Creates a new instance of an entity for the type of this set or for a type derived
+ from the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The type of entity to create.
+ The entity instance, which may be a proxy.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity for which the set was created.
+ The generic set object.
+
+
+
+ Creates a raw SQL query that will return entities in this set. By default, the
+ entities returned are tracked by the context; this can be changed by calling
+ AsNoTracking on the returned.
+ Note that the entities returned are always of the type for this set and never of
+ a derived type. If the table or tables queried may contain data for other entity
+ types, then the SQL query must be written appropriately to ensure that only entities of
+ the correct type are returned.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The SQL query string.
+
+ The parameters to apply to the SQL query string. If output parameters are used, their values
+ will not be available until the results have been read completely. This is due to the underlying
+ behavior of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A object that will execute the query when it is enumerated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A DbSet represents the collection of all entities in the context, or that can be queried from the
+ database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method.
+
+
+ Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a
+ one-to-one correlation between a type and a set.
+
+ The type that defines the set.
+
+
+
+ Creates an instance of a when called from the constructor of a derived
+ type that will be used as a test double for DbSets. Methods and properties that will be used by the
+ test double must be implemented by the test double except AsNoTracking, AsStreaming, an Include where
+ the default implementation is a no-op.
+
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Asynchronously finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+ The values of the primary key for the entity to be found.
+ A task that represents the asynchronous find operation. The task result contains the entity found, or null.
+ Thrown if multiple entities exist in the context with the primary key values given.
+ Thrown if the type of entity is not part of the data model for this context.
+ Thrown if the types of the key values do not match the types of the key values for the entity type to be found.
+ Thrown if the context has been disposed.
+
+
+
+ Asynchronously finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The values of the primary key for the entity to be found.
+ A task that represents the asynchronous find operation. The task result contains the entity found, or null.
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds the given collection of entities into context underlying the set with each entity being put into
+ the Added state such that it will be inserted into the database when SaveChanges is called.
+
+ The collection of entities to add.
+
+ The collection of entities.
+
+
+ Note that if is set to true (which is
+ the default), then DetectChanges will be called once before adding any entities and will not be called
+ again. This means that in some situations AddRange may perform significantly better than calling
+ Add multiple times would do.
+ Note that entities that are already in the context in some other state will have their state set to
+ Added. AddRange is a no-op for entities that are already in the context in the Added state.
+
+
+
+
+
+
+
+ Removes the given collection of entities from the context underlying the set with each entity being put into
+ the Deleted state such that it will be deleted from the database when SaveChanges is called.
+
+ The collection of entities to delete.
+
+ The collection of entities.
+
+
+ Note that if is set to true (which is
+ the default), then DetectChanges will be called once before delete any entities and will not be called
+ again. This means that in some situations RemoveRange may perform significantly better than calling
+ Remove multiple times would do.
+ Note that if any entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+
+
+
+
+
+
+ Returns the equivalent non-generic object.
+
+ The generic set object.
+ The non-generic set object.
+
+
+
+ Creates a raw SQL query that will return entities in this set. By default, the
+ entities returned are tracked by the context; this can be changed by calling
+ AsNoTracking on the returned.
+ Note that the entities returned are always of the type for this set and never of
+ a derived type. If the table or tables queried may contain data for other entity
+ types, then the SQL query must be written appropriately to ensure that only entities of
+ the correct type are returned.
+
+ As with any API that accepts SQL it is important to parameterize any user input to protect against a SQL injection attack. You can include parameter place holders in the SQL query string and then supply parameter values as additional arguments. Any parameter values you supply will automatically be converted to a DbParameter.
+ context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor);
+ Alternatively, you can also construct a DbParameter and supply it to SqlQuery. This allows you to use named parameters in the SQL query string.
+ context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
+
+ The SQL query string.
+
+ The parameters to apply to the SQL query string. If output parameters are used, their values will
+ not be available until the results have been read completely. This is due to the underlying behavior
+ of DbDataReader, see http://go.microsoft.com/fwlink/?LinkID=398589 for more details.
+
+
+ A object that will execute the query when it is enumerated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the
+ database the first time that a context is used in the app domain.
+ To seed the database, create a derived class and override the Seed method.
+
+ The type of the context.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+ is
+ null
+ .
+
+
+
+
+ A method that should be overridden to actually add data to the context for seeding.
+ The default implementation does nothing.
+
+ The context to seed.
+
+
+
+ An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the
+ database only if the model has changed since the database was created.
+
+ The type of the context.
+
+ Whether or not the model has changed is determined by the
+ method.
+ To seed the database create a derived class and override the Seed method.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+ is
+ null
+ .
+
+
+
+
+ A method that should be overridden to actually add data to the context for seeding.
+ The default implementation does nothing.
+
+ The context to seed.
+
+
+
+ Describes the state of an entity.
+
+
+
+
+ The entity is not being tracked by the context.
+ An entity is in this state immediately after it has been created with the new operator
+ or with one of the Create methods.
+
+
+
+
+ The entity is being tracked by the context and exists in the database, and its property
+ values have not changed from the values in the database.
+
+
+
+
+ The entity is being tracked by the context but does not yet exist in the database.
+
+
+
+
+ The entity is being tracked by the context and exists in the database, but has been marked
+ for deletion from the database the next time SaveChanges is called.
+
+
+
+
+ The entity is being tracked by the context and exists in the database, and some or all of its
+ property values have been modified.
+
+
+
+
+ A provider-independent service API for HierarchyId type support.
+
+
+
+
+ Returns a hierarchyid representing the nth ancestor of this.
+
+ A hierarchyid representing the nth ancestor of this.
+ n
+
+
+
+ Returns a child node of the parent.
+
+ null or the hierarchyid of a child of the current node.
+ null or the hierarchyid of a child of the current node.
+
+ Returns one child node that is a descendant of the parent.
+ If parent is null, returns null.
+ If parent is not null, and both child1 and child2 are null, returns a child of parent.
+ If parent and child1 are not null, and child2 is null, returns a child of parent greater than child1.
+ If parent and child2 are not null and child1 is null, returns a child of parent less than child2.
+ If parent, child1, and child2 are not null, returns a child of parent greater than child1 and less than child2.
+ If child1 is not null and not a child of parent, an exception is raised.
+ If child2 is not null and not a child of parent, an exception is raised.
+ If child1 >= child2, an exception is raised.
+
+
+
+
+ Returns an integer that represents the depth of the node this in the tree.
+
+ An integer that represents the depth of the node this in the tree.
+
+
+
+ Returns the root of the hierarchy tree.
+
+ The root of the hierarchy tree.
+
+
+
+ Returns true if this is a descendant of parent.
+
+ True if this is a descendant of parent.
+ parent
+
+
+
+ Returns a node whose path from the root is the path to newRoot, followed by the path from oldRoot to this.
+
+ Hierarchyid value.
+ oldRoot
+ newRoot
+
+
+
+ Converts the canonical string representation of a hierarchyid to a hierarchyid value.
+
+ Hierarchyid value.
+ input
+
+
+
+ Represents hierarchical data.
+
+
+
+
+ The Path separator character
+
+
+
+
+ Constructs an HierarchyId.
+
+
+
+
+ Constructs an HierarchyId with the given canonical string representation value.
+
+ Hierarchyid value.
+ Canonical string representation
+
+
+
+ Returns a hierarchyid representing the nth ancestor of this.
+
+ A hierarchyid representing the nth ancestor of this.
+ n
+
+
+
+ Returns a child node of the parent.
+
+ null or the hierarchyid of a child of the current node.
+ null or the hierarchyid of a child of the current node.
+
+ Returns one child node that is a descendant of the parent.
+ If parent is null, returns null.
+ If parent is not null, and both child1 and child2 are null, returns a child of parent.
+ If parent and child1 are not null, and child2 is null, returns a child of parent greater than child1.
+ If parent and child2 are not null and child1 is null, returns a child of parent less than child2.
+ If parent, child1, and child2 are not null, returns a child of parent greater than child1 and less than child2.
+ If child1 is not null and not a child of parent, an exception is raised.
+ If child2 is not null and not a child of parent, an exception is raised.
+ If child1 >= child2, an exception is raised.
+
+
+
+
+ Returns an integer that represents the depth of the node this in the tree.
+
+ An integer that represents the depth of the node this in the tree.
+
+
+
+ Returns the root of the hierarchy tree.
+
+ The root of the hierarchy tree.
+
+
+
+ Returns true if this is a descendant of parent.
+
+ True if this is a descendant of parent.
+ parent
+
+
+
+ Returns a node whose path from the root is the path to newRoot, followed by the path from oldRoot to this.
+
+ Hierarchyid value.
+ oldRoot
+ newRoot
+
+
+
+ Converts the canonical string representation of a hierarchyid to a hierarchyid value.
+
+ Hierarchyid value.
+ input
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+
+ A 32-bit signed integer that indicates the lexical relationship between the two comparands.
+ Value Condition Less than zero: hid1 is less than hid2.
+ Zero: hid1 equals hid2.
+ Greater than zero: hid1 is greater than hid2.
+
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+
+ true if the first parameter is less than the second parameter, false otherwise
+
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+
+ true if the first parameter is greater than the second parameter, false otherwise
+
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+
+ true if the first parameter is less or equal than the second parameter, false otherwise
+
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+
+ true if the first parameter is greater or equal than the second parameter, false otherwise
+
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+ true if the two HierarchyIds are equal, false otherwise
+
+
+
+ Compares two HierarchyIds by their values.
+
+ a HierarchyId to compare
+ a HierarchyId to compare
+ true if the two HierarchyIds are not equal, false otherwise
+
+
+
+ Compares this instance to a given HierarchyId by their values.
+
+ the HierarchyId to compare against this instance
+ true if this instance is equal to the given HierarchyId, and false otherwise
+
+
+
+ Returns a value-based hash code, to allow HierarchyId to be used in hash tables.
+
+ the hash value of this HierarchyId
+
+
+
+ Compares this instance to a given HierarchyId by their values.
+
+ the HierarchyId to compare against this instance
+ true if this instance is equal to the given HierarchyId, and false otherwise
+
+
+
+ Returns a string representation of the hierarchyid value.
+
+ A string representation of the hierarchyid value.
+
+
+
+ Implementation of IComparable.CompareTo()
+
+ The object to compare to
+ 0 if the HierarchyIds are "equal" (i.e., have the same _hierarchyId value)
+
+
+
+ An implementation of this interface is used to initialize the underlying database when
+ an instance of a derived class is used for the first time.
+ This initialization can conditionally create the database and/or seed it with data.
+ The strategy used is set using the static InitializationStrategy property of the
+ class.
+ The following implementations are provided: ,
+ , .
+
+ The type of the context.
+
+
+
+ Executes the strategy to initialize the database for the given context.
+
+ The context.
+
+
+
+ An represents the collection of all entities in the context, or that
+ can be queried from the database, of a given type. is a concrete
+ implementation of IDbSet.
+
+
+ was originally intended to allow creation of test doubles (mocks or
+ fakes) for . However, this approach has issues in that adding new members
+ to an interface breaks existing code that already implements the interface without the new members.
+ Therefore, starting with EF6, no new members will be added to this interface and it is recommended
+ that be used as the base class for test doubles.
+
+ The type that defines the set.
+
+
+
+ Finds an entity with the given primary key values.
+ If an entity with the given primary key values exists in the context, then it is
+ returned immediately without making a request to the store. Otherwise, a request
+ is made to the store for an entity with the given primary key values and this entity,
+ if found, is attached to the context and returned. If no entity is found in the
+ context or the store, then null is returned.
+
+
+ The ordering of composite key values is as defined in the EDM, which is in turn as defined in
+ the designer, by the Code First fluent API, or by the DataMember attribute.
+
+ The values of the primary key for the entity to be found.
+ The entity found, or null.
+
+
+
+ Adds the given entity to the context underlying the set in the Added state such that it will
+ be inserted into the database when SaveChanges is called.
+
+ The entity to add.
+ The entity.
+
+ Note that entities that are already in the context in some other state will have their state set
+ to Added. Add is a no-op if the entity is already in the context in the Added state.
+
+
+
+
+ Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges
+ is called. Note that the entity must exist in the context in some other state before this method
+ is called.
+
+ The entity to remove.
+ The entity.
+
+ Note that if the entity exists in the context in the Added state, then this method
+ will cause it to be detached from the context. This is because an Added entity is assumed not to
+ exist in the database such that trying to delete it does not make sense.
+
+
+
+
+ Attaches the given entity to the context underlying the set. That is, the entity is placed
+ into the context in the Unchanged state, just as if it had been read from the database.
+
+ The entity to attach.
+ The entity.
+
+ Attach is used to repopulate a context with an entity that is known to already exist in the database.
+ SaveChanges will therefore not attempt to insert an attached entity into the database because
+ it is assumed to already be there.
+ Note that entities that are already in the context in some other state will have their state set
+ to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state.
+
+
+
+
+ Gets an that represents a local view of all Added, Unchanged,
+ and Modified entities in this set. This local view will stay in sync as entities are added or
+ removed from the context. Likewise, entities added to or removed from the local view will automatically
+ be added to or removed from the context.
+
+
+ This property can be used for data binding by populating the set with data, for example by using the Load
+ extension method, and then binding to the local data through this property. For WPF bind to this property
+ directly. For Windows Forms bind to the result of calling ToBindingList on this property
+
+ The local view.
+
+
+
+ Creates a new instance of an entity for the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The entity instance, which may be a proxy.
+
+
+
+ Creates a new instance of an entity for the type of this set or for a type derived
+ from the type of this set.
+ Note that this instance is NOT added or attached to the set.
+ The instance returned will be a proxy if the underlying context is configured to create
+ proxies and the entity type meets the requirements for creating a proxy.
+
+ The type of entity to create.
+ The entity instance, which may be a proxy.
+
+
+
+ Inherit from this class to create a service that allows for code generation of custom annotations as part of
+ scaffolding Migrations. The derived class should be set onto the .
+
+
+ Note that an is not needed if the annotation uses a simple string value,
+ or if calling ToString on the annotation object is sufficient for use in the scaffolded Migration.
+
+
+
+
+ Override this method to return additional namespaces that should be included in the code generated for the
+ scaffolded migration. The default implementation returns an empty enumeration.
+
+ The names of the annotations that are being included in the generated code.
+ A list of additional namespaces to include.
+
+
+
+ Implement this method to generate code for the given annotation value.
+
+ The name of the annotation for which a value is being generated.
+ The annotation value.
+ The writer to which generated code should be written.
+
+
+
+ Represents a pair of annotation values in a scaffolded or hand-coded .
+
+
+ Code First allows for custom annotations to be associated with columns and tables in the
+ generated model. This class represents a pair of annotation values in a migration such
+ that when the Code First model changes the old annotation value and the new annotation
+ value can be provided to the migration and used in SQL generation.
+
+
+
+
+ Creates a new pair of annotation values.
+
+ The old value of the annotation, which may be null if the annotation has just been created.
+ The new value of the annotation, which may be null if the annotation has been deleted.
+
+
+
+ Gets the old value of the annotation, which may be null if the annotation has just been created.
+
+
+
+
+ Gets the new value of the annotation, which may be null if the annotation has been deleted.
+
+
+
+
+
+
+
+
+
+
+ Returns true if both annotation pairs contain the same values, otherwise false.
+
+ A pair of annotation values.
+ A pair of annotation values.
+ True if both pairs contain the same values.
+
+
+
+ Returns true if the two annotation pairs contain different values, otherwise false.
+
+ A pair of annotation values.
+ A pair of annotation values.
+ True if the pairs contain different values.
+
+
+
+ Returned by and related methods to indicate whether or
+ not one object does not conflict with another such that the two can be combined into one.
+
+
+ If the two objects are not compatible then information about why they are not compatible is contained
+ in the property.
+
+
+
+
+ Creates a new instance.
+
+ Indicates whether or not the two tested objects are compatible.
+
+ An error message indicating how the objects are not compatible. Expected to be null if isCompatible is true.
+
+
+
+
+ True if the two tested objects are compatible; otherwise false.
+
+
+
+
+ If is true, then returns an error message indicating how the two tested objects
+ are incompatible.
+
+
+
+
+ Implicit conversion to a bool to allow the result object to be used directly in checks.
+
+ The object to convert.
+ True if the result is compatible; false otherwise.
+
+
+
+ Types used as custom annotations can implement this interface to indicate that an attempt to use
+ multiple annotations with the same name on a given table or column may be possible by merging
+ the multiple annotations into one.
+
+
+ Normally there can only be one custom annotation with a given name on a given table or
+ column. If a table or column ends up with multiple annotations, for example, because
+ multiple CLR properties map to the same column, then an exception will be thrown.
+ However, if the annotation type implements this interface, then the two annotations will be
+ checked for compatibility using the method and, if compatible,
+ will be merged into one using the method.
+
+
+
+
+ Returns true if this annotation does not conflict with the given annotation such that
+ the two can be combined together using the method.
+
+ The annotation to compare.
+ A CompatibilityResult indicating whether or not this annotation is compatible with the other.
+
+
+
+ Merges this annotation with the given annotation and returns a new merged annotation. This method is
+ only expected to succeed if returns true.
+
+ The annotation to merge with this one.
+ A new merged annotation.
+
+
+
+ Instances of this class are used as custom annotations for representing database indexes in an
+ Entity Framework model.
+
+
+ An index annotation is added to a Code First model when an is placed on
+ a mapped property of that model. This is used by Entity Framework Migrations to create indexes on
+ mapped database columns. Note that multiple index attributes on a property will be merged into a
+ single annotation for the column. Similarly, index attributes on multiple properties that map to the
+ same column will be merged into a single annotation for the column. This means that one index
+ annotation can represent multiple indexes. Within an annotation there can be only one index with any
+ given name.
+
+
+
+
+ The name used when this annotation is stored in Entity Framework metadata or serialized into
+ an SSDL/EDMX file.
+
+
+
+
+ Creates a new annotation for the given index.
+
+ An index attributes representing an index.
+
+
+
+ Creates a new annotation for the given collection of indexes.
+
+ Index attributes representing one or more indexes.
+
+
+
+ Gets the indexes represented by this annotation.
+
+
+
+
+ Returns true if this annotation does not conflict with the given annotation such that
+ the two can be combined together using the method.
+
+
+ Each index annotation contains at most one with a given name.
+ Two annotations are considered compatible if each IndexAttribute with a given name is only
+ contained in one annotation or the other, or if both annotations contain an IndexAttribute
+ with the given name.
+
+ The annotation to compare.
+ A CompatibilityResult indicating whether or not this annotation is compatible with the other.
+
+
+
+ Merges this annotation with the given annotation and returns a new annotation containing the merged indexes.
+
+
+ Each index annotation contains at most one with a given name.
+ The merged annotation will contain IndexAttributes from both this and the other annotation.
+ If both annotations contain an IndexAttribute with the same name, then the merged annotation
+ will contain one IndexAttribute with that name.
+
+ The annotation to merge with this one.
+ A new annotation with indexes from both annotations merged.
+
+ The other annotation contains indexes that are not compatible with indexes in this annotation.
+
+
+
+
+
+
+
+ This class is used to serialize and deserialize objects so that they
+ can be stored in the EDMX form of the Entity Framework model.
+
+
+ An example of the serialized format is:
+ { Name: 'MyIndex', Order: 7, IsClustered: True, IsUnique: False } { } { Name: 'MyOtherIndex' }.
+ Note that properties that have not been explicitly set in an index attribute will be excluded from
+ the serialized output. So, in the example above, the first index has all properties specified,
+ the second has none, and the third has just the name set.
+
+
+
+
+ Serializes the given into a string for storage in the EDMX XML.
+
+ The name of the annotation that is being serialized.
+ The value to serialize which must be an IndexAnnotation object.
+ The serialized value.
+
+
+
+ Deserializes the given string back into an object.
+
+ The name of the annotation that is being deserialized.
+ The string to deserialize.
+ The deserialized annotation value.
+ If there is an error reading the serialized value.
+
+
+
+ Returned by the ChangeTracker method of to provide access to features of
+ the context that are related to change tracking of entities.
+
+
+
+
+ Gets objects for all the entities tracked by this context.
+
+ The entries.
+
+
+
+ Gets objects for all the entities of the given type
+ tracked by this context.
+
+ The type of the entity.
+ The entries.
+
+
+
+ Checks if the is tracking any new, deleted, or changed entities or
+ relationships that will be sent to the database if is called.
+
+
+ Functionally, calling this method is equivalent to checking if there are any entities or
+ relationships in the Added, Updated, or Deleted state.
+ Note that this method calls unless
+ has been set to false.
+
+
+ True if underlying have changes, else false.
+
+
+
+
+ Detects changes made to the properties and relationships of POCO entities. Note that some types of
+ entity (such as change tracking proxies and entities that derive from
+ )
+ report changes automatically and a call to DetectChanges is not normally needed for these types of entities.
+ Also note that normally DetectChanges is called automatically by many of the methods of
+ and its related classes such that it is rare that this method will need to be called explicitly.
+ However, it may be desirable, usually for performance reasons, to turn off this automatic calling of
+ DetectChanges using the AutoDetectChangesEnabled flag from .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+
+
+ Asynchronously loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Gets or sets a value indicating whether all entities of this collection have been loaded from the database.
+
+
+ Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly
+ with one of the Load methods will set the IsLoaded flag to true.
+ IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded.
+ This can be useful if the application has caused a subset of related entities to be loaded into this collection
+ and wants to prevent any other entities from being loaded automatically.
+ Note that explict loading using one of the Load methods will load all related entities from the database
+ regardless of whether or not IsLoaded is true.
+ When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the
+ not all related entities are now loaded.
+
+
+ true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false.
+
+
+
+
+ Returns the query that would be used to load this collection from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database, such
+ as counting the number of entities in the collection in the database without actually loading them.
+
+ A query for the collection.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the collection element.
+ The equivalent generic object.
+
+
+
+ Instances of this class are returned from the Collection method of
+ and allow operations such as loading to
+ be performed on the an entity's collection navigation properties.
+
+ The type of the entity to which this property belongs.
+ The type of the element in the collection of entities.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+
+
+ Asynchronously loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously loads the collection of entities from the database.
+ Note that entities that already exist in the context are not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Gets or sets a value indicating whether all entities of this collection have been loaded from the database.
+
+
+ Loading the related entities from the database either using lazy-loading, as part of a query, or explicitly
+ with one of the Load methods will set the IsLoaded flag to true.
+ IsLoaded can be explicitly set to true to prevent the related entities of this collection from being lazy-loaded.
+ This can be useful if the application has caused a subset of related entities to be loaded into this collection
+ and wants to prevent any other entities from being loaded automatically.
+ Note that explict loading using one of the Load methods will load all related entities from the database
+ regardless of whether or not IsLoaded is true.
+ When any related entity in the collection is detached the IsLoaded flag is reset to false indicating that the
+ not all related entities are now loaded.
+
+
+ true if all the related entities are loaded or the IsLoaded has been explicitly set to true; otherwise, false.
+
+
+
+
+ Returns the query that would be used to load this collection from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database, such
+ as counting the number of entities in the collection in the database without actually loading them.
+
+ A query for the collection.
+
+
+
+ Returns a new instance of the non-generic class for
+ the navigation property represented by this object.
+
+ The object representing the navigation property.
+ A non-generic version.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ An immutable representation of an Entity Data Model (EDM) model that can be used to create an
+ or can be passed to the constructor of a .
+ For increased performance, instances of this type should be cached and re-used to construct contexts.
+
+
+
+
+ Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance
+ of DbContext can be created instead by using the appropriate DbContext constructor.
+ If a derived ObjectContext is used, then it must have a public constructor with a single
+ EntityConnection parameter.
+ The connection passed is used by the ObjectContext created, but is not owned by the context. The caller
+ must dispose of the connection once the context has been disposed.
+
+ The type of context to create.
+ An existing connection to a database for use by the context.
+ The context.
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the complex property.
+ The equivalent generic object.
+
+
+
+ Instances of this class are returned from the ComplexProperty method of
+ and allow access to the state of a complex property.
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ Returns a new instance of the non-generic class for
+ the property represented by this object.
+
+ The object representing the property.
+ A non-generic version.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The type of the nested property.
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested property of this property.
+ This method can be used for both scalar or complex properties.
+
+ The type of the nested property.
+ An expression representing the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The type of the nested property.
+ The name of the nested property.
+ An object representing the nested property.
+
+
+
+ Gets an object that represents a nested complex property of this property.
+
+ The type of the nested property.
+ An expression representing the nested property.
+ An object representing the nested property.
+
+
+
+ Represents information about a database connection.
+
+
+
+
+ Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file.
+
+ The name of the connection string in the application configuration.
+
+
+
+ Creates a new instance of DbConnectionInfo based on a connection string.
+
+ The connection string to use for the connection.
+ The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Describes the origin of the database connection string associated with a .
+
+
+
+
+ The connection string was created by convention.
+
+
+
+
+ The connection string was read from external configuration.
+
+
+
+
+ The connection string was explicitly specified at runtime.
+
+
+
+
+ The connection string was overridden by connection information supplied to DbContextInfo.
+
+
+
+
+ Returned by the Configuration method of to provide access to configuration
+ options for the context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Gets or sets the value that determines whether SQL functions and commands should be always executed in a transaction.
+
+
+ This flag determines whether a new transaction will be started when methods such as
+ are executed outside of a transaction.
+ Note that this does not change the behavior of .
+
+
+ The default transactional behavior.
+
+
+
+
+ Gets or sets a value indicating whether lazy loading of relationships exposed as
+ navigation properties is enabled. Lazy loading is enabled by default.
+
+
+ true if lazy loading is enabled; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether or not the framework will create instances of
+ dynamically generated proxy classes whenever it creates an instance of an entity type.
+ Note that even if proxy creation is enabled with this flag, proxy instances will only
+ be created for entity types that meet the requirements for being proxied.
+ Proxy creation is enabled by default.
+
+
+ true if proxy creation is enabled; otherwise, false .
+
+
+
+
+ Gets or sets a value indicating whether database null semantics are exhibited when comparing
+ two operands, both of which are potentially nullable. The default value is false.
+
+ For example (operand1 == operand2) will be translated as:
+
+ (operand1 = operand2)
+
+ if UseDatabaseNullSemantics is true, respectively
+
+ (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) OR ((operand1 IS NULL) AND (operand2 IS NULL)))
+
+ if UseDatabaseNullSemantics is false.
+
+
+ true if database null comparison behavior is enabled, otherwise false .
+
+
+
+
+ By default expression like
+ .Select(x => NewProperty = func(x.Property)).Where(x => x.NewProperty == ...)
+ are simplified to avoid nested SELECT
+ In some cases, simplifying query with UDFs could caused to suboptimal plans due to calling UDF twice.
+ Also some SQL functions aren't allow in WHERE clause.
+ Disabling that behavior
+
+
+
+
+ Gets or sets a value indicating whether the
+ method is called automatically by methods of and related classes.
+ The default value is true.
+
+
+ true if should be called automatically; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether tracked entities should be validated automatically when
+ is invoked.
+ The default value is true.
+
+
+
+
+ Provides runtime information about a given type.
+
+
+
+
+ Creates a new instance representing a given type.
+
+
+ The type deriving from .
+
+
+
+
+ Creates a new instance representing a given targeting a specific database.
+
+
+ The type deriving from .
+
+ Connection information for the database to be used.
+
+
+
+ Creates a new instance representing a given type. An external list of
+ connection strings can be supplied and will be used during connection string resolution in place
+ of any connection strings specified in external configuration files.
+
+
+ It is preferable to use the constructor that accepts the entire config document instead of using this
+ constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config
+ to be found in addition to explicitly specified connection strings.
+
+
+ The type deriving from .
+
+ A collection of connection strings.
+
+
+
+ Creates a new instance representing a given type. An external config
+ object (e.g. app.config or web.config) can be supplied and will be used during connection string
+ resolution. This includes looking for connection strings and DefaultConnectionFactory entries.
+
+
+ The type deriving from .
+
+ An object representing the config file.
+
+
+
+ Creates a new instance representing a given , targeting a specific database.
+ An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string
+ resolution. This includes looking for connection strings and DefaultConnectionFactory entries.
+
+
+ The type deriving from .
+
+ An object representing the config file.
+ Connection information for the database to be used.
+
+
+
+ Creates a new instance representing a given type. A
+ can be supplied in order to override the default determined provider used when constructing
+ the underlying EDM model.
+
+
+ The type deriving from .
+
+
+ A specifying the underlying ADO.NET provider to target.
+
+
+
+
+ Creates a new instance representing a given type. An external config
+ object (e.g. app.config or web.config) can be supplied and will be used during connection string
+ resolution. This includes looking for connection strings and DefaultConnectionFactory entries.
+ A can be supplied in order to override the default determined
+ provider used when constructing the underlying EDM model. This can be useful to prevent EF from
+ connecting to discover a manifest token.
+
+
+ The type deriving from .
+
+ An object representing the config file.
+
+ A specifying the underlying ADO.NET provider to target.
+
+
+
+
+ The concrete type.
+
+
+
+
+ Whether or not instances of the underlying type can be created.
+
+
+
+
+ The connection string used by the underlying type.
+
+
+
+
+ The connection string name used by the underlying type.
+
+
+
+
+ The ADO.NET provider name of the connection used by the underlying type.
+
+
+
+
+ The origin of the connection string used by the underlying type.
+
+
+
+
+ An action to be run on the DbModelBuilder after OnModelCreating has been run on the context.
+
+
+
+
+ If instances of the underlying type can be created, returns
+ a new instance; otherwise returns null.
+
+
+ A instance.
+
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Gets the entity.
+
+ The entity.
+
+
+
+ Gets or sets the state of the entity.
+
+ The state.
+
+
+
+ Gets the current property values for the tracked entity represented by this object.
+
+ The current values.
+
+
+
+ Gets the original property values for the tracked entity represented by this object.
+ The original values are usually the entity's property values as they were when last queried from
+ the database.
+
+ The original values.
+
+
+
+ Queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+ The store values.
+
+
+
+ Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the store values.
+
+
+
+
+ Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the store values.
+
+
+
+
+ Reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+
+
+ Asynchronously reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The name of the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The name of the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a member of the entity. The runtime type of the returned object will
+ vary depending on what kind of member is asked for. The currently supported member types and their return
+ types are:
+ Reference navigation property: .
+ Collection navigation property: .
+ Primitive/scalar property: .
+ Complex property: .
+
+ The name of the member.
+ An object representing the member.
+
+
+
+ Returns a new instance of the generic class for the given
+ generic type for the tracked entity represented by this object.
+ Note that the type of the tracked entity must be compatible with the generic type or
+ an exception will be thrown.
+
+ The type of the entity.
+ A generic version.
+
+
+
+ Validates this instance and returns validation result.
+
+
+ Entity validation result. Possibly null if
+ DbContext.ValidateEntity(DbEntityEntry, IDictionary{object,object})
+ method is overridden.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+
+ The to compare with this instance.
+
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+
+ The to compare with this instance.
+
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Returns a hash code for this instance.
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Instances of this class provide access to information about and control of entities that
+ are being tracked by the . Use the Entity or Entities methods of
+ the context to obtain objects of this type.
+
+ The type of the entity.
+
+
+
+ Gets the entity.
+
+ The entity.
+
+
+
+ Gets or sets the state of the entity.
+
+ The state.
+
+
+
+ Gets the current property values for the tracked entity represented by this object.
+
+ The current values.
+
+
+
+ Gets the original property values for the tracked entity represented by this object.
+ The original values are usually the entity's property values as they were when last queried from
+ the database.
+
+ The original values.
+
+
+
+ Queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+ The store values.
+
+
+
+ Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the store values.
+
+
+
+
+ Asynchronously queries the database for copies of the values of the tracked entity as they currently exist in the database.
+ Note that changing the values in the returned dictionary will not update the values in the database.
+ If the entity is not found in the database then null is returned.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the store values.
+
+
+
+
+ Reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+
+
+ Asynchronously reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously reloads the entity from the database overwriting any property values with values from the database.
+ The entity will be in the Unchanged state after calling this method.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The type of the property.
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the reference (i.e. non-collection) navigation property from this
+ entity to another entity.
+
+ The type of the property.
+ An expression representing the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The type of elements in the collection.
+ The name of the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents the collection navigation property from this
+ entity to a collection of related entities.
+
+ The type of elements in the collection.
+ An expression representing the navigation property.
+ An object representing the navigation property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The name of the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The type of the property.
+ The name of the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a scalar or complex property of this entity.
+
+ The type of the property.
+ An expression representing the property.
+ An object representing the property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The name of the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The type of the complex property.
+ The name of the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a complex property of this entity.
+
+ The type of the complex property.
+ An expression representing the complex property.
+ An object representing the complex property.
+
+
+
+ Gets an object that represents a member of the entity. The runtime type of the returned object will
+ vary depending on what kind of member is asked for. The currently supported member types and their return
+ types are:
+ Reference navigation property: .
+ Collection navigation property: .
+ Primitive/scalar property: .
+ Complex property: .
+
+ The name of the member.
+ An object representing the member.
+
+
+
+ Gets an object that represents a member of the entity. The runtime type of the returned object will
+ vary depending on what kind of member is asked for. The currently supported member types and their return
+ types are:
+ Reference navigation property: .
+ Collection navigation property: .
+ Primitive/scalar property: .
+ Complex property: .
+
+ The type of the member.
+ The name of the member.
+ An object representing the member.
+
+
+
+ Returns a new instance of the non-generic class for
+ the tracked entity represented by this object.
+
+ The object representing the tracked entity.
+ A non-generic version.
+
+
+
+ Validates this instance and returns validation result.
+
+
+ Entity validation result. Possibly null if
+ DbContext.ValidateEntity(DbEntityEntry, IDictionary{object, object})
+ method is overridden.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+
+ The to compare with this instance.
+
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Determines whether the specified is equal to this instance.
+ Two instances are considered equal if they are both entries for
+ the same entity on the same .
+
+
+ The to compare with this instance.
+
+
+ true if the specified is equal to this instance; otherwise, false .
+
+
+
+
+ Returns a hash code for this instance.
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Provides the base implementation of the retry mechanism for unreliable operations and transient conditions that uses
+ exponentially increasing delays between retries.
+
+
+ A new instance will be created each time an operation is executed.
+ The following formula is used to calculate the delay after retryCount number of attempts:
+ min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)
+ The retryCount starts at 0.
+ The random factor distributes uniformly the retry attempts from multiple simultaneous operations failing simultaneously.
+
+
+
+
+ Creates a new instance of .
+
+
+ The default retry limit is 5, which means that the total amount of time spent between retries is 26 seconds plus the random factor.
+
+
+
+
+ Creates a new instance of with the specified limits for number of retries and the delay between retries.
+
+ The maximum number of retry attempts.
+ The maximum delay in milliseconds between retries.
+
+
+
+ Returns true to indicate that might retry the execution after a failure.
+
+
+
+
+ Indicates whether the strategy is suspended. The strategy is typically suspending while executing to avoid
+ recursive execution from nested operations.
+
+
+
+
+ Repetitively executes the specified operation while it satisfies the current retry policy.
+
+ A delegate representing an executable operation that doesn't return any results.
+ if the retry delay strategy determines the operation shouldn't be retried anymore
+ if an existing transaction is detected and the execution strategy doesn't support it
+ if this instance was already used to execute an operation
+
+
+
+ Repetitively executes the specified operation while it satisfies the current retry policy.
+
+ The type of result expected from the executable operation.
+
+ A delegate representing an executable operation that returns the result of type .
+
+ The result from the operation.
+ if the retry delay strategy determines the operation shouldn't be retried anymore
+ if an existing transaction is detected and the execution strategy doesn't support it
+ if this instance was already used to execute an operation
+
+
+
+ Repetitively executes the specified asynchronous operation while it satisfies the current retry policy.
+
+ A function that returns a started task.
+
+ A cancellation token used to cancel the retry operation, but not operations that are already in flight
+ or that already completed successfully.
+
+
+ A task that will run to completion if the original task completes successfully (either the
+ first time or after retrying transient failures). If the task fails with a non-transient error or
+ the retry limit is reached, the returned task will become faulted and the exception must be observed.
+
+ if the retry delay strategy determines the operation shouldn't be retried anymore
+ if an existing transaction is detected and the execution strategy doesn't support it
+ if this instance was already used to execute an operation
+
+
+
+ Repeatedly executes the specified asynchronous operation while it satisfies the current retry policy.
+
+
+ The result type of the returned by .
+
+
+ A function that returns a started task of type .
+
+
+ A cancellation token used to cancel the retry operation, but not operations that are already in flight
+ or that already completed successfully.
+
+
+ A task that will run to completion if the original task completes successfully (either the
+ first time or after retrying transient failures). If the task fails with a non-transient error or
+ the retry limit is reached, the returned task will become faulted and the exception must be observed.
+
+ if the retry delay strategy determines the operation shouldn't be retried anymore
+ if an existing transaction is detected and the execution strategy doesn't support it
+ if this instance was already used to execute an operation
+
+
+
+ Determines whether the operation should be retried and the delay before the next attempt.
+
+ The exception thrown during the last execution attempt.
+
+ Returns the delay indicating how long to wait for before the next execution attempt if the operation should be retried;
+ null otherwise
+
+
+
+
+ Recursively gets InnerException from as long as it's an
+ , or
+ and passes it to
+
+ The type of the unwrapped exception.
+ The exception to be unwrapped.
+ A delegate that will be called with the unwrapped exception.
+
+ The result from .
+
+
+
+
+ Determines whether the specified exception represents a transient failure that can be compensated by a retry.
+
+ The exception object to be verified.
+
+ true if the specified exception is considered as transient, otherwise false.
+
+
+
+
+ This is an abstract base class use to represent a scalar or complex property, or a navigation property
+ of an entity. Scalar and complex properties use the derived class ,
+ reference navigation properties use the derived class , and collection
+ navigation properties use the derived class .
+
+
+
+
+ Gets the name of the property.
+
+ The property name.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ The to which this member belongs.
+
+ An entry for the entity that owns this member.
+
+
+
+ Validates this property.
+
+
+ Collection of objects. Never null. If the entity is valid the collection will be empty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the property.
+ The equivalent generic object.
+
+
+
+ This is an abstract base class use to represent a scalar or complex property, or a navigation property
+ of an entity. Scalar and complex properties use the derived class ,
+ reference navigation properties use the derived class , and collection
+ navigation properties use the derived class .
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+ Gets the name of the property.
+ The name of the property.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ Returns a new instance of the non-generic class for
+ the property represented by this object.
+
+ The object representing the property.
+ A non-generic version.
+
+
+
+ The to which this member belongs.
+
+ An entry for the entity that owns this member.
+
+
+
+ Validates this property.
+
+
+ Collection of objects. Never null. If the entity is valid the collection will be empty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Represents an Entity Data Model (EDM) created by the .
+ The Compile method can be used to go from this EDM representation to a
+ which is a compiled snapshot of the model suitable for caching and creation of
+ or instances.
+
+
+
+
+ Gets the provider information.
+
+
+
+
+ Gets the provider manifest.
+
+
+
+
+ Gets the conceptual model.
+
+
+
+
+ Gets the store model.
+
+
+
+
+ Gets the mapping model.
+
+
+
+
+ Creates a for this mode which is a compiled snapshot
+ suitable for caching and creation of instances.
+
+ The compiled model.
+
+
+
+ Base class for persisted model cache.
+
+
+
+
+ Loads a model from the store.
+
+ The type of context representing the model.
+ The loaded metadata model.
+
+
+
+ Retrieves an edmx XDocument version of the model from the store.
+
+ The type of context representing the model.
+ The loaded XDocument edmx.
+
+
+
+ Saves a model to the store.
+
+ The type of context representing the model.
+ The metadata model to save.
+
+
+
+ Gets the default database schema used by a model.
+
+ The type of context representing the model.
+ The default database schema.
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the original value of this property.
+
+ The original value.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ Gets or sets a value indicating whether the value of this property has been modified since
+ it was loaded from the database.
+
+
+ Setting this value to false for a modified property will revert the change by setting the
+ current value to the original value. If the result is that no properties of the entity are
+ marked as modified, then the entity will be marked as Unchanged.
+ Setting this value to false for properties of Added, Unchanged, or Deleted entities
+ is a no-op.
+
+
+ true if this instance is modified; otherwise, false .
+
+
+
+
+ The to which this property belongs.
+
+ An entry for the entity that owns this property.
+
+
+
+ The of the property for which this is a nested property.
+ This method will only return a non-null entry for properties of complex objects; it will
+ return null for properties of the entity itself.
+
+ An entry for the parent complex property, or null if this is an entity property.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the property.
+ The equivalent generic object.
+
+
+
+ Instances of this class are returned from the Property method of
+ and allow access to the state of the scalar
+ or complex property.
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the original value of this property.
+
+ The original value.
+
+
+
+ Gets or sets the current value of this property.
+
+ The current value.
+
+
+
+ Gets or sets a value indicating whether the value of this property has been modified since
+ it was loaded from the database.
+
+
+ true if this instance is modified; otherwise, false .
+
+
+
+
+ Returns a new instance of the non-generic class for
+ the property represented by this object.
+
+ The object representing the property.
+ A non-generic version.
+
+
+
+ The to which this property belongs.
+
+ An entry for the entity that owns this property.
+
+
+
+ The of the property for which this is a nested property.
+ This method will only return a non-null entry for properties of complex objects; it will
+ return null for properties of the entity itself.
+
+ An entry for the parent complex property, or null if this is an entity property.
+
+
+
+ A collection of all the properties for an underlying entity or complex object.
+
+
+ An instance of this class can be converted to an instance of the generic class
+ using the Cast method.
+ Complex properties in the underlying entity or complex object are represented in
+ the property values as nested instances of this class.
+
+
+
+
+ Creates an object of the underlying type for this dictionary and hydrates it with property
+ values from this dictionary.
+
+ The properties of this dictionary copied into a new object.
+
+
+
+ Sets the values of this dictionary by reading values out of the given object.
+ The given object can be of any type. Any property on the object with a name that
+ matches a property name in the dictionary and can be read will be read. Other
+ properties will be ignored. This allows, for example, copying of properties from
+ simple Data Transfer Objects (DTOs).
+
+ The object to read values from.
+
+
+
+ Creates a new dictionary containing copies of all the properties in this dictionary.
+ Changes made to the new dictionary will not be reflected in this dictionary and vice versa.
+
+ A clone of this dictionary.
+
+
+
+ Sets the values of this dictionary by reading values from another dictionary.
+ The other dictionary must be based on the same type as this dictionary, or a type derived
+ from the type for this dictionary.
+
+ The dictionary to read values from.
+
+
+
+ Gets the set of names of all properties in this dictionary as a read-only set.
+
+ The property names.
+
+
+
+ Gets or sets the value of the property with the specified property name.
+ The value may be a nested instance of this class.
+
+ The property name.
+ The value of the property.
+
+
+
+ Gets the value of the property just like using the indexed property getter but
+ typed to the type of the generic parameter. This is useful especially with
+ nested dictionaries to avoid writing expressions with lots of casts.
+
+ The type of the property.
+ Name of the property.
+ The value of the property.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Groups a pair of strings that identify a provider and server version together into a single object.
+
+
+ Instances of this class act as the key for resolving a for a specific
+ provider from a . This is typically used when registering spatial services
+ in or when the spatial services specific to a provider is
+ resolved by an implementation of .
+
+
+
+
+ Creates a new object for a given provider invariant name and manifest token.
+
+
+ A string that identifies that provider. For example, the SQL Server
+ provider uses the string "System.Data.SqlCient".
+
+
+ A string that identifies that version of the database server being used. For example, the SQL Server
+ provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty.
+ The manifest token is sometimes referred to as a version hint.
+
+
+
+
+ A string that identifies that provider. For example, the SQL Server
+ provider uses the string "System.Data.SqlCient".
+
+
+
+
+ A string that identifies that version of the database server being used. For example, the SQL Server
+ provider uses the string "2008" for SQL Server 2008. This cannot be null but may be empty.
+
+
+
+
+
+
+
+
+
+
+ Represents a non-generic LINQ to Entities query against a DbContext.
+
+
+
+
+ Returns false.
+
+
+ false .
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+ Instead populate a DbSet with data, for example by using the Load extension method, and
+ then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to
+ DbSet.Local.ToBindingList().
+
+ Never returns; always throws.
+
+
+
+ Returns an which when enumerated will execute the query against the database.
+
+ The query results.
+
+
+
+ Returns an which when enumerated will execute the query against the database.
+
+ The query results.
+
+
+
+ The IQueryable element type.
+
+
+
+
+ The IQueryable LINQ Expression.
+
+
+
+
+ The IQueryable provider.
+
+
+
+
+ Specifies the related objects to include in the query results.
+
+
+ Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
+ OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on
+ the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected.
+ Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to
+ specify multiple paths for the query.
+
+ The dot-separated list of related objects to return in the query results.
+
+ A new DbQuery<T> with the defined query path.
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Returns a new query that will stream the results instead of buffering.
+
+ A new query with AsStreaming applied.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of element for which the query was created.
+ The generic set object.
+
+
+
+ Returns a representation of the underlying query.
+
+ The query string.
+
+
+
+ Gets a representation of the underlying query.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a LINQ to Entities query against a DbContext.
+
+ The type of entity to query for.
+
+
+
+ Specifies the related objects to include in the query results.
+
+
+ Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
+ OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on
+ the returned instance of the DbQuery<T>. Other instances of DbQuery<T> and the object context itself are not affected.
+ Because the Include method returns the query object, you can call this method multiple times on an DbQuery<T> to
+ specify multiple paths for the query.
+
+ The dot-separated list of related objects to return in the query results.
+
+ A new with the defined query path.
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Returns a new query that will stream the results instead of buffering.
+
+ A new query with AsStreaming applied.
+
+
+
+ Returns false.
+
+
+ false .
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+ Instead populate a DbSet with data, for example by using the Load extension method, and
+ then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to
+ DbSet.Local.ToBindingList().
+
+ Never returns; always throws.
+
+
+
+ Returns an which when enumerated will execute the query against the database.
+
+ The query results.
+
+
+
+ Returns an which when enumerated will execute the query against the database.
+
+ The query results.
+
+
+
+ Returns an which when enumerated will execute the query against the database.
+
+ The query results.
+
+
+
+ Returns an which when enumerated will execute the query against the database.
+
+ The query results.
+
+
+
+ The IQueryable element type.
+
+
+
+
+ The IQueryable LINQ Expression.
+
+
+
+
+ The IQueryable provider.
+
+
+
+
+ Returns a representation of the underlying query.
+
+ The query string.
+
+
+
+ Gets a representation of the underlying query.
+
+
+
+
+ Returns a new instance of the non-generic class for this query.
+
+ The query.
+ A non-generic version.
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a SQL query for non-entities that is created from a
+ and is executed using the connection from that context.
+ Instances of this class are obtained from the instance.
+ The query is not executed when this object is created; it is executed
+ each time it is enumerated, for example by using foreach.
+ SQL queries for entities are created using .
+ See for a generic version of this class.
+
+
+
+
+ Returns a new query that will stream the results instead of buffering.
+
+ A new query with AsStreaming applied.
+
+
+
+ Returns an which when enumerated will execute the SQL query against the database.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns an which when enumerated will execute the SQL query against the database.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The action to perform on each element.
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The action to perform on each element.
+
+ A to observe while waiting for the task to complete.
+
+ A task that represents the asynchronous operation.
+
+
+
+ Creates a from the query by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the query.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the query.
+
+
+
+
+ Returns a that contains the SQL string that was set
+ when the query was created. The parameters are not included.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns false.
+
+
+ false .
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+
+ Never returns; always throws.
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a SQL query for non-entities that is created from a
+ and is executed using the connection from that context.
+ Instances of this class are obtained from the instance.
+ The query is not executed when this object is created; it is executed
+ each time it is enumerated, for example by using foreach.
+ SQL queries for entities are created using .
+ See for a non-generic version of this class.
+
+ The type of elements returned by the query.
+
+
+
+ Returns a new query that will stream the results instead of buffering.
+
+ A new query with AsStreaming applied.
+
+
+
+ Returns an which when enumerated will execute the SQL query against the database.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns an which when enumerated will execute the SQL query against the database.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns an which when enumerated will execute the SQL query against the database.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Returns an which when enumerated will execute the SQL query against the database.
+
+
+ An object that can be used to iterate through the elements.
+
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The action to be executed.
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The action to be executed.
+
+ A to observe while waiting for the task to complete.
+
+ A task that represents the asynchronous operation.
+
+
+
+ Creates a from the query by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the input sequence.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the input sequence.
+
+
+
+
+ Creates an array from the query by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an array that contains elements from the input sequence.
+
+
+
+
+ Creates an array from the query by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an array that contains elements from the input sequence.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+ A function to extract a key from each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+ A function to extract a key from each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector function and a comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+ A function to extract a key from each element.
+
+ An to compare keys.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector function and a comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+ A function to extract a key from each element.
+
+ An to compare keys.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the query.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the query.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector function, a comparer, and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ An to compare keys.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the input sequence.
+
+
+
+
+ Creates a from the query by enumerating it asynchronously
+ according to a specified key selector function, a comparer, and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ An to compare keys.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the input sequence.
+
+
+
+
+ Asynchronously returns the first element of the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in the query result.
+
+ The query result is empty.
+
+
+
+ Asynchronously returns the first element of the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in the query result.
+
+ The query result is empty.
+
+
+
+ Asynchronously returns the first element of the query that satisfies a specified condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in the query result that satisfies a specified condition.
+
+
+
+ is
+ null
+ .
+
+ The query result is empty.
+
+
+
+ Asynchronously returns the first element of the query that satisfies a specified condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in the query result that satisfies a specified condition.
+
+
+
+ is
+ null
+ .
+
+ The query result is empty.
+
+
+
+ Asynchronously returns the first element of the query, or a default value if the query result contains no elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if query result is empty;
+ otherwise, the first element in the query result.
+
+
+
+
+ Asynchronously returns the first element of the query, or a default value if the query result contains no elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if query result is empty;
+ otherwise, the first element in the query result.
+
+
+
+
+ Asynchronously returns the first element of the query that satisfies a specified condition
+ or a default value if no such element is found.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if query result is empty
+ or if no element passes the test specified by ; otherwise, the first element
+ in the query result that passes the test specified by .
+
+
+
+ is
+ null
+ .
+
+
+
+
+ Asynchronously returns the first element of the query that satisfies a specified condition
+ or a default value if no such element is found.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if query result is empty
+ or if no element passes the test specified by ; otherwise, the first element
+ in the query result that passes the test specified by .
+
+
+
+ is
+ null
+ .
+
+
+
+
+ Asynchronously returns the only element of the query, and throws an exception
+ if there is not exactly one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result.
+
+ The query result has more than one element.
+ The query result is empty.
+
+
+
+ Asynchronously returns the only element of the query, and throws an exception
+ if there is not exactly one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result.
+
+ The query result has more than one element.
+ The query result is empty.
+
+
+
+ Asynchronously returns the only element of the query that satisfies a specified condition,
+ and throws an exception if more than one such element exists.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result that satisfies the condition in
+ .
+
+
+
+ is
+ null
+ .
+
+
+ No element satisfies the condition in
+
+ .
+
+
+ More than one element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the only element of the query that satisfies a specified condition,
+ and throws an exception if more than one such element exists.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result that satisfies the condition in
+ .
+
+
+
+ is
+ null
+ .
+
+
+ No element satisfies the condition in
+
+ .
+
+
+ More than one element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the only element of a sequence, or a default value if the sequence is empty;
+ this method throws an exception if there is more than one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result, or default ()
+ if the sequence contains no elements.
+
+ The query result has more than one element.
+
+
+
+ Asynchronously returns the only element of a sequence, or a default value if the sequence is empty;
+ this method throws an exception if there is more than one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result, or default ()
+ if the sequence contains no elements.
+
+ The query result has more than one element.
+
+
+
+ Asynchronously returns the only element of the query that satisfies a specified condition or
+ a default value if no such element exists; this method throws an exception if more than one element
+ satisfies the condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result that satisfies the condition in
+ , or default ( ) if no such element is found.
+
+
+
+ is
+ null
+ .
+
+
+ More than one element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the only element of the query that satisfies a specified condition or
+ a default value if no such element exists; this method throws an exception if more than one element
+ satisfies the condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the query result that satisfies the condition in
+ , or default ( ) if no such element is found.
+
+
+
+ is
+ null
+ .
+
+
+ More than one element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously determines whether the query contains a specified element by using the default equality comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The object to locate in the query result.
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the query result contains the specified value; otherwise, false.
+
+
+
+
+ Asynchronously determines whether the query contains a specified element by using the default equality comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ The object to locate in the query result.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the query result contains the specified value; otherwise, false.
+
+
+
+
+ Asynchronously determines whether the query contains any elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the query result contains any elements; otherwise, false.
+
+
+
+
+ Asynchronously determines whether the query contains any elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the query result contains any elements; otherwise, false.
+
+
+
+
+ Asynchronously determines whether any element of the query satisfies a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false.
+
+
+
+
+ Asynchronously determines whether any element of the query satisfies a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if any elements in the query result pass the test in the specified predicate; otherwise, false.
+
+
+
+
+ Asynchronously determines whether all the elements of the query satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false.
+
+
+
+ is
+ null
+ .
+
+
+
+
+ Asynchronously determines whether all the elements of the query satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if every element of the query result passes the test in the specified predicate; otherwise, false.
+
+
+
+ is
+ null
+ .
+
+
+
+
+ Asynchronously returns the number of elements in the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result.
+
+
+ The number of elements in the query result is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result.
+
+
+ The number of elements in the query result is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in the query that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result that satisfy the condition in the predicate function.
+
+
+ The number of elements in the query result that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in the query that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result that satisfy the condition in the predicate function.
+
+
+ The number of elements in the query result that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the total number of elements in the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result.
+
+
+ The number of elements in the query result is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the total number of elements in the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result.
+
+
+ The number of elements in the query result is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the number of elements in the query
+ that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result that satisfy the condition in the predicate function.
+
+
+ The number of elements in the query result that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the number of elements in the query
+ that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the query result that satisfy the condition in the predicate function.
+
+
+ The number of elements in the query result that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the minimum value of the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the minimum value in the query result.
+
+
+
+
+ Asynchronously returns the minimum value of the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the minimum value in the query result.
+
+
+
+
+ Asynchronously returns the maximum value of the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the maximum value in the query result.
+
+
+
+
+ Asynchronously returns the maximum value of the query.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the maximum value in the query result.
+
+
+
+
+ Returns a that contains the SQL string that was set
+ when the query was created. The parameters are not included.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns false.
+
+
+ false .
+
+
+
+
+ Throws an exception indicating that binding directly to a store query is not supported.
+
+ Never returns; always throws.
+
+
+
+
+
+
+
+
+
+
+
+
+ A non-generic version of the class.
+
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+
+
+ Asynchronously loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Gets or sets a value indicating whether the entity has been loaded from the database.
+
+
+ Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly
+ with one of the Load methods will set the IsLoaded flag to true.
+ IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded.
+ Note that explict loading using one of the Load methods will load the related entity from the database
+ regardless of whether or not IsLoaded is true.
+ When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is
+ no longer loaded.
+
+
+ true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false.
+
+
+
+
+ Returns the query that would be used to load this entity from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database.
+
+ A query for the entity.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Returns the equivalent generic object.
+
+ The type of entity on which the member is declared.
+ The type of the property.
+ The equivalent generic object.
+
+
+
+ Instances of this class are returned from the Reference method of
+ and allow operations such as loading to
+ be performed on the an entity's reference navigation properties.
+
+ The type of the entity to which this property belongs.
+ The type of the property.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the current value of the navigation property. The current value is
+ the entity that the navigation property references.
+
+ The current value.
+
+
+
+ Loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+
+
+ Asynchronously loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously loads the entity from the database.
+ Note that if the entity already exists in the context, then it will not overwritten with values from the database.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Gets or sets a value indicating whether the entity has been loaded from the database.
+
+
+ Loading the related entity from the database either using lazy-loading, as part of a query, or explicitly
+ with one of the Load methods will set the IsLoaded flag to true.
+ IsLoaded can be explicitly set to true to prevent the related entity from being lazy-loaded.
+ Note that explict loading using one of the Load methods will load the related entity from the database
+ regardless of whether or not IsLoaded is true.
+ When a related entity is detached the IsLoaded flag is reset to false indicating that the related entity is
+ no longer loaded.
+
+
+ true if the entity is loaded or the IsLoaded has been explicitly set to true; otherwise, false.
+
+
+
+
+ Returns the query that would be used to load this entity from the database.
+ The returned query can be modified using LINQ to perform filtering or operations in the database.
+
+ A query for the entity.
+
+
+
+ Returns a new instance of the non-generic class for
+ the navigation property represented by this object.
+
+ The object representing the navigation property.
+ A non-generic version.
+
+
+
+ The to which this navigation property belongs.
+
+ An entry for the entity that owns this navigation property.
+
+
+
+ Represents a SQL query for entities that is created from a
+ and is executed using the connection from that context.
+ Instances of this class are obtained from the instance for the
+ entity type. The query is not executed when this object is created; it is executed
+ each time it is enumerated, for example by using foreach.
+ SQL queries for non-entities are created using .
+ See for a generic version of this class.
+
+
+
+
+ Creates an instance of a when called from the constructor of a derived
+ type that will be used as a test double for . Methods and properties
+ that will be used by the test double must be implemented by the test double except AsNoTracking
+ and AsStreaming where the default implementation is a no-op.
+
+
+
+
+ Returns a new query where the results of the query will not be tracked by the associated
+ .
+
+ A new query with NoTracking applied.
+
+
+
+ Returns a new query that will stream the results instead of buffering.
+
+ A new query with AsStreaming applied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a SQL query for entities that is created from a
+ and is executed using the connection from that context.
+ Instances of this class are obtained from the instance for the
+ entity type. The query is not executed when this object is created; it is executed
+ each time it is enumerated, for example by using foreach.
+ SQL queries for non-entities are created using .
+ See for a non-generic version of this class.
+
+ The type of entities returned by the query.
+
+
+
+ Creates an instance of a when called from the constructor of a derived
+ type that will be used as a test double for . Methods and properties
+ that will be used by the test double must be implemented by the test double except AsNoTracking and
+ AsStreaming where the default implementation is a no-op.
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the .
+
+ A new query with NoTracking applied.
+
+
+
+ Returns a new query that will stream the results instead of buffering.
+
+ A new query with AsStreaming applied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Exception thrown by when it was expected that SaveChanges for an entity would
+ result in a database update but in fact no rows in the database were affected. This usually indicates
+ that the database has been concurrently updated such that a concurrency token that was expected to match
+ did not actually match.
+ Note that state entries referenced by this exception are not serialized due to security and accesses to
+ the state entries after serialization will return null.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The inner exception.
+
+
+
+ Initializes a new instance of the DbUpdateConcurrencyException class with the specified serialization information and context.
+
+ The data necessary to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+
+ Exception thrown by when the saving of changes to the database fails.
+ Note that state entries referenced by this exception are not serialized due to security and accesses to the
+ state entries after serialization will return null.
+
+
+
+
+ Gets objects that represents the entities that could not
+ be saved to the database.
+
+ The entries representing the entities that could not be saved.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The inner exception.
+
+
+
+ Initializes a new instance of the DbUpdateException class with the specified serialization information and context.
+
+ The data necessary to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+
+ Sets the with information about the exception.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+
+ Loads or saves models from/into .edmx files at a specified location.
+
+
+
+
+ Initializes a new DefaultDbModelStore instance.
+
+ The parent directory for the .edmx files.
+
+
+
+ Gets the location of the .edmx files.
+
+
+
+
+ Loads a model from the store.
+
+ The type of context representing the model.
+ The loaded metadata model.
+
+
+
+ Retrieves an edmx XDocument version of the model from the store.
+
+ The type of context representing the model.
+ The loaded XDocument edmx.
+
+
+
+ Saves a model to the store.
+
+ The type of context representing the model.
+ The metadata model to save.
+
+
+
+ Gets the path of the .edmx file corresponding to the specified context type.
+
+ A context type.
+ The .edmx file path.
+
+
+
+ Validates the model store is valid.
+ The default implementation verifies that the .edmx file was last
+ written after the context assembly was last written.
+
+ The type of context representing the model.
+ The path of the stored model.
+ Whether the edmx file should be invalidated.
+
+
+
+ An that doesn't retry operations if they fail.
+
+
+
+
+ Returns false to indicate that will not retry the execution after a failure.
+
+
+
+
+ Executes the specified operation once.
+
+ A delegate representing an executable operation that doesn't return any results.
+
+
+
+ Executes the specified operation once and returns the result.
+
+
+ The return type of .
+
+
+ A delegate representing an executable operation that returns the result of type .
+
+ The result from the operation.
+
+
+
+ Executes the specified asynchronous operation once, without retrying on failure.
+
+ A function that returns a started task.
+
+ A cancellation token used to cancel the retry operation, but not operations that are already in flight
+ or that already completed successfully.
+
+
+ A task that will run to completion if the original task completes successfully.
+
+
+
+
+ Executes the specified asynchronous operation once, without retrying on failure.
+
+
+ The result type of the returned by .
+
+ A function that returns a started task.
+
+ A cancellation token used to cancel the retry operation, but not operations that are already in flight
+ or that already completed successfully.
+
+
+ A task that will run to completion if the original task completes successfully.
+
+
+
+
+ A default implementation of that uses the
+ underlying provider to get the manifest token.
+ Note that to avoid multiple queries, this implementation using caching based on the actual type of
+ instance, the property,
+ and the property.
+
+
+
+
+
+
+
+ Event arguments passed to event handlers.
+
+
+
+
+ Returns a snapshot of the that is about to be locked.
+ Use the GetService methods on this object to get services that have been registered.
+
+
+
+
+ Call this method to add a instance to the Chain of
+ Responsibility of resolvers that are used to resolve dependencies needed by the Entity Framework.
+
+
+ Resolvers are asked to resolve dependencies in reverse order from which they are added. This means
+ that a resolver can be added to override resolution of a dependency that would already have been
+ resolved in a different way.
+ The only exception to this is that any dependency registered in the application's config file
+ will always be used in preference to using a dependency resolver added here, unless the
+ overrideConfigFile is set to true in which case the resolver added here will also override config
+ file settings.
+
+ The resolver to add.
+ If true, then the resolver added will take precedence over settings in the config file.
+
+
+
+ Call this method to add a instance to the Chain of Responsibility
+ of resolvers that are used to resolve dependencies needed by the Entity Framework. Unlike the AddDependencyResolver
+ method, this method puts the resolver at the bottom of the Chain of Responsibility such that it will only
+ be used to resolve a dependency that could not be resolved by any of the other resolvers.
+
+ The resolver to add.
+
+
+
+ Adds a wrapping resolver to the configuration that is about to be locked. A wrapping
+ resolver is a resolver that incepts a service would have been returned by the resolver
+ chain and wraps or replaces it with another service of the same type.
+
+ The type of service to wrap or replace.
+ A delegate that takes the unwrapped service and key and returns the wrapped or replaced service.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation used for resolving
+ factories.
+
+
+ This class can be used by to aid in the resolving
+ of factories as a default service for the provider.
+
+ The type of execution strategy that is resolved.
+
+
+
+ Initializes a new instance of
+
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
+
+
+ A string that will be matched against the server name in the connection string. null will match anything.
+
+ A function that returns a new instance of an execution strategy.
+
+
+
+ If the given type is , then this resolver will attempt
+ to return the service to use, otherwise it will return null. When the given type is
+ Func{IExecutionStrategy}, then the key is expected to be an .
+
+ The service type to resolve.
+ A key used to make a determination of the service to return.
+
+ An , or null.
+
+
+
+
+ If the given type is , then this resolver will attempt
+ to return the service to use, otherwise it will return an empty enumeration. When the given type is
+ Func{IExecutionStrategy}, then the key is expected to be an .
+
+ The service type to resolve.
+ A key used to make a determination of the service to return.
+
+ An enumerable of , or an empty enumeration.
+
+
+
+
+ This interface is implemented by any object that can resolve a dependency, either directly
+ or through use of an external container.
+
+
+ The public services currently resolved using IDbDependencyResolver are documented here:
+ http://msdn.microsoft.com/en-us/data/jj680697
+
+
+
+
+ Attempts to resolve a dependency for a given contract type and optionally a given key.
+ If the resolver cannot resolve the dependency then it must return null and not throw. This
+ allows resolvers to be used in a Chain of Responsibility pattern such that multiple resolvers
+ can be asked to resolve a dependency until one finally does.
+
+ The interface or abstract base class that defines the dependency to be resolved. The returned object is expected to be an instance of this type.
+ Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key.
+ The resolved dependency, which must be an instance of the given contract type, or null if the dependency could not be resolved.
+
+
+
+ Attempts to resolve a dependencies for a given contract type and optionally a given key.
+ If the resolver cannot resolve the dependency then it must return an empty enumeration and
+ not throw. This method differs from in that it returns all registered
+ services for the given type and key combination.
+
+ The interface or abstract base class that defines the dependency to be resolved. Every returned object is expected to be an instance of this type.
+ Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key.
+ All services that resolve the dependency, which must be instances of the given contract type, or an empty enumeration if the dependency could not be resolved.
+
+
+
+ Extension methods to call the method using
+ a generic type parameter and/or no name.
+
+
+
+
+ Calls passing the generic type of the method and the given
+ name as arguments.
+
+ The contract type to resolve.
+ The resolver to use.
+ The key of the dependency to resolve.
+ The resolved dependency, or null if the resolver could not resolve it.
+
+
+
+ Calls passing the generic type of the method as
+ the type argument and null for the name argument.
+
+ The contract type to resolve.
+ The resolver to use.
+ The resolved dependency, or null if the resolver could not resolve it.
+
+
+
+ Calls passing the given type argument and using
+ null for the name argument.
+
+ The resolver to use.
+ The contract type to resolve.
+ The resolved dependency, or null if the resolver could not resolve it.
+
+
+
+ Calls passing the generic type of the method and the given
+ name as arguments.
+
+ The contract type to resolve.
+ The resolver to use.
+ The key of the dependency to resolve.
+ All resolved dependencies, or an if no services are resolved.
+
+
+
+ Calls passing the generic type of the method as
+ the type argument and null for the name argument.
+
+ The contract type to resolve.
+ The resolver to use.
+ All resolved dependencies, or an if no services are resolved.
+
+
+
+ Calls passing the given type argument and using
+ null for the name argument.
+
+ The resolver to use.
+ The contract type to resolve.
+ All resolved dependencies, or an if no services are resolved.
+
+
+
+ Implements to resolve a dependency such that it always returns
+ the same instance.
+
+ The type that defines the contract for the dependency that will be resolved.
+
+ This class is immutable such that instances can be accessed by multiple threads at the same time.
+
+
+
+
+ Constructs a new resolver that will return the given instance for the contract type
+ regardless of the key passed to the Get method.
+
+ The instance to return.
+
+
+
+ Constructs a new resolver that will return the given instance for the contract type
+ if the given key matches exactly the key passed to the Get method.
+
+ The instance to return.
+ Optionally, the key of the dependency to be resolved. This may be null for dependencies that are not differentiated by key.
+
+
+
+ Constructs a new resolver that will return the given instance for the contract type
+ if the given key matches the key passed to the Get method based on the given predicate.
+
+ The instance to return.
+ A predicate that takes the key object and returns true if and only if it matches.
+
+
+
+
+
+
+
+
+
+ An implementation used for resolving
+ factories.
+
+
+
+
+ Initializes a new instance of
+
+ A function that returns a new instance of a transaction handler.
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which the transaction handler will be used.
+ null will match anything.
+
+
+ A string that will be matched against the server name in the connection string. null will match anything.
+
+
+
+
+ If the given type is , then this method will attempt
+ to return the service to use, otherwise it will return null. When the given type is
+ , then the key is expected to be a .
+
+ The service type to resolve.
+ A key used to make a determination of the service to return.
+
+ An , or null.
+
+
+
+
+ If the given type is , then this resolver will attempt
+ to return the service to use, otherwise it will return an empty enumeration. When the given type is
+ , then the key is expected to be an .
+
+ The service type to resolve.
+ A key used to make a determination of the service to return.
+
+ An enumerable of , or an empty enumeration.
+
+
+
+
+
+
+
+
+
+
+ Provides utility methods for reading from an App.config or Web.config file.
+
+
+
+
+ Initializes a new instance of .
+
+ The configuration to read from.
+
+
+
+ Gets the specified provider services from the configuration.
+
+ The invariant name of the provider services.
+ The provider services type name, or null if not found.
+
+
+
+ Used for design-time scenarios where the user's code needs to be executed inside
+ of an isolated, runtime-like .
+
+ Instances of this class should be created inside of the guest domain.
+ Handlers should be created inside of the host domain. To invoke operations,
+ create instances of the nested classes inside
+
+
+
+
+ Initializes a new instance of the class. Do this inside of the guest
+ domain.
+
+ The path for the assembly containing the user's code.
+ The parameter is not used.
+
+
+
+ Used to get the assembly-qualified name of the DbProviderServices type for the
+ specified provider invariant name.
+
+
+
+
+ Represents an operation.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An object to handle callbacks during the operation.
+
+
+
+ Executes an action passing exceptions to the handler.
+
+ The action to execute.
+
+
+
+ Executes an action passing the result or exceptions to the handler.
+
+ The result type.
+ The action to execute.
+
+
+
+ Executes an action passing results or exceptions to the handler.
+
+ The type of results.
+ The action to execute.
+
+
+
+ Base handler type. Handlers aren't required to use this exact type. Only the
+ namespace, name, and member signatures need to be the same. This also applies to
+ handler contracts types
+
+
+
+
+ Indicates whether the specified contract is implemented by this handler.
+
+ The full name of the contract interface.
+ True if the contract is implemented, otherwise false.
+
+
+
+ Used to handle reported design-time activity.
+
+
+
+
+ Invoked when an error is reported.
+
+ The message.
+
+
+
+ Invoked when a warning is reported.
+
+ The message.
+
+
+
+ Invoked when information is reported.
+
+ The message.
+
+
+
+ Invoked when verbose information is reported.
+
+ The message.
+
+
+
+ A contract handlers can use to accept a single result.
+
+
+
+
+
+ Sets the result.
+
+ The result.
+
+
+
+ Invoked when an error occurs.
+
+ The exception type.
+ The error message.
+ The stack trace.
+ true if the error was handled; otherwise, false.
+
+
+
+ Used to handle reported design-time activity.
+
+
+
+
+ Initializes a new instance of the class.
+
+ A callback for .
+ A callback for .
+ A callback for .
+ A callback for .
+
+
+
+ Invoked when an error is reported.
+
+ The message.
+
+
+
+ Invoked when a warning is reported.
+
+ The message.
+
+
+
+ Invoked when information is reported.
+
+ The message.
+
+
+
+ Invoked when verbose information is reported.
+
+ The message.
+
+
+
+ Used with to handle operation results.
+
+
+
+
+ Gets a value indicating whether a result is available.
+
+ A value indicating whether a result is available.
+
+
+
+ Gets the result.
+
+ The result.
+
+
+
+ Gets the type of the exception if any.
+
+ The exception type.
+
+
+
+ Gets the error message if any.
+
+ The error message.
+
+
+
+ Get the error stack trace if any.
+
+ The stack trace.
+
+
+
+ Invoked when a result is available.
+
+ The result.
+
+
+
+ Invoked when an error occurs.
+
+ The exception type.
+ The error message.
+ The stack trace.
+
+
+
+ Represents an entity used to store metadata about an EDM in the database.
+
+
+
+
+ Gets or sets the ID of the metadata entity, which is currently always 1.
+
+ The id.
+
+
+
+ Gets or sets the model hash which is used to check whether the model has
+ changed since the database was created from it.
+
+ The model hash.
+
+
+
+ Attempts to get the model hash calculated by Code First for the given context.
+ This method will return null if the context is not being used in Code First mode.
+
+ The context.
+ The hash string.
+
+
+
+ Utility class for reading a metadata model from .edmx.
+
+
+
+
+ Reads a metadata model from .edmx.
+
+ XML reader for the .edmx
+ Default database schema used by the model.
+ The loaded metadata model.
+
+
+
+ Contains methods used to access the Entity Data Model created by Code First in the EDMX form.
+ These methods are typically used for debugging when there is a need to look at the model that
+ Code First creates internally.
+
+
+
+
+ Uses Code First with the given context and writes the resulting Entity Data Model to the given
+ writer in EDMX form. This method can only be used with context instances that use Code First
+ and create the model internally. The method cannot be used for contexts created using Database
+ First or Model First, for contexts created using a pre-existing , or
+ for contexts created using a pre-existing .
+
+ The context.
+ The writer.
+
+
+
+ Writes the Entity Data Model represented by the given to the
+ given writer in EDMX form.
+
+ An object representing the EDM.
+ The writer.
+
+
+
+ A key used for resolving . It consists of the ADO.NET provider invariant name
+ and the database server name as specified in the connection string.
+
+
+
+
+ Initializes a new instance of
+
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
+
+ A string that will be matched against the server name in the connection string.
+
+
+
+ The ADO.NET provider invariant name indicating the type of ADO.NET connection for which this execution strategy will be used.
+
+
+
+
+ A string that will be matched against the server name in the connection string.
+
+
+
+
+
+
+
+
+
+
+ Asynchronous version of the interface that allows elements to be retrieved asynchronously.
+ This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes.
+
+
+
+
+ Gets an enumerator that can be used to asynchronously enumerate the sequence.
+
+ Enumerator for asynchronous enumeration over the sequence.
+
+
+
+ Asynchronous version of the interface that allows elements of the enumerable sequence to be retrieved asynchronously.
+ This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes.
+
+ The type of objects to enumerate.
+
+
+
+ Gets an enumerator that can be used to asynchronously enumerate the sequence.
+
+ Enumerator for asynchronous enumeration over the sequence.
+
+
+
+ Asynchronous version of the interface that allows elements to be retrieved asynchronously.
+ This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes.
+
+
+
+
+ Advances the enumerator to the next element in the sequence, returning the result asynchronously.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the sequence.
+
+
+
+
+ Gets the current element in the iteration.
+
+
+
+
+ Asynchronous version of the interface that allows elements to be retrieved asynchronously.
+ This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes.
+
+ The type of objects to enumerate.
+
+
+
+ Gets the current element in the iteration.
+
+
+
+
+ Defines methods to create and asynchronously execute queries that are described by an
+ object.
+ This interface is used to interact with Entity Framework queries and shouldn't be implemented by custom classes.
+
+
+
+
+ Asynchronously executes the query represented by a specified expression tree.
+
+ An expression tree that represents a LINQ query.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the value that results from executing the specified query.
+
+
+
+
+ Asynchronously executes the strongly-typed query represented by a specified expression tree.
+
+ The type of the value that results from executing the query.
+ An expression tree that represents a LINQ query.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the value that results from executing the specified query.
+
+
+
+
+ Implementations of this interface are used to create DbConnection objects for
+ a type of database server based on a given database name.
+ An Instance is set on the class to
+ cause all DbContexts created with no connection information or just a database
+ name or connection string to use a certain type of database server by default.
+ Two implementations of this interface are provided:
+ is used to create connections to Microsoft SQL Server, including EXPRESS editions.
+ is used to create connections to Microsoft SQL
+ Server Compact Editions.
+ Other implementations for other database servers can be added as needed.
+ Note that implementations should be thread safe or immutable since they may
+ be accessed by multiple threads at the same time.
+
+
+
+
+ Creates a connection based on the given database name or connection string.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ A factory for creating derived instances. Implement this
+ interface to enable design-time services for context types that do not have a
+ public default constructor.
+ At design-time, derived instances can be created in order to enable specific
+ design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation
+ for derived types that do not have a public, default constructor, implement
+ this interface. Design-time services will auto-discover implementations of this interface that are in the
+ same assembly as the derived type.
+
+ The type of the context.
+
+
+
+ Creates a new instance of a derived type.
+
+ An instance of TContext
+
+
+
+ A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs.
+
+
+
+
+ Indicates whether this might retry the execution after a failure.
+
+
+
+
+ Executes the specified operation.
+
+ A delegate representing an executable operation that doesn't return any results.
+
+
+
+ Executes the specified operation and returns the result.
+
+
+ The return type of .
+
+
+ A delegate representing an executable operation that returns the result of type .
+
+ The result from the operation.
+
+
+
+ Executes the specified asynchronous operation.
+
+ A function that returns a started task.
+
+ A cancellation token used to cancel the retry operation, but not operations that are already in flight
+ or that already completed successfully.
+
+
+ A task that will run to completion if the original task completes successfully (either the
+ first time or after retrying transient failures). If the task fails with a non-transient error or
+ the retry limit is reached, the returned task will become faulted and the exception must be observed.
+
+
+
+
+ Executes the specified asynchronous operation and returns the result.
+
+
+ The result type of the returned by .
+
+
+ A function that returns a started task of type .
+
+
+ A cancellation token used to cancel the retry operation, but not operations that are already in flight
+ or that already completed successfully.
+
+
+ A task that will run to completion if the original task completes successfully (either the
+ first time or after retrying transient failures). If the task fails with a non-transient error or
+ the retry limit is reached, the returned task will become faulted and the exception must be observed.
+
+
+
+
+ Represents a key value that uniquely identifies an Entity Framework model that has been loaded into memory.
+
+
+
+ Determines whether the current cached model key is equal to the specified cached model key.
+ true if the current cached model key is equal to the specified cached model key; otherwise, false.
+ The cached model key to compare to the current cached model key.
+
+
+ Returns the hash function for this cached model key.
+ The hash function for this cached model key.
+
+
+
+ Implement this interface on your context to use custom logic to calculate the key used to lookup an already created model in the cache.
+ This interface allows you to have a single context type that can be used with different models in the same AppDomain,
+ or multiple context types that use the same model.
+
+
+
+ Gets the cached key associated with the provider.
+ The cached key associated with the provider.
+
+
+
+ A service for obtaining the correct from a given
+ .
+
+
+ On .NET 4.5 the provider is publicly accessible from the connection. On .NET 4 the
+ default implementation of this service uses some heuristics to find the matching
+ provider. If these fail then a new implementation of this service can be registered
+ on to provide an appropriate resolution.
+
+
+
+
+ Returns the for the given connection.
+
+ The connection.
+ The provider factory for the connection.
+
+
+
+ A service for getting a provider manifest token given a connection.
+ The class is used by default and makes use of the
+ underlying provider to get the token which often involves opening the connection.
+ A different implementation can be used instead by adding an
+ to that may use any information in the connection to return
+ the token. For example, if the connection is known to point to a SQL Server 2008 database then
+ "2008" can be returned without opening the connection.
+
+
+
+
+ Returns the manifest token to use for the given connection.
+
+ The connection for which a manifest token is required.
+ The manifest token to use.
+
+
+
+ Implement this interface to allow custom annotations represented by instances to be
+ serialized to and from the EDMX XML. Usually a serializer instance is set using the
+ method.
+
+
+
+
+ Serializes the given annotation value into a string for storage in the EDMX XML.
+
+ The name of the annotation that is being serialized.
+ The value to serialize.
+ The serialized value.
+
+
+
+ Deserializes the given string back into the expected annotation value.
+
+ The name of the annotation that is being deserialized.
+ The string to deserialize.
+ The deserialized annotation value.
+
+
+
+ This convention causes DbModelBuilder to include metadata about the model
+ when it builds the model. When creates a model by convention it will
+ add this convention to the list of those used by the DbModelBuilder. This will then result in
+ model metadata being written to the database if the DbContext is used to create the database.
+ This can then be used as a quick check to see if the model has changed since the last time it was
+ used against the database.
+ This convention can be removed from the conventions by overriding
+ the OnModelCreating method on a derived DbContext class.
+
+
+
+
+ Represents contextual information associated with calls to
+ implementations.
+
+
+ Instances of this class are publicly immutable for contextual information. To add
+ contextual information use one of the With... or As... methods to create a new
+ interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ The that will be used or has been used to start a transaction.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the given .
+
+ The isolation level to associate.
+ A new interception context associated with the given isolation level.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is the default log formatter used when some is set onto the
+ property. A different formatter can be used by creating a class that inherits from this class and overrides
+ some or all methods to change behavior.
+
+
+ To set the new formatter create a code-based configuration for EF using and then
+ set the formatter class to use with .
+ Note that setting the type of formatter to use with this method does change the way command are
+ logged when is used. It is still necessary to set a
+ onto before any commands will be logged.
+ For more low-level control over logging/interception see and
+ .
+ Interceptors can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ Creates a formatter that will not filter by any and will instead log every command
+ from any context and also commands that do not originate from a context.
+
+
+ This constructor is not used when a delegate is set on . Instead it can be
+ used by setting the formatter directly using .
+
+ The delegate to which output will be sent.
+
+
+
+ Creates a formatter that will only log commands the come from the given instance.
+
+
+ This constructor must be called by a class that inherits from this class to override the behavior
+ of .
+
+
+ The context for which commands should be logged. Pass null to log every command
+ from any context and also commands that do not originate from a context.
+
+ The delegate to which output will be sent.
+
+
+
+ The context for which commands are being logged, or null if commands from all contexts are
+ being logged.
+
+
+
+
+ Writes the given string to the underlying write delegate.
+
+ The string to write.
+
+
+
+ This property is obsolete. Using it can result in logging incorrect execution times. Call
+ instead.
+
+
+
+
+ The stopwatch used to time executions. This stopwatch is started at the end of
+ , , and
+ methods and is stopped at the beginning of the , ,
+ and methods. If these methods are overridden and the stopwatch is being used
+ then the overrides should either call the base method or start/stop the stopwatch themselves.
+
+ The interception context for which the stopwatch will be obtained.
+ The stopwatch.
+
+
+
+ This method is called before a call to or
+ one of its async counterparts is made.
+ The default implementation calls and starts the stopwatch returned from
+ .
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after a call to or
+ one of its async counterparts is made.
+ The default implementation stopsthe stopwatch returned from and calls
+ .
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before a call to or
+ one of its async counterparts is made.
+ The default implementation calls and starts the stopwatch returned from
+ .
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after a call to or
+ one of its async counterparts is made.
+ The default implementation stopsthe stopwatch returned from and calls
+ .
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before a call to or
+ one of its async counterparts is made.
+ The default implementation calls and starts the stopwatch returned from
+ .
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after a call to or
+ one of its async counterparts is made.
+ The default implementation stopsthe stopwatch returned from and calls
+ .
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ Called whenever a command is about to be executed. The default implementation of this method
+ filters by set into , if any, and then calls
+ . This method would typically only be overridden to change the
+ context filtering behavior.
+
+ The type of the operation's results.
+ The command that will be executed.
+ Contextual information associated with the command.
+
+
+
+ Called whenever a command has completed executing. The default implementation of this method
+ filters by set into , if any, and then calls
+ . This method would typically only be overridden to change the context
+ filtering behavior.
+
+ The type of the operation's results.
+ The command that was executed.
+ Contextual information associated with the command.
+
+
+
+ Called to log a command that is about to be executed. Override this method to change how the
+ command is logged to .
+
+ The type of the operation's results.
+ The command to be logged.
+ Contextual information associated with the command.
+
+
+
+ Called by to log each parameter. This method can be called from an overridden
+ implementation of to log parameters, and/or can be overridden to
+ change the way that parameters are logged to .
+
+ The type of the operation's results.
+ The command being logged.
+ Contextual information associated with the command.
+ The parameter to log.
+
+
+
+ Called to log the result of executing a command. Override this method to change how results are
+ logged to .
+
+ The type of the operation's results.
+ The command being logged.
+ Contextual information associated with the command.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection beginning the transaction.
+ Contextual information associated with the call.
+
+
+
+ Called after is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The connection that began the transaction.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection being opened.
+ Contextual information associated with the call.
+
+
+
+ Called after or its async counterpart is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The connection that was opened.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection being closed.
+ Contextual information associated with the call.
+
+
+
+ Called after is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The connection that was closed.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The connection being disposed.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection that was disposed.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The transaction being committed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The transaction that was committed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The transaction being disposed.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The transaction that was disposed.
+ Contextual information associated with the call.
+
+
+
+ Does not write to log unless overridden.
+
+ The transaction being rolled back.
+ Contextual information associated with the call.
+
+
+
+ This method is called after is invoked.
+ The default implementation of this method filters by set into
+ , if any, and then logs the event.
+
+ The transaction that was rolled back.
+ Contextual information associated with the call.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A simple logger for logging SQL and other database operations to the console or a file.
+ A logger can be registered in code or in the application's web.config /app.config file.
+
+
+
+
+ Creates a new logger that will send log output to the console.
+
+
+
+
+ Creates a new logger that will send log output to a file. If the file already exists then
+ it is overwritten.
+
+ A path to the file to which log output will be written.
+
+
+
+ Creates a new logger that will send log output to a file.
+
+ A path to the file to which log output will be written.
+ True to append data to the file if it exists; false to overwrite the file.
+
+
+
+ Stops logging and closes the underlying file if output is being written to a file.
+
+
+
+
+ Stops logging and closes the underlying file if output is being written to a file.
+
+
+ True to release both managed and unmanaged resources; False to release only unmanaged resources.
+
+
+
+
+ Starts logging. This method is a no-op if logging is already started.
+
+
+
+
+ Stops logging. This method is a no-op if logging is not started.
+
+
+
+
+ Called to start logging during Entity Framework initialization when this logger is registered.
+ as an .
+
+ Arguments to the event that this interceptor mirrors.
+ Contextual information about the event.
+
+
+
+ Used for dispatching operations to a such that any
+ registered on will be notified before and after the
+ operation executes.
+ Instances of this class are obtained through the fluent API.
+
+
+ This class is used internally by Entity Framework when executing commands. It is provided publicly so that
+ code that runs outside of the core EF assemblies can opt-in to command interception/tracing. This is
+ typically done by EF providers that are executing commands on behalf of EF.
+
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The command on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The command on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The command on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The command on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The cancellation token for the asynchronous operation.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The command on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The cancellation token for the asynchronous operation.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The command on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The cancellation token for the asynchronous operation.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Represents contextual information associated with calls into
+ implementations.
+
+
+ An instance of this class is passed to the dispatch methods of
+ and does not contain mutable information such as the result of the operation. This mutable information
+ is obtained from the that is passed to the interceptors.
+ Instances of this class are publicly immutable. To add contextual information use one of the
+ With... or As... methods to create a new interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ The that will be used or has been used to execute the command with a
+ . This property is only used for
+ and its async counterparts.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the given .
+
+ The command behavior to associate.
+ A new interception context associated with the given command behavior.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls into
+ implementations including the result of the operation.
+
+ The type of the operation's results.
+
+ Instances of this class are publicly immutable for contextual information. To add
+ contextual information use one of the With... or As... methods to create a new
+ interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ If execution of the operation completes without throwing, then this property will contain
+ the result of the operation. If the operation was suppressed or did not fail, then this property
+ will always contain the default value for the generic type.
+
+
+ When an operation completes without throwing both this property and the
+ property are set. However, the property can be set or changed by interceptors,
+ while this property will always represent the actual result returned by the operation, if any.
+
+
+
+
+ If this property is set before the operation has executed, then execution of the operation will
+ be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then
+ this property will be set to the returned result. In either case, interceptors that run
+ after the operation can change this property to change the result that will be returned.
+
+
+ When an operation completes without throwing both this property and the
+ property are set. However, this property can be set or changed by interceptors, while the
+ property will always represent the actual result returned by the
+ operation, if any.
+
+
+
+
+ When true, this flag indicates that execution of the operation has been suppressed by
+ one of the interceptors. This can be done before the operation has executed by calling
+ , by setting an to be thrown, or
+ by setting the operation result using .
+
+
+
+
+ Gets or sets a value containing arbitrary user-specified state information associated with the operation.
+
+
+
+
+ Gets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The user state set, or null if none was found for the given key.
+
+
+
+ Sets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The state to set.
+
+
+
+ Prevents the operation from being executed if called before the operation has executed.
+
+
+ Thrown if this method is called after the operation has already executed.
+
+
+
+
+ If execution of the operation fails, then this property will contain the exception that was
+ thrown. If the operation was suppressed or did not fail, then this property will always be null.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the property can be set or
+ changed by interceptors, while this property will always represent the original exception thrown.
+
+
+
+
+ If this property is set before the operation has executed, then execution of the operation will
+ be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then
+ this property will be set to the exception that was thrown. In either case, interceptors that run
+ after the operation can change this property to change the exception that will be thrown, or set this
+ property to null to cause no exception to be thrown at all.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the this property can be set or changed by
+ interceptors, while the property will always represent
+ the original exception thrown.
+
+
+
+
+ Set to the status of the after an async operation has finished. Not used for
+ synchronous operations.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the given .
+
+ The command behavior to associate.
+ A new interception context associated with the given command behavior.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class that implements . This class is a convenience for
+ use when only one or two methods of the interface actually need to have any implementation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls into
+ implementations.
+
+
+ Instances of this class are publicly immutable for contextual information. To add
+ contextual information use one of the With... or As... methods to create a new
+ interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ The original tree created by Entity Framework. Interceptors can change the
+ property to change the tree that will be used, but the
+ will always be the tree created by Entity Framework.
+
+
+
+
+ The command tree that will be used by Entity Framework. This starts as the tree contained in the
+ the property but can be set by interceptors to change
+ the tree that will be used by Entity Framework.
+
+
+
+
+ Gets or sets a value containing arbitrary user-specified state information associated with the operation.
+
+
+
+
+ Gets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The user state set, or null if none was found for the given key.
+
+
+
+ Sets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The state to set.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls into
+ implementations.
+
+
+ Instances of this class are publicly immutable for contextual information. To add
+ contextual information use one of the With... or As... methods to create a new
+ interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in
+ this interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in
+ this interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in
+ this interception context the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used for dispatching operations to a such that any
+ registered on will be notified before and after the
+ operation executes.
+ Instances of this class are obtained through the fluent API.
+
+
+ This class is used internally by Entity Framework when interacting with .
+ It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command
+ interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF.
+
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+
+ Note that the result of executing the command is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ setting .
+
+ The connection on which the operation will be executed.
+ Information about the context of the call being made, including the value to be set.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The cancellation token.
+ A task that represents the asynchronous operation.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The connection on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Represents contextual information associated with calls to that don't return any results.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls to with return type .
+
+ The return type of the target method.
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls to property setters of type on a .
+
+ The type of the target property.
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the given property value.
+
+ The value that will be assigned to the target property.
+ A new interception context associated with the given property value.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides access to all dispatchers through the fluent API.
+
+
+
+
+ Provides methods for dispatching to interceptors for
+ interception of methods on .
+
+
+
+
+ Provides methods for dispatching to interceptors for
+ interception of methods on .
+
+
+
+
+ Provides methods for dispatching to interceptors for
+ interception of methods on .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ This is the registration point for interceptors. Interceptors
+ receive notifications when EF performs certain operations such as executing commands against
+ the database. For example, see .
+
+
+
+
+ Registers a new to receive notifications. Note that the interceptor
+ must implement some interface that extends from to be useful.
+
+ The interceptor to add.
+
+
+
+ Removes a registered so that it will no longer receive notifications.
+ If the given interceptor is not registered, then this is a no-op.
+
+ The interceptor to remove.
+
+
+
+ This is the entry point for dispatching to interceptors. This is usually only used internally by
+ Entity Framework but it is provided publicly so that other code can make sure that registered
+ interceptors are called when operations are performed on behalf of EF. For example, EF providers
+ a may make use of this when executing commands.
+
+
+
+
+ Represents contextual information associated with calls into
+ implementations.
+
+
+ Note that specific types/operations that can be intercepted may use a more specific
+ interception context derived from this class. For example, if SQL is being executed by
+ a , then the DbContext will be contained in the
+ instance that is passed to the methods
+ of .
+ Instances of this class are publicly immutable for contextual information. To add
+ contextual information use one of the With... or As... methods to create a new
+ interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying state from the given
+ interception context. See
+
+ The context from which to copy state.
+
+
+
+ Gets all the instances associated with this interception context.
+
+
+ This list usually contains zero or one items. However, it can contain more than one item if
+ a single has been used to construct multiple
+ instances.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Gets all the instances associated with this interception context.
+
+
+ This list usually contains zero or one items. However, it can contain more than one item when
+ EF has created a new for use in database creation and initialization, or
+ if a single is used with multiple .
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ True if the operation is being executed asynchronously, otherwise false.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Call this method when creating a copy of an interception context in order to add new state
+ to it. Using this method instead of calling the constructor directly ensures virtual dispatch
+ so that the new type will have the same type (and any specialized state) as the context that
+ is being cloned.
+
+ A new context with all state copied.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Used for dispatching operations to a such that any
+ registered on will be notified before and after the
+ operation executes.
+ Instances of this class are obtained through the fluent API.
+
+
+ This class is used internally by Entity Framework when interacting with .
+ It is provided publicly so that code that runs outside of the core EF assemblies can opt-in to command
+ interception/tracing. This is typically done by EF providers that are executing commands on behalf of EF.
+
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The transaction on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after
+ getting .
+
+
+ Note that the value of the property is returned by this method. The result is not available
+ in the interception context passed into this method since the interception context is cloned before
+ being passed to interceptors.
+
+ The transaction on which the operation will be executed.
+ Optional information about the context of the call being made.
+ The result of the operation, which may have been modified by interceptors.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The transaction on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The transaction on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+ Sends and
+ to any
+ registered on before/after making a
+ call to .
+
+ The transaction on which the operation will be executed.
+ Optional information about the context of the call being made.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Represents contextual information associated with calls to that don't return any results.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ The connection on which the transaction was started
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The connection on which the transaction was started.
+ A new interception context that also contains the connection on which the transaction was started.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls to with return type .
+
+ The return type of the target method.
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls to
+ implementations.
+
+
+ Instances of this class are publicly immutable for contextual information. To add
+ contextual information use one of the With... or As... methods to create a new
+ interception context containing the new information.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ The that will be used or has been used to enlist a connection.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the given .
+
+ The transaction to be used in the invocation.
+ A new interception context associated with the given isolation level.
+
+
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An object that implements this interface can be registered with to
+ receive notifications when Entity Framework executes commands.
+
+
+ Interceptors can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ This method is called before a call to or
+ one of its async counterparts is made.
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after a call to or
+ one of its async counterparts is made. The result used by Entity Framework can be changed by setting
+ .
+
+
+ For async operations this method is not called until after the async task has completed
+ or failed.
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before a call to or
+ one of its async counterparts is made.
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after a call to or
+ one of its async counterparts is made. The result used by Entity Framework can be changed by setting
+ .
+
+
+ For async operations this method is not called until after the async task has completed
+ or failed.
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before a call to or
+ one of its async counterparts is made.
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after a call to or
+ one of its async counterparts is made. The result used by Entity Framework can be changed by setting
+ .
+
+
+ For async operations this method is not called until after the async task has completed
+ or failed.
+
+ The command being executed.
+ Contextual information associated with the call.
+
+
+
+ An object that implements this interface can be registered with to
+ receive notifications when Entity Framework creates command trees.
+
+
+ Interceptors can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ This method is called after a new has been created.
+ The tree that is used after interception can be changed by setting
+ while intercepting.
+
+
+ Command trees are created for both queries and insert/update/delete commands. However, query
+ command trees are cached by model which means that command tree creation only happens the
+ first time a query is executed and this notification will only happen at that time
+
+ Contextual information associated with the call.
+
+
+
+ An object that implements this interface can be registered with to
+ receive notifications when Entity Framework loads the application's .
+
+
+ Interceptors can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ Occurs during EF initialization after the has been constructed but just before
+ it is locked ready for use. Use this event to inspect and/or override services that have been
+ registered before the configuration is locked. Note that an interceptor of this type should be used carefully
+ since it may prevent tooling from discovering the same configuration that is used at runtime.
+
+
+ Handlers can only be added before EF starts to use the configuration and so handlers should
+ generally be added as part of application initialization. Do not access the DbConfiguration
+ static methods inside the handler; instead use the members of
+ to get current services and/or add overrides.
+
+ Arguments to the event that this interceptor mirrors.
+ Contextual information about the event.
+
+
+
+ An object that implements this interface can be registered with to
+ receive notifications when Entity Framework performs operations on a .
+
+
+ Interceptors can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ Called before is invoked.
+
+ The connection beginning the transaction.
+ Contextual information associated with the call.
+
+
+
+ Called after is invoked.
+ The transaction used by Entity Framework can be changed by setting
+ .
+
+ The connection that began the transaction.
+ Contextual information associated with the call.
+
+
+
+ Called before is invoked.
+
+ The connection being closed.
+ Contextual information associated with the call.
+
+
+
+ Called after is invoked.
+
+ The connection that was closed.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is set.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is set.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is invoked.
+
+ The connection being disposed.
+ Contextual information associated with the call.
+
+
+
+ Called after is invoked.
+
+ The connection that was disposed.
+ Contextual information associated with the call.
+
+
+
+ Called before is invoked.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is invoked.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before or its async counterpart is invoked.
+
+ The connection being opened.
+ Contextual information associated with the call.
+
+
+
+ Called after or its async counterpart is invoked.
+
+ The connection that was opened.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+ This is the base interface for all interfaces that provide interception points for various
+ different types and operations. For example, see .
+ Interceptors are registered on the class.
+
+
+
+
+ An object that implements this interface can be registered with to
+ receive notifications when Entity Framework commits or rollbacks a transaction.
+
+
+ Interceptors can also be registered in the config file of the application.
+ See http://go.microsoft.com/fwlink/?LinkId=260883 for more information about Entity Framework configuration.
+
+
+
+
+ Called before is retrieved.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Called before is retrieved.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ Called after is retrieved.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+ This method is called before is invoked.
+
+ The transaction being committed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after is invoked.
+
+ The transaction that was committed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before is invoked.
+
+ The transaction being disposed.
+ Contextual information associated with the call.
+
+
+
+ This method is called after is invoked.
+
+ The transaction that was disposed.
+ Contextual information associated with the call.
+
+
+
+ This method is called before is invoked.
+
+ The transaction being rolled back.
+ Contextual information associated with the call.
+
+
+
+ This method is called after is invoked.
+
+ The transaction that was rolled back.
+ Contextual information associated with the call.
+
+
+
+ Represents contextual information associated with calls that don't return any results.
+
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ When true, this flag indicates that execution of the operation has been suppressed by
+ one of the interceptors. This can be done before the operation has executed by calling
+ or by setting an to be thrown
+
+
+
+
+ Prevents the operation from being executed if called before the operation has executed.
+
+
+ Thrown if this method is called after the operation has already executed.
+
+
+
+
+ If execution of the operation fails, then this property will contain the exception that was
+ thrown. If the operation was suppressed or did not fail, then this property will always be null.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the property can be set or
+ changed by interceptors, while this property will always represent the original exception thrown.
+
+
+
+
+ If this property is set before the operation has executed, then execution of the operation will
+ be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then
+ this property will be set to the exception that was thrown. In either case, interceptors that run
+ after the operation can change this property to change the exception that will be thrown, or set this
+ property to null to cause no exception to be thrown at all.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the this property can be set or changed by
+ interceptors, while the property will always represent
+ the original exception thrown.
+
+
+
+
+ Set to the status of the after an async operation has finished. Not used for
+ synchronous operations.
+
+
+
+
+ Gets or sets a value containing arbitrary user-specified state information associated with the operation.
+
+
+
+
+ Gets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The user state set, or null if none was found for the given key.
+
+
+
+ Sets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The state to set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls with return type .
+
+ The return type of the target method.
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ If execution of the operation completes without throwing, then this property will contain
+ the result of the operation. If the operation was suppressed or did not fail, then this property
+ will always contain the default value for the generic type.
+
+
+ When an operation completes without throwing both this property and the
+ property are set. However, the property can be set or changed by interceptors,
+ while this property will always represent the actual result returned by the operation, if any.
+
+
+
+
+ If this property is set before the operation has executed, then execution of the operation will
+ be suppressed and the set result will be returned instead. Otherwise, if the operation succeeds, then
+ this property will be set to the returned result. In either case, interceptors that run
+ after the operation can change this property to change the result that will be returned.
+
+
+ When an operation completes without throwing both this property and the
+ property are set. However, this property can be set or changed by interceptors, while the
+ property will always represent the actual result returned by the
+ operation, if any.
+
+
+
+
+ When true, this flag indicates that execution of the operation has been suppressed by
+ one of the interceptors. This can be done before the operation has executed by calling
+ , by setting an to be thrown, or
+ by setting the operation result using .
+
+
+
+
+ Gets or sets a value containing arbitrary user-specified state information associated with the operation.
+
+
+
+
+ Gets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The user state set, or null if none was found for the given key.
+
+
+
+ Sets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The state to set.
+
+
+
+ Prevents the operation from being executed if called before the operation has executed.
+
+
+ Thrown if this method is called after the operation has already executed.
+
+
+
+
+ If execution of the operation fails, then this property will contain the exception that was
+ thrown. If the operation was suppressed or did not fail, then this property will always be null.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the property can be set or
+ changed by interceptors, while this property will always represent the original exception thrown.
+
+
+
+
+ If this property is set before the operation has executed, then execution of the operation will
+ be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then
+ this property will be set to the exception that was thrown. In either case, interceptors that run
+ after the operation can change this property to change the exception that will be thrown, or set this
+ property to null to cause no exception to be thrown at all.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the this property can be set or changed by
+ interceptors, while the property will always represent
+ the original exception thrown.
+
+
+
+
+ Set to the status of the after an async operation has finished. Not used for
+ synchronous operations.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents contextual information associated with calls to property setters of type .
+
+
+ An instance of this class is passed to the dispatch methods and does not contain mutable information such as
+ the result of the operation. This mutable information is obtained from the
+ that is passed to the interceptors. Instances of this class are publicly immutable. To add contextual information
+ use one of the With... or As... methods to create a new interception context containing the new information.
+
+ The type of the target property.
+
+
+
+ Constructs a new with no state.
+
+
+
+
+ Creates a new by copying immutable state from the given
+ interception context. Also see
+
+ The context from which to copy state.
+
+
+
+ The value that will be assigned to the target property.
+
+
+
+
+ Gets or sets a value containing arbitrary user-specified state information associated with the operation.
+
+
+
+
+ Gets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The user state set, or null if none was found for the given key.
+
+
+
+ Sets a value containing arbitrary user-specified state information associated with the operation.
+
+ A key used to identify the user state.
+ The state to set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the given property value.
+
+ The value that will be assigned to the target property.
+ A new interception context associated with the given property value.
+
+
+
+
+
+
+ When true, this flag indicates that execution of the operation has been suppressed by
+ one of the interceptors. This can be done before the operation has executed by calling
+ or by setting an to be thrown
+
+
+
+
+ Prevents the operation from being executed if called before the operation has executed.
+
+
+ Thrown if this method is called after the operation has already executed.
+
+
+
+
+ If execution of the operation fails, then this property will contain the exception that was
+ thrown. If the operation was suppressed or did not fail, then this property will always be null.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the property can be set or
+ changed by interceptors, while this property will always represent the original exception thrown.
+
+
+
+
+ If this property is set before the operation has executed, then execution of the operation will
+ be suppressed and the set exception will be thrown instead. Otherwise, if the operation fails, then
+ this property will be set to the exception that was thrown. In either case, interceptors that run
+ after the operation can change this property to change the exception that will be thrown, or set this
+ property to null to cause no exception to be thrown at all.
+
+
+ When an operation fails both this property and the property are set
+ to the exception that was thrown. However, the this property can be set or changed by
+ interceptors, while the property will always represent
+ the original exception thrown.
+
+
+
+
+ Set to the status of the after an async operation has finished. Not used for
+ synchronous operations.
+
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context together with the flag set to true.
+
+ A new interception context associated with the async flag set.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+ Creates a new that contains all the contextual information in this
+ interception context with the addition of the given .
+
+ The context to associate.
+ A new interception context associated with the given context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface implemented by objects that can provide an instance.
+ The class implements this interface to provide access to the underlying
+ ObjectContext.
+
+
+
+
+ Gets the object context.
+
+ The object context.
+
+
+
+ Used by and when resolving
+ a provider invariant name from a .
+
+
+
+ Gets the name of the provider.
+ The name of the provider.
+
+
+
+ Instances of this class are used to create DbConnection objects for
+ SQL Server LocalDb based on a given database name or connection string.
+
+
+ An instance of this class can be set on the class or in the
+ app.config/web.config for the application to cause all DbContexts created with no
+ connection information or just a database name to use SQL Server LocalDb by default.
+ This class is immutable since multiple threads may access instances simultaneously
+ when creating connections.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance of the connection factory for the given version of LocalDb.
+ For SQL Server 2012 LocalDb use "v11.0".
+ For SQL Server 2014 and later LocalDb use "mssqllocaldb".
+
+ The LocalDb version to use.
+
+
+
+ Creates a new instance of the connection factory for the given version of LocalDb.
+ For SQL Server 2012 LocalDb use "v11.0".
+ For SQL Server 2014 and later LocalDb use "mssqllocaldb".
+
+ The LocalDb version to use.
+ The connection string to use for options to the database other than the 'Initial Catalog', 'Data Source', and 'AttachDbFilename'. The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the database name when CreateConnection is called. The 'Data Source' will be set based on the LocalDbVersion argument.
+
+
+
+ The connection string to use for options to the database other than the 'Initial Catalog',
+ 'Data Source', and 'AttachDbFilename'.
+ The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the
+ database name when CreateConnection is called.
+ The 'Data Source' will be set based on the LocalDbVersion argument.
+ The default is 'Integrated Security=True;'.
+
+
+
+
+ Creates a connection for SQL Server LocalDb based on the given database name or connection string.
+ If the given string contains an '=' character then it is treated as a full connection string,
+ otherwise it is treated as a database name only.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ Represents a mapping view.
+
+
+
+
+ Creates a instance having the specified entity SQL.
+
+ A string that specifies the entity SQL.
+
+
+
+ Gets the entity SQL.
+
+
+
+
+ Base abstract class for mapping view cache implementations.
+ Derived classes must have a parameterless constructor if used with .
+
+
+
+
+ Gets a hash value computed over the mapping closure.
+
+
+
+
+ Gets a view corresponding to the specified extent.
+
+ An that specifies the extent.
+ A that specifies the mapping view,
+ or null if the extent is not associated with a mapping view.
+
+
+
+ Specifies the means to create concrete instances.
+
+
+
+
+ Creates a generated view cache instance for the container mapping specified by
+ the names of the mapped containers.
+
+ The name of a container in the conceptual model.
+ The name of a container in the store model.
+
+ A that specifies the generated view cache.
+
+
+
+
+ Defines a custom attribute that specifies the mapping view cache type (subclass of )
+ associated with a context type (subclass of or ).
+ The cache type is instantiated at runtime and used to retrieve pre-generated views in the
+ corresponding context.
+
+
+
+
+ Creates a instance that associates a context type
+ with a mapping view cache type.
+
+
+ A subclass of or .
+
+
+ A subclass of .
+
+
+
+
+ Creates a instance that associates a context type
+ with a mapping view cache type.
+
+
+ A subclass of or .
+
+ The assembly qualified full name of the cache type.
+
+
+
+ This convention uses the name of the derived
+ class as the container for the conceptual model built by
+ Code First.
+
+
+
+
+ Applies the convention to the given model.
+
+ The container to apply the convention to.
+ The model.
+
+
+
+ This convention uses the namespace of the derived
+ class as the namespace of the conceptual model built by
+ Code First.
+
+
+
+
+ Compares objects using reference equality.
+
+
+
+
+ Gets the default instance.
+
+
+
+
+ Represents a custom pluralization term to be used by the
+
+
+
+
+ Get the singular.
+
+
+
+
+ Get the plural.
+
+
+
+
+ Create a new instance
+
+ A non null or empty string representing the singular.
+ A non null or empty string representing the plural.
+
+
+
+ Default pluralization service implementation to be used by Entity Framework. This pluralization
+ service is based on English locale.
+
+
+
+
+ Constructs a new instance of default pluralization service
+ used in Entity Framework.
+
+
+
+
+ Constructs a new instance of default pluralization service
+ used in Entity Framework.
+
+
+ A collection of user dictionary entries to be used by this service.These inputs
+ can customize the service according the user needs.
+
+
+
+ Returns the plural form of the specified word.
+ The plural form of the input parameter.
+ The word to be made plural.
+
+
+ Returns the singular form of the specified word.
+ The singular form of the input parameter.
+ The word to be made singular.
+
+
+
+ Pluralization services to be used by the EF runtime implement this interface.
+ By default the is used, but the pluralization service to use
+ can be set in a class derived from .
+
+
+
+
+ Pluralize a word using the service.
+
+ The word to pluralize.
+ The pluralized word
+
+
+
+ Singularize a word using the service.
+
+ The word to singularize.
+ The singularized word.
+
+
+
+ Instances of this class are used internally to create constant expressions for
+ that are inserted into the expression tree to replace references to
+ and .
+
+ The type of the element.
+
+
+
+ The public property expected in the LINQ expression tree.
+
+ The query.
+
+
+
+ The exception that is thrown when the action failed again after being retried the configured number of times.
+
+
+
+
+ Initializes a new instance of the class with no error message.
+
+
+
+
+ Initializes a new instance of the class with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception.
+
+
+
+ Instances of this class are used to create DbConnection objects for
+ SQL Server Compact Edition based on a given database name or connection string.
+
+
+ It is necessary to provide the provider invariant name of the SQL Server Compact
+ Edition to use when creating an instance of this class. This is because different
+ versions of SQL Server Compact Editions use different invariant names.
+ An instance of this class can be set on the class to
+ cause all DbContexts created with no connection information or just a database
+ name or connection string to use SQL Server Compact Edition by default.
+ This class is immutable since multiple threads may access instances simultaneously
+ when creating connections.
+
+
+
+
+ Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString
+ properties.
+
+ The provider invariant name that specifies the version of SQL Server Compact Edition that should be used.
+
+
+
+ Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties.
+
+ The provider invariant name that specifies the version of SQL Server Compact Edition that should be used.
+ The path to prepend to the database name that will form the file name used by SQL Server Compact Edition when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use its default for the database file location.
+ The connection string to use for options to the database other than the 'Data Source'. The Data Source will be prepended to this string based on the database name when CreateConnection is called.
+
+
+
+ The path to prepend to the database name that will form the file name used by
+ SQL Server Compact Edition when it creates or reads the database file.
+ The default value is "|DataDirectory|", which means the file will be placed
+ in the designated data directory.
+
+
+
+
+ The connection string to use for options to the database other than the 'Data Source'.
+ The Data Source will be prepended to this string based on the database name when
+ CreateConnection is called.
+ The default is the empty string, which means no other options will be used.
+
+
+
+
+ The provider invariant name that specifies the version of SQL Server Compact Edition
+ that should be used.
+
+
+
+
+ Creates a connection for SQL Server Compact Edition based on the given database name or connection string.
+ If the given string contains an '=' character then it is treated as a full connection string,
+ otherwise it is treated as a database name only.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ Instances of this class are used to create DbConnection objects for
+ SQL Server based on a given database name or connection string. By default, the connection is
+ made to '.\SQLEXPRESS'. This can be changed by changing the base connection
+ string when constructing a factory instance.
+
+
+ An instance of this class can be set on the class to
+ cause all DbContexts created with no connection information or just a database
+ name or connection string to use SQL Server by default.
+ This class is immutable since multiple threads may access instances simultaneously
+ when creating connections.
+
+
+
+
+ Creates a new connection factory with a default BaseConnectionString property of
+ 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True;'.
+
+
+
+
+ Creates a new connection factory with the given BaseConnectionString property.
+
+ The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will be prepended to this string based on the database name when CreateConnection is called.
+
+
+
+ The connection string to use for options to the database other than the 'Initial Catalog'.
+ The 'Initial Catalog' will be prepended to this string based on the database name when
+ CreateConnection is called.
+ The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True;'.
+
+
+
+
+ Creates a connection for SQL Server based on the given database name or connection string.
+ If the given string contains an '=' character then it is treated as a full connection string,
+ otherwise it is treated as a database name only.
+
+ The database name or connection string.
+ An initialized DbConnection.
+
+
+
+ This attribute can be applied to either an entire derived class or to
+ individual or properties on that class. When applied
+ any discovered or properties will still be included
+ in the model but will not be automatically initialized.
+
+
+
+
+ Implemented by Entity Framework providers and used to check whether or not tables exist
+ in a given database. This is used by database initializers when determining whether or not to
+ treat an existing database as empty such that tables should be created.
+
+
+
+
+ When overridden in a derived class checks where the given tables exist in the database
+ for the given connection.
+
+
+ The context for which table checking is being performed, usually used to obtain an appropriate
+ .
+
+
+ A connection to the database. May be open or closed; should be closed again if opened. Do not
+ dispose.
+
+ The tables to check for existence.
+ The name of the EdmMetadata table to check for existence.
+ True if any of the model tables or EdmMetadata table exists.
+
+
+
+ Helper method to get the table name for the given s-space .
+
+ The s-space entity set for the table.
+ The table name.
+
+
+
+ Thrown when an error occurs committing a .
+
+
+
+
+ Initializes a new instance of
+
+
+
+
+ Initializes a new instance of
+
+ The exception message.
+
+
+
+ Initializes a new instance of
+
+ The exception message.
+ The inner exception.
+
+
+
+ Initializes a new instance of the class.
+
+ The data necessary to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+
+ A transaction handler that allows to gracefully recover from connection failures
+ during transaction commit by storing transaction tracing information in the database.
+ It needs to be registered by using .
+
+
+ This transaction handler uses to store the transaction information
+ the schema used can be configured by creating a class derived from
+ that overrides and passing it to the constructor of this class.
+
+
+
+
+ Initializes a new instance of the class using the default .
+
+
+ One of the Initialize methods needs to be called before this instance can be used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The transaction context factory.
+
+ One of the Initialize methods needs to be called before this instance can be used.
+
+
+
+
+ Gets the transaction context.
+
+
+ The transaction context.
+
+
+
+
+ The map between the store transactions and the transaction tracking objects
+
+
+
+
+ Creates a new instance of an to use for quering the transaction log.
+ If null the default will be used.
+
+ An instance or null.
+
+
+
+
+
+
+
+
+
+ Gets the number of transactions to be executed on the context before the transaction log will be cleaned.
+ The default value is 20.
+
+
+
+
+
+
+
+
+
+
+ Stores the tracking information for the new transaction to the database in the same transaction.
+
+ The connection that began the transaction.
+ Contextual information associated with the call.
+
+
+
+
+ If there was an exception thrown checks the database for this transaction and rethrows it if not found.
+ Otherwise marks the commit as succeeded and queues the transaction information to be deleted.
+
+ The transaction that was committed.
+ Contextual information associated with the call.
+
+
+
+
+ Stops tracking the transaction that was rolled back.
+
+ The transaction that was rolled back.
+ Contextual information associated with the call.
+
+
+
+
+ Stops tracking the transaction that was disposed.
+
+ The transaction that was disposed.
+ Contextual information associated with the call.
+
+
+
+
+ Removes all the transaction history.
+
+
+ This method should only be invoked when there are no active transactions to remove any leftover history
+ that was not deleted due to catastrophic failures
+
+
+
+
+ Asynchronously removes all the transaction history.
+
+
+ This method should only be invoked when there are no active transactions to remove any leftover history
+ that was not deleted due to catastrophic failures
+
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously removes all the transaction history.
+
+
+ This method should only be invoked when there are no active transactions to remove any leftover history
+ that was not deleted due to catastrophic failures
+
+ The cancellation token.
+ A task that represents the asynchronous operation.
+
+
+
+ Adds the specified transaction to the list of transactions that can be removed from the database
+
+ The transaction to be removed from the database.
+
+
+
+ Removes the transactions marked for deletion.
+
+
+
+
+ Asynchronously removes the transactions marked for deletion.
+
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously removes the transactions marked for deletion.
+
+ The cancellation token.
+ A task that represents the asynchronous operation.
+
+
+
+ Removes the transactions marked for deletion if their number exceeds .
+
+
+ if set to true will remove all the old transactions even if their number does not exceed .
+
+
+ if set to true the operation will be executed using the associated execution strategy
+
+
+
+
+ Removes the transactions marked for deletion if their number exceeds .
+
+
+ if set to true will remove all the old transactions even if their number does not exceed .
+
+
+ if set to true the operation will be executed using the associated execution strategy
+
+ The cancellation token.
+ A task that represents the asynchronous operation.
+
+
+
+ Gets the associated with the if there is one;
+ otherwise returns null.
+
+ The context
+ The associated .
+
+
+
+ Gets the associated with the if there is one;
+ otherwise returns null.
+
+ The context
+ The associated .
+
+
+
+ This class is used by to write and read transaction tracing information
+ from the database.
+ To customize the definition of the transaction table you can derive from
+ this class and override . Derived classes can be registered
+ using .
+
+
+ By default EF will poll the resolved to check wether the database schema is compatible and
+ will try to modify it accordingly if it's not. To disable this check call
+ Database.SetInitializer<TTransactionContext>(null) where TTransactionContext is the type of the resolved context.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection used by the context for which the transactions will be recorded.
+
+
+
+ Gets or sets a that can be used to read and write instances.
+
+
+
+
+
+
+
+ The base class for interceptors that handle the transaction operations. Derived classes can be registered using
+ or
+ .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ One of the Initialize methods needs to be called before this instance can be used.
+
+
+
+
+ Initializes this instance using the specified context.
+
+ The context for which transaction operations will be handled.
+
+
+
+ Initializes this instance using the specified context.
+
+ The context for which transaction operations will be handled.
+ The connection to use for the initialization.
+
+ This method is called by migrations. It is important that no action is performed on the
+ specified context that causes it to be initialized.
+
+
+
+
+ Gets the context.
+
+
+ The for which the transaction operations will be handled.
+
+
+
+
+ Gets the context.
+
+
+ The for which the transaction operations will be handled, could be null.
+
+
+
+
+ Gets the connection.
+
+
+ The for which the transaction operations will be handled.
+
+
+ This connection object is only used to determine whether a particular operation needs to be handled
+ in cases where a context is not available.
+
+
+
+
+
+
+
+ Gets or sets a value indicating whether this transaction handler is disposed.
+
+
+ true if disposed; otherwise, false.
+
+
+
+
+ Releases the resources used by this transaction handler.
+
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+
+ Checks whether the supplied interception context contains the target context
+ or the supplied connection is the same as the one used by the target context.
+
+ A connection.
+ An interception context.
+
+ true if the supplied interception context contains the target context or
+ the supplied connection is the same as the one used by the target context if
+ the supplied interception context doesn't contain any contexts; false otherwise.
+
+
+ Note that calling this method will trigger initialization of any DbContext referenced from the
+
+
+
+
+ When implemented in a derived class returns the script to prepare the database
+ for this transaction handler.
+
+ A script to change the database schema for this transaction handler.
+
+
+
+ Can be implemented in a derived class.
+
+ The connection beginning the transaction.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection that began the transaction.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection being closed.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection that was closed.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection being disposed.
+ Contextual information associated with the call.
+
+
+
+ Can be implemented in a derived class.
+
+ The connection that was disposed.
+ Contextual information associated with the call.
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection being opened.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection that was opened.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The connection.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction being committed.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction that was committed.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction being disposed.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction that was disposed.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction being rolled back.
+ Contextual information associated with the call.
+
+
+
+
+ Can be implemented in a derived class.
+
+ The transaction that was rolled back.
+ Contextual information associated with the call.
+
+
+
+
+ Rrepresents a transaction
+
+
+
+
+ A unique id assigned to a transaction object.
+
+
+
+
+ The local time when the transaction was started.
+
+
+
+
+
+
+
+
+
+
+ Thrown when a context is generated from the templates in Database First or Model
+ First mode and is then used in Code First mode.
+
+
+ Code generated using the T4 templates provided for Database First and Model First use may not work
+ correctly if used in Code First mode. To use these classes with Code First please add any additional
+ configuration using attributes or the DbModelBuilder API and then remove the code that throws this
+ exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The inner exception.
+
+
+
+ Allows configuration to be performed for an complex type in a model.
+ A ComplexTypeConfiguration can be obtained via the ComplexType method on
+ or a custom type derived from ComplexTypeConfiguration
+ can be registered via the Configurations property on .
+
+ The complex type to be configured.
+
+
+
+ Initializes a new instance of ComplexTypeConfiguration
+
+
+
+
+ Excludes a property from the model so that it will not be mapped to the database.
+
+ The type of the property to be ignored.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The same ComplexTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows derived configuration classes for entities and complex types to be registered with a
+ .
+
+
+ Derived configuration classes are created by deriving from
+ or and using a type to be included in the model as the generic
+ parameter.
+ Configuration can be performed without creating derived configuration classes via the Entity and ComplexType
+ methods on .
+
+
+
+
+ Discovers all types that inherit from or
+ in the given assembly and adds an instance
+ of each discovered type to this registrar.
+
+
+ Note that only types that are abstract or generic type definitions are skipped. Every
+ type that is discovered and added must provide a parameterless constructor.
+
+ The assembly containing model configurations to add.
+ The same ConfigurationRegistrar instance so that multiple calls can be chained.
+
+
+
+ Adds an to the .
+ Only one can be added for each type in a model.
+
+ The entity type being configured.
+ The entity type configuration to be added.
+ The same ConfigurationRegistrar instance so that multiple calls can be chained.
+
+
+
+ Adds an to the .
+ Only one can be added for each type in a model.
+
+ The complex type being configured.
+ The complex type configuration to be added
+ The same ConfigurationRegistrar instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows the conventions used by a instance to be customized.
+ The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace.
+
+
+
+
+ Discover all conventions in the given assembly and add them to the .
+
+
+ This method add all conventions ordered by type name. The order in which conventions are added
+ can have an impact on how they behave because it governs the order in which they are run.
+ All conventions found must have a parameterless public constructor.
+
+ The assembly containing conventions to be added.
+
+
+
+ Enables one or more conventions for the .
+
+ The conventions to be enabled.
+
+
+
+ Enables a convention for the .
+
+ The type of the convention to be enabled.
+
+
+
+ Enables a convention for the . This convention
+ will run after the one specified.
+
+ The type of the convention after which the enabled one will run.
+ The convention to enable.
+
+
+
+ Enables a configuration convention for the . This convention
+ will run before the one specified.
+
+ The type of the convention before which the enabled one will run.
+ The convention to enable.
+
+
+
+ Disables one or more conventions for the .
+
+ The conventions to be disabled.
+
+
+
+ Disables a convention for the .
+ The default conventions that are available for removal can be found in the
+ System.Data.Entity.ModelConfiguration.Conventions namespace.
+
+ The type of the convention to be disabled.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a lightweight convention based on
+ the properties in a model.
+
+
+
+
+ Filters the properties that this convention applies to based on a predicate.
+
+ A function to test each property for a condition.
+
+ A instance so that multiple calls can be chained.
+
+
+
+
+ Filters the properties that this convention applies to based on a predicate
+ while capturing a value to use later during configuration.
+
+ Type of the captured value.
+
+ A function to capture a value for each property. If the value is null, the
+ property will be filtered out.
+
+
+ A instance so that multiple calls can be chained.
+
+
+
+
+ Allows configuration of the properties that this convention applies to.
+
+
+ An action that performs configuration against a
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a lightweight convention based on
+ the properties of entity types in a model and a captured value.
+
+ The type of the captured value.
+
+
+
+ Allows configuration of the properties that this convention applies to.
+
+
+ An action that performs configuration against a
+ using a captured value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a lightweight convention based on
+ the entity types in a model.
+
+
+
+
+ Filters the entity types that this convention applies to based on a
+ predicate.
+
+ A function to test each entity type for a condition.
+
+ An instance so that multiple calls can be chained.
+
+
+
+
+ Filters the entity types that this convention applies to based on a predicate
+ while capturing a value to use later during configuration.
+
+ Type of the captured value.
+
+ A function to capture a value for each entity type. If the value is null, the
+ entity type will be filtered out.
+
+
+ An instance so that multiple calls can be chained.
+
+
+
+
+ Allows configuration of the entity types that this convention applies to.
+
+
+ An action that performs configuration against a
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a lightweight convention based on
+ the entity types in a model that inherit from a common, specified type.
+
+ The common type of the entity types that this convention applies to.
+
+
+
+ Filters the entity types that this convention applies to based on a
+ predicate.
+
+ A function to test each entity type for a condition.
+
+ An instance so that multiple calls can be chained.
+
+
+
+
+ Filters the entity types that this convention applies to based on a predicate
+ while capturing a value to use later during configuration.
+
+ Type of the captured value.
+
+ A function to capture a value for each entity type. If the value is null, the
+ entity type will be filtered out.
+
+
+ An instance so that multiple calls can be chained.
+
+
+
+
+ Allows configuration of the entity types that this convention applies to.
+
+
+ An action that performs configuration against a
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a lightweight convention based on
+ the entity types in a model and a captured value.
+
+ Type of the captured value.
+
+
+
+ Allows configuration of the entity types that this convention applies to.
+
+
+ An action that performs configuration against a
+ using a captured value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a lightweight convention based on
+ the entity types in a model that inherit from a common, specified type and a
+ captured value.
+
+ The common type of the entity types that this convention applies to.
+ Type of the captured value.
+
+
+
+ Allows configuration of the entity types that this convention applies to.
+
+
+ An action that performs configuration against a
+ using a captured value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to modify a relationship.
+
+ The type of the entity that the relationship is being configured from.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+ The type of the property.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+ The type of the property.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+
+ Creates a convention that configures stored procedures to be used to delete entities in the database.
+
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+ The schema name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the property to configure the parameter for.
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The property to configure the parameter for.
+ The name of the parameter.
+
+
+ Configures the output parameter that returns the rows affected by this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the parameter.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a convention that configures stored procedures to be used to insert entities in the database.
+
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+ The schema name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the property to configure the parameter for.
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The property to configure the parameter for.
+ The name of the parameter.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ The name of the property to configure the result for.
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ The property to configure the result for.
+ The name of the result column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a convention that configures stored procedures to be used to modify entities in the database.
+
+
+
+
+ Creates a convention that configures stored procedures to be used to modify entities in the database.
+
+
+
+ Configures stored procedure used to insert entities.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+ Configures stored procedure used to update entities.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+ Configures stored procedure used to delete entities.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Creates a convention that configures stored procedures to be used to update entities in the database.
+
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+ The schema name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the property to configure the parameter for.
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The property to configure the parameter for.
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the property to configure the parameter for.
+ The current value parameter name.
+ The original value parameter name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The property to configure the parameter for.
+ The current value parameter name.
+ The original value parameter name.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ The name of the property to configure the result for.
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ The property to configure the result for.
+ The name of the result column.
+
+
+ Configures the output parameter that returns the rows affected by this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the parameter.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to delete entities.
+
+ The type of the entity that the stored procedure can be used to delete.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+ The schema name.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures the output parameter that returns the rows affected by this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the parameter.
+
+
+ Configures parameters for a relationship where the foreign key property is not included in the class.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A lambda expression that performs the configuration.
+ The type of the principal entity in the relationship.
+
+
+ Configures parameters for a relationship where the foreign key property is not included in the class.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A lambda expression that performs the configuration.
+ The type of the principal entity in the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to insert entities.
+
+ The type of the entity that the stored procedure can be used to insert.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+ The schema name.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+ Configures parameters for a relationship where the foreign key property is not included in the class.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A lambda expression that performs the configuration.
+ The type of the principal entity in the relationship.
+
+
+ Configures parameters for a relationship where the foreign key property is not included in the class.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A lambda expression that performs the configuration.
+ The type of the principal entity in the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship.
+
+ The type of the entity that the relationship is being configured from.
+ The type of the entity that the other end of the relationship targets.
+
+
+
+ Sets the name of the stored procedure.
+
+ Name of the procedure.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Sets the name of the stored procedure.
+
+ Name of the procedure.
+ Name of the schema.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the left key value(s).
+
+ The type of the property to configure.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the left key value(s).
+
+ The type of the property to configure.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the left key value(s).
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the left key value(s).
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the right key value(s).
+
+ The type of the property to configure.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the right key value(s).
+
+ The type of the property to configure.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the right key value(s).
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the parameter for the right key value(s).
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ Name of the parameter.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to modify a many to many relationship.
+
+ The type of the entity that the relationship is being configured from.
+ The type of the entity that the other end of the relationship targets.
+
+
+ Configures stored procedure used to insert relationships.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+ Configures stored procedure used to delete relationships.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Performs configuration of a stored procedure uses to modify an entity in the database.
+
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to modify entities.
+
+ The type of the entity that the stored procedure can be used to modify.
+
+
+ Configures stored procedure used to insert entities.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+ Configures stored procedure used to update entities.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+ Configures stored procedure used to delete entities.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression that performs configuration for the stored procedure.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a stored procedure that is used to update entities.
+
+ The type of the entity that the stored procedure can be used to update.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+
+
+ Configures the name of the stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The stored procedure name.
+ The schema name.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the parameter.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The current value parameter name.
+ The original value parameter name.
+
+
+ Configures a parameter for this stored procedure.
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The current value parameter name.
+ The original value parameter name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The current value parameter name.
+ The original value parameter name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The current value parameter name.
+ The original value parameter name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The current value parameter name.
+ The original value parameter name.
+
+
+ Configures a parameter for this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the parameter for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The current value parameter name.
+ The original value parameter name.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The type of the property to configure.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+
+ Configures a column of the result for this stored procedure to map to a property.
+ This is used for database generated columns.
+
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the property to configure the result for. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The name of the result column.
+
+
+ Configures the output parameter that returns the rows affected by this stored procedure.
+ The same configuration instance so that multiple calls can be chained.
+ The name of the parameter.
+
+
+ Configures parameters for a relationship where the foreign key property is not included in the class.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A lambda expression that performs the configuration.
+ The type of the principal entity in the relationship.
+
+
+ Configures parameters for a relationship where the foreign key property is not included in the class.
+ The same configuration instance so that multiple calls can be chained.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A lambda expression that performs the configuration.
+ The type of the principal entity in the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the table and column mapping for an entity type or a sub-set of properties from an entity type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+ The entity type to be mapped.
+
+
+ Initializes a new instance of the class.
+
+
+
+ Configures the properties that will be included in this mapping fragment.
+ If this method is not called then all properties that have not yet been
+ included in a mapping fragment will be configured.
+
+ An anonymous type including the properties to be mapped.
+ A lambda expression to an anonymous type that contains the properties to be mapped. C#: t => new { t.Id, t.Property1, t.Property2 } VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 }
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ The type of the property being configured.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ The type of the property being configured.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is included in this mapping fragment.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Re-maps all properties inherited from base types.
+ When configuring a derived type to be mapped to a separate table this will cause all properties to
+ be included in the table rather than just the non-inherited properties. This is known as
+ Table per Concrete Type (TPC) mapping.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name to be mapped to.
+
+ Name of the table.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name and schema to be mapped to.
+
+ Name of the table.
+ Schema of the table.
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the table to which this entity is mapped. The annotation
+ value can later be used when processing the table such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the discriminator column used to differentiate between types in an inheritance hierarchy.
+
+ The name of the discriminator column.
+ A configuration object to further configure the discriminator column and values.
+
+
+
+ Configures the discriminator condition used to differentiate between types in an inheritance hierarchy.
+
+ The type of the property being used to discriminate between types.
+ A lambda expression representing the property being used to discriminate between types. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object to further configure the discriminator condition.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Used to configure a column with length facets for an entity type or complex type. This configuration functionality is exposed by the Code First Fluent API, see .
+
+
+
+ Configures the column to allow the maximum length supported by the database provider.
+ The same instance so that multiple calls can be chained.
+
+
+ Configures the column to have the specified maximum length.
+ The same instance so that multiple calls can be chained.
+ The maximum length for the column. Setting the value to null will remove any maximum length restriction from the column and a default length will be used for the database column.
+
+
+ Configures the column to be fixed length.
+ The same instance so that multiple calls can be chained.
+
+
+ Configures the column to be variable length.
+ The same instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the condition to require a value in the property.
+ Rows that do not have a value assigned to column that this property is stored in are
+ assumed to be of the base type of this entity type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Configures a primitive column from an entity type.
+
+
+
+ Configures the primitive column to be optional.
+ The same instance so that multiple calls can be chained.
+
+
+ Configures the primitive column to be required.
+ The same instance so that multiple calls can be chained.
+
+
+ Configures the data type of the primitive column used to store the property.
+ The same instance so that multiple calls can be chained.
+ The name of the database provider specific data type.
+
+
+ Configures the order of the primitive column used to store the property. This method is also used to specify key ordering when an entity type has a composite key.
+ The same instance so that multiple calls can be chained.
+ The order that this column should appear in the database table.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Configures a database column used to store a string values.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the column to allow the maximum length supported by the database provider.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+
+ The maximum length for the property. Setting 'null' will result in a default length being used for the column.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be variable length.
+ Columns are variable length by default.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be optional.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to be required.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column.
+
+ Name of the database provider specific data type.
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column.
+
+ The order that this column should appear in the database table.
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the column to support Unicode string content.
+
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the column supports Unicode string content.
+
+ Value indicating if the column supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the column. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same StringColumnConfiguration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures a discriminator column used to differentiate between types in an inheritance hierarchy.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the discriminator value used to identify the entity type being
+ configured from other types in the inheritance hierarchy.
+
+ Type of the discriminator value.
+ The value to be used to identify the entity type.
+ A configuration object to configure the column used to store discriminator values.
+
+
+
+ Configures the discriminator value used to identify the entity type being
+ configured from other types in the inheritance hierarchy.
+
+ Type of the discriminator value.
+ The value to be used to identify the entity type.
+ A configuration object to configure the column used to store discriminator values.
+
+
+
+ Configures the discriminator value used to identify the entity type being
+ configured from other types in the inheritance hierarchy.
+
+ The value to be used to identify the entity type.
+ A configuration object to configure the column used to store discriminator values.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Configures an index.
+
+
+
+
+ Configures the index to be unique.
+
+ The same IndexConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether the index will be unique.
+
+ Value indicating if the index should be unique or not.
+ The same IndexConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the index to be clustered.
+
+ The same IndexConfigurationBase instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the index will be clustered.
+
+ Value indicating if the index should be clustered or not.
+ The same IndexConfigurationBase instance so that multiple calls can be chained.
+
+
+
+ Configures the index to have a specific name.
+
+ Value indicating what the index name should be.
+ The same IndexConfigurationBase instance so that multiple calls can be chained.
+
+
+
+ Configures a primary key index.
+
+
+
+
+ Configures the index to be clustered.
+
+ The same IndexConfigurationBase instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the index will be clustered.
+
+ Value indicating if the index should be clustered or not.
+ The same IndexConfigurationBase instance so that multiple calls can be chained.
+
+
+
+ Configures the index to have a specific name.
+
+ Value indicating what the index name should be.
+ The same IndexConfigurationBase instance so that multiple calls can be chained.
+
+
+
+ Configures a many relationship from an entity type.
+
+ The entity type that the relationship originates from.
+ The entity type that the relationship targets.
+
+
+
+ Configures the relationship to be many:many with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:many without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:required with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:required without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:optional with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be many:optional without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Configures an optional relationship from an entity type.
+
+ The entity type that the relationship originates from.
+ The entity type that the relationship targets.
+
+
+
+ Configures the relationship to be optional:many with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:many without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:required with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:required without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional with a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional without a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional with a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+ A lambda expression representing the navigation property on the other end of the relationship.
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be optional:optional without a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Configures an required relationship from an entity type.
+
+ The entity type that the relationship originates from.
+ The entity type that the relationship targets.
+
+
+
+ Configures the relationship to be required:many with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:many without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:optional with a navigation property on the other side of the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:optional without a navigation property on the other side of the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required with a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required without a navigation property on the other side of the relationship.
+ The entity type being configured will be the dependent and contain a foreign key to the principal.
+ The entity type that the relationship targets will be the principal in the relationship.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required with a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+ An lambda expression representing the navigation property on the other end of the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures the relationship to be required:required without a navigation property on the other side of the relationship.
+ The entity type being configured will be the principal in the relationship.
+ The entity type that the relationship targets will be the dependent and contain a foreign key to the principal.
+
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Base class for performing configuration of a relationship.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures a relationship that can support cascade on delete functionality.
+
+
+
+
+ Configures cascade delete to be on for the relationship.
+
+
+
+
+ Configures whether or not cascade delete is on for the relationship.
+
+ Value indicating if cascade delete is on or not.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Configures a relationship that can support foreign key properties that are exposed in the object model.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+ The dependent entity type.
+
+
+
+ Configures the relationship to use foreign key property(s) that are exposed in the object model.
+ If the foreign key property(s) are not exposed in the object model then use the Map method.
+
+ The type of the key.
+ A lambda expression representing the property to be used as the foreign key. If the foreign key is made up of multiple properties then specify an anonymous type including the properties. When using multiple foreign key properties, the properties must be specified in the same order that the primary key properties were configured for the principal entity type.
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the name of the column(s) for the foreign key.
+
+ The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the primary key properties were configured for the target entity type.
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for a database column that has been configured with .
+ The annotation value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The name of the column that was configured with the HasKey method.
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name that the foreign key column(s) reside in.
+ The table that is specified must already be mapped for the entity type.
+ If you want the foreign key(s) to reside in their own table then use the Map method
+ on to perform
+ entity splitting to create the table with just the primary key property. Foreign keys can
+ then be added to the table via this method.
+
+ Name of the table.
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name and schema that the foreign key column(s) reside in.
+ The table that is specified must already be mapped for the entity type.
+ If you want the foreign key(s) to reside in their own table then use the Map method
+ on to perform
+ entity splitting to create the table with just the primary key property. Foreign keys can
+ then be added to the table via this method.
+
+ Name of the table.
+ Schema of the table.
+ The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures a relationship that can only support foreign key properties that are not exposed in the object model.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the relationship to use foreign key property(s) that are not exposed in the object model.
+ The column(s) and table can be customized by specifying a configuration action.
+ If an empty configuration action is specified then column name(s) will be generated by convention.
+ If foreign key properties are exposed in the object model then use the HasForeignKey method.
+ Not all relationships support exposing foreign key properties in the object model.
+
+ Action that configures the foreign key column(s) and table.
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the table and column mapping of a many:many relationship.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the join table name for the relationship.
+
+ Name of the table.
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the join table name and schema for the relationship.
+
+ Name of the table.
+ Schema of the table.
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the join table. The annotation value can later be used when
+ processing the table such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the column(s) for the left foreign key.
+ The left foreign key points to the parent entity of the navigation property specified in the HasMany call.
+
+ The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the primary key properties were configured for the target entity type.
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the column(s) for the right foreign key.
+ The right foreign key points to the parent entity of the navigation property specified in the WithMany call.
+
+ The foreign key column names. When using multiple foreign key properties, the properties must be specified in the same order that the primary key properties were configured for the target entity type.
+ The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+
+
+ Determines whether the specified object is equal to the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+ The object to compare with the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures a many:many relationship.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+ The type of the parent entity of the navigation property specified in the HasMany call.
+ The type of the parent entity of the navigation property specified in the WithMany call.
+
+
+
+ Configures the foreign key column(s) and table used to store the relationship.
+
+ Action that configures the foreign key column(s) and table.
+ The same instance so that multiple calls can be chained.
+
+
+
+ Configures stored procedures to be used for modifying this relationship.
+ The default conventions for procedure and parameter names will be used.
+
+ The same instance so that multiple calls can be chained.
+
+
+
+ Configures stored procedures to be used for modifying this relationship.
+
+
+ Configuration to override the default conventions for procedure and parameter names.
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+ The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be variable length.
+ properties are variable length by default.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+ properties are optional by default.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending
+ on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which
+ set of conventions are being used.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+ Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be a row version in the database.
+ The actual data type will vary depending on the database provider being used.
+ Setting the property to be a row version will automatically configure it to be an
+ optimistic concurrency token.
+
+ The same BinaryPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+ properties are required by default.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending
+ on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which
+ set of conventions are being used.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+ Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the precision of the property.
+ If the database provider does not support precision for the data type of the column then the value is ignored.
+
+ Precision of the property.
+ The same DateTimePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+ properties are required by default.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending
+ on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which
+ set of conventions are being used.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+ Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the precision and scale of the property.
+
+ The precision of the property.
+ The scale of the property.
+ The same DecimalPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property with length facets for an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+ The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be variable length.
+ Properties are variable length by default.
+
+ The same LengthPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a primitive property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending
+ on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which
+ set of conventions are being used.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+ Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the parameter used in stored procedures for this property.
+
+ Name of the parameter.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same PrimitivePropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Used to configure a property in a mapping fragment.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the name of the database column used to store the property, in a mapping fragment.
+
+ The name of the column.
+ The same PropertyMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same PropertyMappingConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a property of an entity type or complex type.
+ This configuration functionality is available via the Code First Fluent API, see .
+
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to have the specified maximum length.
+
+ The maximum length for the property. Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column..
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be variable length.
+ properties are variable length by default.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+ properties are optional by default.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures how values for the property are generated by the database.
+
+
+ The pattern used to generate values for the property in the database.
+ Setting 'null' will cause the default option to be used, which may be 'None', 'Identity', or 'Computed' depending
+ on the type of the property, its semantics in the model (e.g. primary keys are treated differently), and which
+ set of conventions are being used.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+ Value indicating if the property is a concurrency token or not. Specifying 'null' will remove the concurrency token facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the property to support Unicode string content.
+
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures whether or not the property supports Unicode string content.
+
+ Value indicating if the property supports Unicode string content or not. Specifying 'null' will remove the Unicode facet from the property. Specifying 'null' will cause the same runtime behavior as specifying 'false'.
+ The same StringPropertyConfiguration instance so that multiple calls can be chained.
+
+
+
+ Used to configure a primitive property of an entity type or complex type.
+ This configuration functionality is available via lightweight conventions.
+
+
+
+
+ Gets the for this property.
+
+
+
+
+ Configures the name of the database column used to store the property.
+
+ The name of the column.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Sets an annotation in the model for the database column used to store the property. The annotation
+ value can later be used when processing the column such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Calling this method will have no effect if the
+ annotation with the given name has already been configured.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures the name of the parameter used in stored procedures for this property.
+
+ Name of the parameter.
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Configures the order of the database column used to store the property.
+ This method is also used to specify key ordering when an entity type has a composite key.
+
+ The order that this column should appear in the database table.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the data type of the database column used to store the property.
+
+ Name of the database provider specific data type.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the property to be used as an optimistic concurrency token.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures whether or not the property is to be used as an optimistic concurrency token.
+
+ Value indicating if the property is a concurrency token or not.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures how values for the property are generated by the database.
+
+ The pattern used to generate values for the property in the database.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the property to be optional.
+ The database column used to store this property will be nullable.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the property to be required.
+ The database column used to store this property will be non-nullable.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the property to support Unicode string content.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property is not a .
+
+
+
+
+ Configures whether or not the property supports Unicode string content.
+
+ Value indicating if the property supports Unicode string content or not.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property is not a .
+
+
+
+
+ Configures the property to be fixed length.
+ Use HasMaxLength to set the length that the property is fixed to.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property does not have length facets.
+
+
+
+
+ Configures the property to be variable length.
+ Properties are variable length by default.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property does not have length facets.
+
+
+
+
+ Configures the property to have the specified maximum length.
+
+ The maximum length for the property.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property does not have length facets.
+
+
+
+
+ Configures the property to allow the maximum length supported by the database provider.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property does not have length facets.
+
+
+
+
+ Configures the precision of the property.
+ If the database provider does not support precision for the data type of the column then the value is ignored.
+
+ Precision of the property.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method will throw if the property is not a .
+
+
+
+
+ Configures the precision and scale of the property.
+
+ The precision of the property.
+ The scale of the property.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method will throw if the property is not a .
+
+
+
+
+ Configures the property to be a row version in the database.
+ The actual data type will vary depending on the database provider being used.
+ Setting the property to be a row version will automatically configure it to be an
+ optimistic concurrency token.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+ This method throws if the property is not a .
+
+
+
+
+ Configures this property to be part of the entity type's primary key.
+
+
+ The same instance so that
+ multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for an entity type in a model.
+ This configuration functionality is available via lightweight conventions.
+
+
+
+
+ Gets the of this entity type.
+
+
+
+
+ Configures the entity set name to be used for this entity type.
+ The entity set name can only be configured for the base type in each set.
+
+ The name of the entity set.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Excludes this entity type from the model so that it will not be mapped to the database.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Changes this entity type to a complex type.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Excludes a property from the model so that it will not be mapped to the database.
+
+ The name of the property to be configured.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect if the property does not exist.
+
+
+
+
+ Excludes a property from the model so that it will not be mapped to the database.
+
+ The property to be configured.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect if the property does not exist.
+
+
+
+
+ Configures a property that is defined on this type.
+
+ The name of the property being configured.
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ The property being configured.
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures the primary key property for this entity type.
+
+ The name of the property to be used as the primary key.
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Configures the primary key property for this entity type.
+
+ The property to be used as the primary key.
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Configures the primary key property(s) for this entity type.
+
+ The names of the properties to be used as the primary key.
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Configures the primary key property(s) for this entity type.
+
+ The properties to be used as the primary key.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured or if any
+ property does not exist.
+
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+ The database schema of the table.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Sets an annotation in the model for the table to which this entity is mapped. The annotation
+ value can later be used when processing the table such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Calling this method will have no effect if the
+ annotation with the given name has already been configured.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures this type to use stored procedures for insert, update and delete.
+ The default conventions for procedure and parameter names will be used.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures this type to use stored procedures for insert, update and delete.
+
+
+ Configuration to override the default conventions for procedure and parameter names.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for an entity type in a model.
+ This configuration functionality is available via lightweight conventions.
+
+ A type inherited by the entity type.
+
+
+
+ Gets the of this entity type.
+
+
+
+
+ Configures the entity set name to be used for this entity type.
+ The entity set name can only be configured for the base type in each set.
+
+ The name of the entity set.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Excludes this entity type from the model so that it will not be mapped to the database.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Changes this entity type to a complex type.
+
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Excludes a property from the model so that it will not be mapped to the database.
+
+ The type of the property to be ignored.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+
+ The same instance so that multiple calls can be chained.
+
+
+
+
+ Configures a property that is defined on this type.
+
+ The type of the property being configured.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures the primary key property(s) for this entity type.
+
+ The type of the key.
+ A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 }
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+ The database schema of the table.
+
+ The same instance so that multiple calls can be chained.
+
+
+ Calling this will have no effect once it has been configured.
+
+
+
+
+ Sets an annotation in the model for the table to which this entity is mapped. The annotation
+ value can later be used when processing the table such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Calling this method will have no effect if the
+ annotation with the given name has already been configured.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures this type to use stored procedures for insert, update and delete.
+ The default conventions for procedure and parameter names will be used.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures this type to use stored procedures for insert, update and delete.
+
+
+ Configuration to override the default conventions for procedure and parameter names.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Allows configuration to be performed for a type in a model.
+
+ The type to be configured.
+
+
+
+ Configures a property that is defined on this type.
+
+ The type of the property being configured.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ The type of the property being configured.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+ Configures a property that is defined on this type.
+
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to configure the property.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ A general purpose class for Code First conventions that read attributes from .NET properties
+ and generate column annotations based on those attributes.
+
+ The type of attribute to discover.
+ The type of annotation that will be created.
+
+
+
+ Constructs a convention that will create column annotations with the given name and
+ using the given factory delegate.
+
+ The name of the annotations to create.
+ A factory for creating the annotation on each column.
+
+
+
+ A general purpose class for Code First conventions that read attributes from .NET types
+ and generate table annotations based on those attributes.
+
+ The type of attribute to discover.
+ The type of annotation that will be created.
+
+
+
+ Constructs a convention that will create table annotations with the given name and
+ using the given factory delegate.
+
+ The name of the annotations to create.
+ A factory for creating the annotation on each table.
+
+
+
+ Convention to process instances of found on properties in the model
+
+
+
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on foreign key properties in the model.
+
+
+
+
+
+
+
+ A convention for discovering attributes on properties and generating
+ column annotations in the model.
+
+
+
+
+ Constructs a new instance of the convention.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Base class for conventions that process CLR attributes found on primitive properties in the model.
+
+ The type of the attribute to look for.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Applies this convention to a property that has an attribute of type TAttribute applied.
+
+ The configuration for the property that has the attribute.
+ The attribute.
+
+
+
+ Base class for conventions that process CLR attributes found on properties of types in the model.
+
+
+ Note that the derived convention will be applied for any non-static property on the mapped type that has
+ the specified attribute, even if it wasn't included in the model.
+
+ The type of the attribute to look for.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Applies this convention to a property that has an attribute of type TAttribute applied.
+
+ The member info for the property that has the attribute.
+ The configuration for the class that contains the property.
+ The attribute.
+
+
+
+ Convention to process instances of found on navigation properties in the model.
+
+
+
+
+ Convention to process instances of found on primitive properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on properties in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on types in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on types in the model.
+
+
+
+
+
+
+
+ Convention to process instances of found on types in the model.
+
+
+
+
+
+
+
+ Base class for conventions that process CLR attributes found in the model.
+
+ The type of the attribute to look for.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Applies this convention to a class that has an attribute of type TAttribute applied.
+
+ The configuration for the class that contains the property.
+ The attribute.
+
+
+
+ A convention that doesn't override configuration.
+
+
+
+
+ The derived class can use the default constructor to apply a set rule of that change the model configuration.
+
+
+
+
+ Begins configuration of a lightweight convention that applies to all mapped types in
+ the model.
+
+ A configuration object for the convention.
+
+
+
+ Begins configuration of a lightweight convention that applies to all mapped types in
+ the model that derive from or implement the specified type.
+
+ The type of the entities that this convention will apply to.
+ A configuration object for the convention.
+ This method does not add new types to the model.
+
+
+
+ Begins configuration of a lightweight convention that applies to all properties
+ in the model.
+
+ A configuration object for the convention.
+
+
+
+ Begins configuration of a lightweight convention that applies to all primitive
+ properties of the specified type in the model.
+
+ The type of the properties that the convention will apply to.
+ A configuration object for the convention.
+
+ The convention will apply to both nullable and non-nullable properties of the
+ specified type.
+
+
+
+
+ Convention to detect navigation properties to be inverses of each other when only one pair
+ of navigation properties exists between the related types.
+
+
+
+
+
+
+
+ Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties.
+
+
+
+
+
+
+
+ Convention to apply column ordering specified via
+
+ or the API.
+
+
+
+
+
+
+
+ Validates the ordering configuration supplied for columns.
+ This base implementation is a no-op.
+
+ The name of the table that the columns belong to.
+ The definition of the table.
+
+
+
+ Convention to apply column ordering specified via
+
+ or the API. This convention throws if a duplicate configured column order
+ is detected.
+
+
+
+
+ Validates the ordering configuration supplied for columns to ensure
+ that the same ordinal was not supplied for two columns.
+
+ The name of the table that the columns belong to.
+ The definition of the table.
+
+
+
+ Convention to introduce indexes for foreign keys.
+
+
+
+
+
+
+
+ Convention to add a cascade delete to the join table from both tables involved in a many to many relationship.
+
+
+
+
+ Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties
+
+
+
+
+ Convention to set the table name to be a pluralized version of the entity type name.
+
+
+
+
+
+
+
+ Convention to set precision to 18 and scale to 2 for decimal properties.
+
+
+
+
+ Initializes a new instance of with the default precision and scale.
+
+
+
+
+ Initializes a new instance of with the specified precision and scale.
+
+ Precision
+ Scale
+
+
+
+
+
+
+ Convention to move primary key properties to appear first.
+
+
+
+
+
+
+
+ Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property.
+
+
+
+
+
+
+
+ Base class for conventions that discover foreign key properties.
+
+
+
+
+ Returns true if the convention supports pairs of entity types that have multiple associations defined between them.
+
+
+
+
+ When overridden returns true if should be part of the foreign key.
+
+ The association type being configured.
+ The dependent end.
+ The candidate property on the dependent end.
+ The principal end entity type.
+ A key property on the principal end that is a candidate target for the foreign key.
+ true if dependentProperty should be a part of the foreign key; otherwise, false.
+
+
+
+
+
+
+ Convention to process instances of found on navigation properties in the model.
+
+
+
+
+
+
+
+ Convention to detect primary key properties.
+ Recognized naming patterns in order of precedence are:
+ 1. 'Id'
+ 2. [type name]Id
+ Primary key detection is case insensitive.
+
+
+
+
+
+
+
+ Base class for conventions that discover primary key properties.
+
+
+
+
+
+
+
+ When overridden returns the subset of properties that will be part of the primary key.
+
+ The entity type.
+ The primitive types of the entities
+ The properties that should be part of the primary key.
+
+
+
+ Convention to discover foreign key properties whose names are a combination
+ of the dependent navigation property name and the principal type primary key property name(s).
+
+
+
+
+
+
+
+
+
+
+ Convention to enable cascade delete for any required relationships.
+
+
+
+
+
+
+
+ Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship.
+
+
+
+
+
+
+
+ Convention to set the entity set name to be a pluralized version of the entity type name.
+
+
+
+
+
+
+
+ Convention to discover foreign key properties whose names match the principal type primary key property name(s).
+
+
+
+
+
+
+
+ Convention to set a maximum length for properties whose type supports length facets. The default value is 128.
+
+
+
+
+ Initializes a new instance of with the default length.
+
+
+
+
+ Initializes a new instance of with the specified length.
+
+ The maximum length of properties.
+
+
+
+
+
+
+
+
+
+
+
+
+ Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider.
+
+
+
+
+ Initializes a new instance of with the default length.
+
+
+
+
+ Initializes a new instance of with the specified length.
+
+ The default maximum length for properties.
+
+
+
+
+
+
+
+
+
+ Convention to configure integer primary keys to be identity.
+
+
+
+
+
+
+
+ Convention to discover foreign key properties whose names are a combination
+ of the principal type name and the principal type primary key property name(s).
+
+
+
+
+
+
+
+ A convention that operates on the conceptual section of the model after the model is created.
+
+ The type of metadata item that this convention operates on.
+
+
+
+ Applies this convention to an item in the model.
+
+ The item to apply the convention to.
+ The model.
+
+
+
+ Identifies conventions that can be added to or removed from a instance.
+
+
+ Note that implementations of this interface must be immutable.
+
+
+
+
+ A convention that operates on the database section of the model after the model is created.
+
+ The type of metadata item that this convention operates on.
+
+
+
+ Applies this convention to an item in the model.
+
+ The item to apply the convention to.
+ The model.
+
+
+
+ Allows configuration to be performed for an entity type in a model.
+ An EntityTypeConfiguration can be obtained via the Entity method on
+ or a custom type derived from EntityTypeConfiguration
+ can be registered via the Configurations property on .
+
+ The entity type being configured.
+
+
+
+ Initializes a new instance of EntityTypeConfiguration
+
+
+
+
+ Configures the primary key property(s) for this entity type.
+
+ The type of the key.
+ A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 }
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the primary key property(s) for this entity type.
+
+ The type of the key.
+ A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 }
+ A builder to configure the key.
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures index property(s) for this entity type.
+
+ The type of the index.
+ A lambda expression representing the property to apply an index to. C#: t => t.Id VB.Net: Function(t) t.Id If the index is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 }
+ The IndexConfiguration instance so that the index can be further configured.
+
+
+
+ Configures the entity set name to be used for this entity type.
+ The entity set name can only be configured for the base type in each set.
+
+ The name of the entity set.
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Excludes a property from the model so that it will not be mapped to the database.
+
+ The type of the property to be ignored.
+ A lambda expression representing the property to be configured. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures the table name that this entity type is mapped to.
+
+ The name of the table.
+ The database schema of the table.
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Sets an annotation in the model for the table to which this entity is mapped. The annotation
+ value can later be used when processing the table such as when creating migrations.
+
+
+ It will likely be necessary to register a if the type of
+ the annotation value is anything other than a string. Passing a null value clears any annotation with
+ the given name on the column that had been previously set.
+
+ The annotation name, which must be a valid C#/EDM identifier.
+ The annotation value, which may be a string or some other type that
+ can be serialized with an .
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures this type to use stored procedures for insert, update and delete.
+ The default conventions for procedure and parameter names will be used.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Configures this type to use stored procedures for insert, update and delete.
+
+
+ Configuration to override the default conventions for procedure and parameter names.
+
+ The same configuration instance so that multiple calls can be chained.
+
+
+
+ Allows advanced configuration related to how this entity type is mapped to the database schema.
+ By default, any configuration will also apply to any type derived from this entity type.
+ Derived types can be configured via the overload of Map that configures a derived type or
+ by using an EntityTypeConfiguration for the derived type.
+ The properties of an entity can be split between multiple tables using multiple Map calls.
+ Calls to Map are additive, subsequent calls will not override configuration already preformed via Map.
+
+
+ An action that performs configuration against an
+
+ .
+
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Allows advanced configuration related to how a derived entity type is mapped to the database schema.
+ Calls to Map are additive, subsequent calls will not override configuration already preformed via Map.
+
+ The derived entity type to be configured.
+
+ An action that performs configuration against an
+
+ .
+
+ The same EntityTypeConfiguration instance so that multiple calls can be chained.
+
+
+
+ Configures an optional relationship from this entity type.
+ Instances of the entity type will be able to be saved to the database without this relationship being specified.
+ The foreign key in the database will be nullable.
+
+ The type of the entity at the other end of the relationship.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures a required relationship from this entity type.
+ Instances of the entity type will not be able to be saved to the database unless this relationship is specified.
+ The foreign key in the database will be non-nullable.
+
+ The type of the entity at the other end of the relationship.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+ Configures a many relationship from this entity type.
+
+ The type of the entity at the other end of the relationship.
+ A lambda expression representing the navigation property for the relationship. C#: t => t.MyProperty VB.Net: Function(t) t.MyProperty
+ A configuration object that can be used to further configure the relationship.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Exception thrown by during model creation when an invalid model is generated.
+
+
+
+
+ Initializes a new instance of ModelValidationException
+
+
+
+
+ Initializes a new instance of ModelValidationException
+
+ The exception message.
+
+
+
+ Initializes a new instance of ModelValidationException
+
+ The exception message.
+ The inner exception.
+
+
+ Initializes a new instance of class serialization info and streaming context.
+ The serialization info.
+ The streaming context.
+
+
+
+ By default expression like
+ .Select(x => NewProperty = func(x.Property)).Where(x => x.NewProperty == ...)
+ are simplified to avoid nested SELECT
+ In some cases, simplifying query with UDFs could caused to suboptimal plans due to calling UDF twice.
+ Also some SQL functions aren't allow in WHERE clause.
+ Disabling that behavior
+
+
+
+
+ An implementation of that will use Code First Migrations
+ to update the database to the latest version.
+
+ The type of the context.
+ The type of the migrations configuration to use during initialization.
+
+
+
+ Initializes a new instance of the MigrateDatabaseToLatestVersion class that will use
+ the connection information from a context constructed using the default constructor
+ or registered factory if applicable
+
+
+
+
+ Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to
+ use the connection information from the context that triggered initialization to perform the migration.
+
+
+ If set to true the initializer is run using the connection information from the context that
+ triggered initialization. Otherwise, the connection information will be taken from a context constructed
+ using the default constructor or registered factory if applicable.
+
+
+
+
+ Initializes a new instance of the MigrateDatabaseToLatestVersion class specifying whether to
+ use the connection information from the context that triggered initialization to perform the migration.
+ Also allows specifying migrations configuration to use during initialization.
+
+
+ If set to true the initializer is run using the connection information from the context that
+ triggered initialization. Otherwise, the connection information will be taken from a context constructed
+ using the default constructor or registered factory if applicable.
+
+ Migrations configuration to use during initialization.
+
+
+
+ Initializes a new instance of the MigrateDatabaseToLatestVersion class that will
+ use a specific connection string from the configuration file to connect to
+ the database to perform the migration.
+
+ The name of the connection string to use for migration.
+
+
+
+
+
+
+ Helper class that is used to configure a column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Creates a new column definition to store Binary data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ The maximum allowable length of the array data.
+ Value indicating whether or not all data should be padded to the maximum length.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ Value indicating whether or not this column should be configured as a timestamp.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Boolean data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Byte data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Value indicating whether or not the database will generate values for this column during insert.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store DateTime data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ The precision of the column.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Decimal data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ The numeric precision of the column.
+ The numeric scale of the column.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Value indicating whether or not the database will generate values for this column during insert.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Double data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store GUID data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Value indicating whether or not the database will generate values for this column during insert.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Single data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Short data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Value indicating whether or not the database will generate values for this column during insert.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Integer data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Value indicating whether or not the database will generate values for this column during insert.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Long data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Value indicating whether or not the database will generate values for this column during insert.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store String data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ The maximum allowable length of the string data.
+ Value indicating whether or not all data should be padded to the maximum length.
+ Value indicating whether or not the column supports Unicode content.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store Time data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ The precision of the column.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store DateTimeOffset data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ The precision of the column.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store hierarchyid data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store geography data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+ Creates a new column definition to store geometry data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Value indicating whether or not the column allows null values.
+ Constant value to use as the default value for this column.
+ SQL expression used as the default value for this column.
+ The name of the column.
+ Provider specific data type to use for this column.
+ Custom annotations usually from the Code First model.
+ The newly constructed column definition.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Creates a shallow copy of the current .
+
+ A shallow copy of the current .
+
+
+
+ Helper class that is used to configure a parameter.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Creates a new parameter definition to pass Binary data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The maximum allowable length of the array data.
+ Value indicating whether or not all data should be padded to the maximum length.
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Boolean data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Byte data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass DateTime data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The precision of the parameter.
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Decimal data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The numeric precision of the parameter.
+ The numeric scale of the parameter.
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Double data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass GUID data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Single data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Short data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Integer data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Long data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass String data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The maximum allowable length of the string data.
+ Value indicating whether or not all data should be padded to the maximum length.
+ Value indicating whether or not the parameter supports Unicode content.
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass Time data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The precision of the parameter.
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass DateTimeOffset data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The precision of the parameter.
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass geography data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+ Creates a new parameter definition to pass geometry data.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Constant value to use as the default value for this parameter.
+ SQL expression used as the default value for this parameter.
+ The name of the parameter.
+ Provider specific data type to use for this parameter.
+ A value indicating whether the parameter is an output parameter.
+ The newly constructed parameter definition.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Creates a shallow copy of the current .
+
+ A shallow copy of the current .
+
+
+
+ Helper class that is used to further configure a table being created from a CreateTable call on
+
+ .
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The type that represents the table's columns.
+
+
+
+ Initializes a new instance of the TableBuilder class.
+
+ The table creation operation to be further configured.
+ The migration the table is created in.
+
+
+
+ Specifies a primary key for the table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ A lambda expression representing the property to be used as the primary key. C#: t => t.Id VB.Net: Function(t) t.Id If the primary key is made up of multiple properties then specify an anonymous type including the properties. C#: t => new { t.Id1, t.Id2 } VB.Net: Function(t) New With { t.Id1, t.Id2 }
+ The name of the primary key. If null is supplied, a default name will be generated.
+ A value indicating whether or not this is a clustered primary key.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+ Itself, so that multiple calls can be chained.
+
+
+
+ Specifies an index to be created on the table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ A lambda expression representing the property to be indexed. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties are to be indexed then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo }
+ The name of the index.
+ A value indicating whether or not this is a unique index.
+ A value indicating whether or not this is a clustered index.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+ Itself, so that multiple calls can be chained.
+
+
+
+ Specifies a foreign key constraint to be created on the table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table that the foreign key constraint targets.
+ A lambda expression representing the properties of the foreign key. C#: t => t.PropertyOne VB.Net: Function(t) t.PropertyOne If multiple properties make up the foreign key then specify an anonymous type including the properties. C#: t => new { t.PropertyOne, t.PropertyTwo } VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo }
+ A value indicating whether or not cascade delete should be configured on the foreign key constraint.
+ The name of this foreign key constraint. If no name is supplied, a default name will be calculated.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+ Itself, so that multiple calls can be chained.
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the of the current instance.
+
+ The exact runtime type of the current instance.
+
+
+
+ Creates a shallow copy of the current .
+
+ A shallow copy of the current .
+
+
+
+ Base class for code-based migrations.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Operations to be performed during the upgrade process.
+
+
+
+
+ Operations to be performed during the downgrade process.
+
+
+
+
+ Adds an operation to create a new stored procedure.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ The body of the stored procedure.
+
+ The additional arguments that may be processed by providers. Use anonymous type syntax
+ to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create a new stored procedure.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ The action that specifies the parameters of the stored procedure.
+ The body of the stored procedure.
+
+ The additional arguments that may be processed by providers. Use anonymous type syntax
+ to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
+
+
+ The parameters in this create stored procedure operation. You do not need to specify this
+ type, it will be inferred from the parameter you supply.
+
+
+
+
+ Adds an operation to alter a stored procedure.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ The body of the stored procedure.
+
+ The additional arguments that may be processed by providers. Use anonymous type syntax
+ to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to alter a stored procedure.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The parameters in this alter stored procedure operation. You do not need to specify this
+ type, it will be inferred from the parameter you supply.
+
+
+ The name of the stored procedure. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ The action that specifies the parameters of the stored procedure.
+ The body of the stored procedure.
+
+ The additional arguments that may be processed by providers. Use anonymous type syntax
+ to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an existing stored procedure with the specified name.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the procedure to drop. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+
+ The additional arguments that may be processed by providers. Use anonymous type syntax
+ to specify arguments. For example, 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create a new table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The columns in this create table operation. You do not need to specify this type, it will
+ be inferred from the columnsAction parameter you supply.
+
+ The name of the table. Schema name is optional, if no schema is specified then dbo is assumed.
+
+ An action that specifies the columns to be included in the table. i.e. t => new { Id =
+ t.Int(identity: true), Name = t.String() }
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+ An object that allows further configuration of the table creation operation.
+
+
+
+ Adds an operation to create a new table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The columns in this create table operation. You do not need to specify this type, it will
+ be inferred from the columnsAction parameter you supply.
+
+ The name of the table. Schema name is optional, if no schema is specified then dbo is assumed.
+
+ An action that specifies the columns to be included in the table. i.e. t => new { Id =
+ t.Int(identity: true), Name = t.String() }
+
+ Custom annotations that exist on the table to be created. May be null or empty.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+ An object that allows further configuration of the table creation operation.
+
+
+
+ Adds an operation to handle changes in the annotations defined on tables.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The columns in this operation. You do not need to specify this type, it will
+ be inferred from the columnsAction parameter you supply.
+
+ The name of the table. Schema name is optional, if no schema is specified then dbo is assumed.
+
+ An action that specifies the columns to be included in the table. i.e. t => new { Id =
+ t.Int(identity: true), Name = t.String() }
+
+ The custom annotations on the table that have changed.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create a new foreign key constraint.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the foreign key column. Schema name is optional, if no schema is
+ specified then dbo is assumed.
+
+ The foreign key column.
+
+ The table that contains the column this foreign key references. Schema name is optional,
+ if no schema is specified then dbo is assumed.
+
+
+ The column this foreign key references. If no value is supplied the primary key of the
+ principal table will be referenced.
+
+
+ A value indicating if cascade delete should be configured for the foreign key
+ relationship. If no value is supplied, cascade delete will be off.
+
+
+ The name of the foreign key constraint in the database. If no value is supplied a unique name will
+ be generated.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create a new foreign key constraint.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the foreign key columns. Schema name is optional, if no schema is
+ specified then dbo is assumed.
+
+ The foreign key columns.
+
+ The table that contains the columns this foreign key references. Schema name is optional,
+ if no schema is specified then dbo is assumed.
+
+
+ The columns this foreign key references. If no value is supplied the primary key of the
+ principal table will be referenced.
+
+
+ A value indicating if cascade delete should be configured for the foreign key
+ relationship. If no value is supplied, cascade delete will be off.
+
+
+ The name of the foreign key constraint in the database. If no value is supplied a unique name will
+ be generated.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a foreign key constraint based on its name.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the foreign key column. Schema name is optional, if no schema is
+ specified then dbo is assumed.
+
+ The name of the foreign key constraint in the database.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a foreign key constraint based on the column it targets.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the foreign key column. Schema name is optional, if no schema is
+ specified then dbo is assumed.
+
+ The foreign key column.
+
+ The table that contains the column this foreign key references. Schema name is optional,
+ if no schema is specified then dbo is assumed.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a foreign key constraint based on the column it targets.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the foreign key column.
+ Schema name is optional, if no schema is specified then dbo is assumed.
+
+ The foreign key column.
+
+ The table that contains the column this foreign key references.
+ Schema name is optional, if no schema is specified then dbo is assumed.
+
+ The columns this foreign key references.
+
+ Additional arguments that may be processed by providers.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a foreign key constraint based on the columns it targets.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the foreign key columns. Schema name is optional, if no schema is
+ specified then dbo is assumed.
+
+ The foreign key columns.
+
+ The table that contains the columns this foreign key references. Schema name is optional,
+ if no schema is specified then dbo is assumed.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ Custom annotations that exist on columns of the table that is being dropped. May be null or empty.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ Custom annotations that exist on the table that is being dropped. May be null or empty.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to be dropped. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ Custom annotations that exist on the table that is being dropped. May be null or empty.
+ Custom annotations that exist on columns of the table that is being dropped. May be null or empty.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to move a table to a new schema.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to be moved. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+ The schema the table is to be moved to.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to move a stored procedure to a new schema.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the stored procedure to be moved. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The schema the stored procedure is to be moved to.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to rename a table. To change the schema of a table use MoveTable.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to be renamed. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+
+ The new name for the table. Schema name is optional, if no schema is specified then dbo is
+ assumed.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to rename a stored procedure. To change the schema of a stored procedure use MoveStoredProcedure
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the stored procedure to be renamed. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+
+ The new name for the stored procedure. Schema name is optional, if no schema is specified then
+ dbo is assumed.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to rename a column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table that contains the column to be renamed. Schema name is optional, if no
+ schema is specified then dbo is assumed.
+
+ The name of the column to be renamed.
+ The new name for the column.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to add a column to an existing table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to add the column to. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the column to be added.
+
+ An action that specifies the column to be added. i.e. c => c.Int(nullable: false,
+ defaultValue: 3)
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an existing column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to drop the column from. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the column to be dropped.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an existing column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to drop the column from. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the column to be dropped.
+ Custom annotations that exist on the column that is being dropped. May be null or empty.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to alter the definition of an existing column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table the column exists in. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the column to be changed.
+
+ An action that specifies the new definition for the column. i.e. c => c.String(nullable:
+ false, defaultValue: "none")
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create a new primary key.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the primary key column. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The primary key column.
+
+ The name of the primary key in the database. If no value is supplied a unique name will be
+ generated.
+
+ A value indicating whether or not this is a clustered primary key.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create a new primary key based on multiple columns.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the primary key columns. Schema name is optional, if no schema is
+ specified then dbo is assumed.
+
+ The primary key columns.
+
+ The name of the primary key in the database. If no value is supplied a unique name will be
+ generated.
+
+ A value indicating whether or not this is a clustered primary key.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an existing primary key that does not have the default name.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the primary key column. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the primary key to be dropped.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an existing primary key that was created with the default name.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The table that contains the primary key column. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create an index on a single column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to create the index on. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the column to create the index on.
+
+ A value indicating if this is a unique index. If no value is supplied a non-unique index will be
+ created.
+
+
+ The name to use for the index in the database. If no value is supplied a unique name will be
+ generated.
+
+ A value indicating whether or not this is a clustered index.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to create an index on multiple columns.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to create the index on. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the columns to create the index on.
+
+ A value indicating if this is a unique index. If no value is supplied a non-unique index will be
+ created.
+
+
+ The name to use for the index in the database. If no value is supplied a unique name will be
+ generated.
+
+ A value indicating whether or not this is a clustered index.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an index based on its name.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to drop the index from. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the index to be dropped.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to drop an index based on the columns it targets.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table to drop the index from. Schema name is optional, if no schema is specified
+ then dbo is assumed.
+
+ The name of the column(s) the index targets.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to rename an index.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The name of the table that contains the index to be renamed. Schema name is optional, if no
+ schema is specified then dbo is assumed.
+
+ The name of the index to be renamed.
+ The new name for the index.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to execute a SQL command or set of SQL commands.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The SQL to be executed.
+
+ A value indicating if the SQL should be executed outside of the transaction being
+ used for the migration process. If no value is supplied the SQL will be executed within the transaction.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to execute a SQL file.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The SQL file to be executed. Relative paths are assumed to be relative to the current AppDomain's BaseDirectory.
+
+
+ A value indicating if the SQL should be executed outside of the transaction being
+ used for the migration process. If no value is supplied the SQL will be executed within the transaction.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Adds an operation to execute a SQL resource file.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The manifest resource name of the SQL resource file to be executed.
+
+ The assembly containing the resource file. The calling assembly is assumed if not provided.
+
+
+ A value indicating if the SQL should be executed outside of the transaction being
+ used for the migration process. If no value is supplied the SQL will be executed within the transaction.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration relating to the use of migrations for a given model.
+ You will typically create a configuration class that derives
+ from rather than
+ using this class.
+
+
+
+
+ The default directory that migrations are stored in.
+
+
+
+
+ Initializes a new instance of the DbMigrationsConfiguration class.
+
+
+
+
+ Gets or sets a value indicating if automatic migrations can be used when migrating the database.
+
+
+
+
+ Gets or sets the string used to distinguish migrations belonging to this configuration
+ from migrations belonging to other configurations using the same database.
+ This property enables migrations from multiple different models to be applied to a single database.
+
+
+
+
+ Gets or sets a value indicating if data loss is acceptable during automatic migration.
+ If set to false an exception will be thrown if data loss may occur as part of an automatic migration.
+
+
+
+
+ Adds a new SQL generator to be used for a given database provider.
+
+ Name of the database provider to set the SQL generator for.
+ The SQL generator to be used.
+
+
+
+ Gets the SQL generator that is set to be used with a given database provider.
+
+ Name of the database provider to get the SQL generator for.
+ The SQL generator that is set for the database provider.
+
+
+
+ Adds a new factory for creating instances to be used for a given database provider.
+
+ Name of the database provider to set the SQL generator for.
+
+ A factory for creating instances for a given and
+ representing the default schema.
+
+
+
+
+ Gets the history context factory that is set to be used with a given database provider.
+
+ Name of the database provider to get thefactory for.
+ The history context factory that is set for the database provider.
+
+
+
+ Gets or sets the derived DbContext representing the model to be migrated.
+
+
+
+
+ Gets or sets the namespace used for code-based migrations.
+
+
+
+
+ Gets or sets the sub-directory that code-based migrations are stored in.
+ Note that this property must be set to a relative path for a sub-directory under the
+ Visual Studio project root; it cannot be set to an absolute path.
+
+
+
+
+ Gets or sets the code generator to be used when scaffolding migrations.
+
+
+
+
+ Gets or sets the assembly containing code-based migrations.
+
+
+
+
+ Gets or sets a value to override the connection of the database to be migrated.
+
+
+
+
+ Gets or sets the timeout value used for the individual commands within a
+ migration.
+
+
+ The time in seconds to wait for the command to execute. A null value indicates
+ that the default value of the underlying provider will be used.
+
+
+
+
+ Configuration relating to the use of migrations for a given model.
+
+ The context representing the model that this configuration applies to.
+
+
+
+ Initializes a new instance of the DbMigrationsConfiguration class.
+
+
+
+
+ Runs after upgrading to the latest migration to allow seed data to be updated.
+
+
+ Note that the database may already contain seed data when this method runs. This means that
+ implementations of this method must check whether or not seed data is present and/or up-to-date
+ and then only make changes if necessary and in a non-destructive way. The
+
+ can be used to help with this, but for seeding large amounts of data it may be necessary to do less
+ granular checks if performance is an issue.
+ If the database
+ initializer is being used, then this method will be called each time that the initializer runs.
+ If one of the , ,
+ or initializers is being used, then this method will not be
+ called and the Seed method defined in the initializer should be used instead.
+
+ Context to be used for updating seed data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DbMigrator is used to apply existing migrations to a database.
+ DbMigrator can be used to upgrade and downgrade to any given migration.
+ To scaffold migrations based on changes to your model use
+
+
+
+
+ Migration Id representing the state of the database before any migrations are applied.
+
+
+
+
+ Initializes a new instance of the DbMigrator class.
+
+ Configuration to be used for the migration process.
+
+
+
+ Initializes a new instance of the DbMigrator class using the supplied context.
+ Use this constructor when applying migrations from code to avoid having migrations attempt
+ to create a context/connection for you.
+
+ Configuration to be used for the migration process.
+ The to use.
+
+
+
+ Gets the configuration that is being used for the migration process.
+
+
+
+
+ Gets all migrations that are defined in the configured migrations assembly.
+
+ The list of migrations.
+
+
+
+ Gets all migrations that have been applied to the target database.
+
+ The list of migrations.
+
+
+
+ Gets all migrations that are defined in the assembly but haven't been applied to the target database.
+
+ The list of migrations.
+
+
+
+ Updates the target database to a given migration.
+
+ The migration to upgrade/downgrade to.
+
+
+
+ A set of extension methods for
+
+
+
+
+ Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation
+ from database terminology.
+ This method can be useful when seeding data using Migrations.
+
+ The type of entities to add or update.
+ The set to which the entities belong.
+ The entities to add or update.
+
+ When the parameter is a custom or fake IDbSet implementation, this method will
+ attempt to locate and invoke a public, instance method with the same signature as this extension method.
+
+
+
+
+ Adds or updates entities by a custom identification expression when SaveChanges is called.
+ Equivalent to an "upsert" operation from database terminology.
+ This method can useful when seeding data using Migrations.
+
+ The type of entities to add or update.
+ The set to which the entities belong.
+ An expression specifying the properties that should be used when determining whether an Add or Update operation should be performed.
+ The entities to add or update.
+
+ When the parameter is a custom or fake IDbSet implementation, this method will
+ attempt to locate and invoke a public, instance method with the same signature as this extension method.
+
+
+
+
+ Generates C# code for a code-based migration.
+
+
+
+
+
+
+
+ Generates the primary code file that the user can view and edit.
+
+ Operations to be performed by the migration.
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ The generated code.
+
+
+
+ Generates the code behind file with migration metadata.
+
+ Unique identifier of the migration.
+ Source model to be stored in the migration metadata.
+ Target model to be stored in the migration metadata.
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ The generated code.
+
+
+
+ Generates a property to return the source or target model in the code behind file.
+
+ Name of the property.
+ Value to be returned.
+ Text writer to add the generated code to.
+
+
+
+ Generates class attributes.
+
+ Text writer to add the generated code to.
+ A value indicating if this class is being generated for a code-behind file.
+
+
+
+ Generates a namespace, using statements and class definition.
+
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ Text writer to add the generated code to.
+ Base class for the generated class.
+ A value indicating if this class is being generated for a code-behind file.
+ Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used.
+
+
+
+ Generates the closing code for a class that was started with WriteClassStart.
+
+ Namespace that code should be generated in.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code for to re-create the given dictionary of annotations for use when passing
+ these annotations as a parameter of a . call.
+
+ The annotations to generate.
+ The writer to which generated code should be written.
+
+
+
+ Generates code for to re-create the given dictionary of annotations for use when passing
+ these annotations as a parameter of a . call.
+
+ The annotations to generate.
+ The writer to which generated code should be written.
+
+
+
+ Generates code for the given annotation value, which may be null. The default behavior is to use an
+ if one is registered, otherwise call ToString on the annotation value.
+
+
+ Note that a can be registered to generate code for custom annotations
+ without the need to override the entire code generator.
+
+ The name of the annotation for which code is needed.
+ The annotation value to generate.
+ The writer to which generated code should be written.
+
+
+ Generates code to perform a .
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+ Generates code to perform a .
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+ Generates code to specify the definition for a .
+ The parameter definition to generate code for.
+ Text writer to add the generated code to.
+ A value indicating whether to include the column name in the definition.
+
+
+ Generates code to perform a .
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code for an .
+
+ The operation for which code should be generated.
+ The writer to which generated code should be written.
+
+
+
+ Generates code to perform an as part of a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an as part of a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a as part of a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to specify a set of column names using a lambda expression.
+
+ The columns to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to specify the definition for a .
+
+ The column definition to generate code for.
+ Text writer to add the generated code to.
+ A value indicating whether to include the column name in the definition.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column of unknown data type.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Removes any invalid characters from the name of an database artifact.
+
+ The name to be scrubbed.
+ The scrubbed name.
+
+
+
+ Gets the type name to use for a column of the given data type.
+
+ The data type to translate.
+ The type name to use in the generated migration.
+
+
+
+ Quotes an identifier using appropriate escaping to allow it to be stored in a string.
+
+ The identifier to be quoted.
+ The quoted identifier.
+
+
+
+ Base class for providers that generate code for code-based migrations.
+
+
+
+
+ Generates the code that should be added to the users project.
+
+ Unique identifier of the migration.
+ Operations to be performed by the migration.
+ Source model to be stored in the migration metadata.
+ Target model to be stored in the migration metadata.
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ The generated code.
+
+
+
+ Gets the namespaces that must be output as "using" or "Imports" directives to handle
+ the code generated by the given operations.
+
+ The operations for which code is going to be generated.
+ An ordered list of namespace names.
+
+
+
+ Gets the default namespaces that must be output as "using" or "Imports" directives for
+ any code generated.
+
+ A value indicating if this class is being generated for a code-behind file.
+ An ordered list of namespace names.
+
+
+
+ Gets the instances that are being used.
+
+
+
+
+ Scaffolds code-based migrations to apply pending model changes to the database.
+
+
+
+
+ Initializes a new instance of the MigrationScaffolder class.
+
+ Configuration to be used for scaffolding.
+
+
+
+ Gets or sets the namespace used in the migration's generated code.
+ By default, this is the same as MigrationsNamespace on the migrations
+ configuration object passed into the constructor. For VB.NET projects, this
+ will need to be updated to take into account the project's root namespace.
+
+
+
+
+ Scaffolds a code based migration to apply any pending model changes to the database.
+
+ The name to use for the scaffolded migration.
+ The scaffolded migration.
+
+
+
+ Scaffolds a code based migration to apply any pending model changes to the database.
+
+ The name to use for the scaffolded migration.
+ Whether or not to include model changes.
+ The scaffolded migration.
+
+
+
+ Scaffolds the initial code-based migration corresponding to a previously run database initializer.
+
+ The scaffolded migration.
+
+
+
+ Represents a code-based migration that has been scaffolded and is ready to be written to a file.
+
+
+
+
+ Gets or sets the unique identifier for this migration.
+ Typically used for the file name of the generated code.
+
+
+
+
+ Gets or sets the scaffolded migration code that the user can edit.
+
+
+
+
+ Gets or sets the scaffolded migration code that should be stored in a code behind file.
+
+
+
+
+ Gets or sets the programming language used for this migration.
+ Typically used for the file extension of the generated code.
+
+
+
+
+ Gets or sets the subdirectory in the user's project that this migration should be saved in.
+
+
+
+
+ Gets a dictionary of string resources to add to the migration resource file.
+
+
+
+
+ Gets or sets whether the migration was re-scaffolded.
+
+
+
+
+ Represents an exception that occurred while running an operation in another AppDomain in the
+ .
+
+
+
+
+ Initializes a new instance of the ToolingException class.
+
+
+
+
+ Initializes a new instance of the class with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the ToolingException class.
+
+ Error that explains the reason for the exception.
+ The type of the exception that was thrown.
+ The stack trace of the exception that was thrown.
+
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Gets the type of the exception that was thrown.
+
+
+
+
+ Gets the stack trace of the exception that was thrown.
+
+
+
+
+ Helper class that is used by design time tools to run migrations related
+ commands that need to interact with an application that is being edited
+ in Visual Studio.
+ Because the application is being edited the assemblies need to
+ be loaded in a separate AppDomain to ensure the latest version
+ is always loaded.
+ The App/Web.config file from the startup project is also copied
+ to ensure that any configuration is applied.
+
+
+
+
+ Gets or sets an action to be run to log information.
+
+
+
+
+ Gets or sets an action to be run to log warnings.
+
+
+
+
+ Gets or sets an action to be run to log verbose information.
+
+
+
+
+ Initializes a new instance of the ToolingFacade class.
+
+ The name of the assembly that contains the migrations configuration to be used.
+ The name of the assembly that contains the DbContext to be used.
+ The namespace qualified name of migrations configuration to be used.
+ The working directory containing the compiled assemblies.
+ The path of the config file from the startup project.
+ The path of the application data directory from the startup project. Typically the App_Data directory for web applications or the working directory for executables.
+ The connection to the database to be migrated. If null is supplied, the default connection for the context will be used.
+
+
+
+ Releases all unmanaged resources used by the facade.
+
+
+
+
+ Gets the fully qualified name of all types deriving from .
+
+ All context types found.
+
+
+
+ Gets the fully qualified name of a type deriving from .
+
+ The name of the context type. If null, the single context type found in the assembly will be returned.
+ The context type found.
+
+
+
+ Gets a list of all migrations that have been applied to the database.
+
+ Ids of applied migrations.
+
+
+
+ Gets a list of all migrations that have not been applied to the database.
+
+ Ids of pending migrations.
+
+
+
+ Updates the database to the specified migration.
+
+ The Id of the migration to migrate to. If null is supplied, the database will be updated to the latest migration.
+ Value indicating if data loss during automatic migration is acceptable.
+
+
+
+ Generates a SQL script to migrate between two migrations.
+
+ The migration to update from. If null is supplied, a script to update the current database will be produced.
+ The migration to update to. If null is supplied, a script to update to the latest migration will be produced.
+ Value indicating if data loss during automatic migration is acceptable.
+ The generated SQL script.
+
+
+
+ Scaffolds a code-based migration to apply any pending model changes.
+
+ The name for the generated migration.
+ The programming language of the generated migration.
+ The root namespace of the project the migration will be added to.
+ Whether or not to include model changes.
+ The scaffolded migration.
+
+
+
+ Scaffolds the initial code-based migration corresponding to a previously run database initializer.
+
+ The programming language of the generated migration.
+ The root namespace of the project the migration will be added to.
+ The scaffolded migration.
+
+
+
+
+
+
+ Releases all resources used by the facade.
+
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+
+ Generates VB.Net code for a code-based migration.
+
+
+
+
+
+
+
+ Generates the primary code file that the user can view and edit.
+
+ Operations to be performed by the migration.
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ The generated code.
+
+
+
+ Generates the code behind file with migration metadata.
+
+ Unique identifier of the migration.
+ Source model to be stored in the migration metadata.
+ Target model to be stored in the migration metadata.
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ The generated code.
+
+
+
+ Generates a property to return the source or target model in the code behind file.
+
+ Name of the property.
+ Value to be returned.
+ Text writer to add the generated code to.
+
+
+
+ Generates class attributes.
+
+ Text writer to add the generated code to.
+ A value indicating if this class is being generated for a code-behind file.
+
+
+
+ Generates a namespace, using statements and class definition.
+
+ Namespace that code should be generated in.
+ Name of the class that should be generated.
+ Text writer to add the generated code to.
+ Base class for the generated class.
+ A value indicating if this class is being generated for a code-behind file.
+ Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used.
+
+
+
+ Generates the closing code for a class that was started with WriteClassStart.
+
+ Namespace that code should be generated in.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code for to re-create the given dictionary of annotations for use when passing
+ these annotations as a parameter of a . call.
+
+ The annotations to generate.
+ The writer to which generated code should be written.
+
+
+
+ Generates code for to re-create the given dictionary of annotations for use when passing
+ these annotations as a parameter of a . call.
+
+ The annotations to generate.
+ The writer to which generated code should be written.
+
+
+
+ Generates code for the given annotation value, which may be null. The default behavior is to use an
+ if one is registered, otherwise call ToString on the annotation value.
+
+
+ Note that a can be registered to generate code for custom annotations
+ without the need to override the entire code generator.
+
+ The name of the annotation for which code is needed.
+ The annotation value to generate.
+ The writer to which generated code should be written.
+
+
+ Generates code to perform a .
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+ Generates code to perform a .
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+ Generates code to perform a .
+ The parameter model definition to generate code for.
+ Text writer to add the generated code to.
+ true to include the column name in the definition; otherwise, false.
+
+
+ Generates code to perform a .
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code for an .
+
+ The operation for which code should be generated.
+ The writer to which generated code should be written.
+
+
+
+ Generates code to perform an as part of a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an as part of a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a as part of a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to specify a set of column names using a lambda expression.
+
+ The columns to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform an .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to specify the definition for a .
+
+ The column definition to generate code for.
+ Text writer to add the generated code to.
+ A value indicating whether to include the column name in the definition.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to specify the default value for a column of unknown data type.
+
+ The value to be used as the default.
+ Code representing the default value.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Generates code to perform a .
+
+ The operation to generate code for.
+ Text writer to add the generated code to.
+
+
+
+ Removes any invalid characters from the name of an database artifact.
+
+ The name to be scrubbed.
+ The scrubbed name.
+
+
+
+ Gets the type name to use for a column of the given data type.
+
+ The data type to translate.
+ The type name to use in the generated migration.
+
+
+
+ Quotes an identifier using appropriate escaping to allow it to be stored in a string.
+
+ The identifier to be quoted.
+ The quoted identifier.
+
+
+
+ This class is used by Code First Migrations to read and write migration history
+ from the database.
+ To customize the definition of the migrations history table you can derive from
+ this class and override OnModelCreating. Derived instances can either be registered
+ on a per migrations configuration basis using ,
+ or globally using .
+
+
+
+
+ The default name used for the migrations history table.
+
+
+
+
+ Initializes a new instance of the HistoryContext class.
+ If you are creating a derived history context you will generally expose a constructor
+ that accepts these same parameters and passes them to this base constructor.
+
+
+ An existing connection to use for the new context.
+
+
+ The default schema of the model being migrated.
+ This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating.
+
+
+
+
+ Gets the key used to locate a model that was previously built for this context. This is used
+ to avoid processing OnModelCreating and calculating the model every time a new context instance is created.
+ By default this property returns the default schema.
+ In most cases you will not need to override this property. However, if your implementation of OnModelCreating
+ contains conditional logic that results in a different model being built for the same database provider and
+ default schema you should override this property and calculate an appropriate key.
+
+
+
+
+ Gets the default schema of the model being migrated.
+ This schema will be used for the migrations history table unless a different schema is configured in OnModelCreating.
+
+
+
+
+ Gets or sets a that can be used to read and write instances.
+
+
+
+
+ Applies the default configuration for the migrations history table. If you override
+ this method it is recommended that you call this base implementation before applying your
+ custom configuration.
+
+ The builder that defines the model for the context being created.
+
+
+
+ This class is used by Code First Migrations to read and write migration history
+ from the database.
+
+
+
+
+ Gets or sets the Id of the migration this row represents.
+
+
+
+
+ Gets or sets a key representing to which context the row applies.
+
+
+
+
+ Gets or sets the state of the model after this migration was applied.
+
+
+
+
+ Gets or sets the version of Entity Framework that created this entry.
+
+
+
+
+ Represents an error that occurs when an automatic migration would result in data loss.
+
+
+
+
+ Initializes a new instance of the AutomaticDataLossException class.
+
+
+
+
+ Initializes a new instance of the AutomaticDataLossException class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the MigrationsException class.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled.
+
+
+
+
+ Initializes a new instance of the AutomaticMigrationsDisabledException class.
+
+
+
+
+ Initializes a new instance of the AutomaticMigrationsDisabledException class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the MigrationsException class.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Explicitly implemented by to prevent certain members from showing up
+ in the IntelliSense of scaffolded migrations.
+
+
+
+
+ Adds a custom to the migration.
+ Custom operation implementors are encouraged to create extension methods on
+ that provide a fluent-style API for adding new operations.
+
+ The operation to add.
+
+
+
+ Provides additional metadata about a code-based migration.
+
+
+
+
+ Gets the unique identifier for the migration.
+
+
+
+
+ Gets the state of the model before this migration is run.
+
+
+
+
+ Gets the state of the model after this migration is run.
+
+
+
+
+ Represents errors that occur inside the Code First Migrations pipeline.
+
+
+
+
+ Initializes a new instance of the MigrationsException class.
+
+
+
+
+ Initializes a new instance of the MigrationsException class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the MigrationsException class.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Initializes a new instance of the MigrationsException class with serialized data.
+
+
+ The that holds the serialized object data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Base class for loggers that can be used for the migrations process.
+
+
+
+
+ Logs an informational message.
+
+ The message to be logged.
+
+
+
+ Logs a warning that the user should be made aware of.
+
+ The message to be logged.
+
+
+
+ Logs some additional information that should only be presented to the user if they request verbose output.
+
+ The message to be logged.
+
+
+
+ Thrown when an operation can't be performed because there are existing migrations that have not been applied to the database.
+
+
+
+
+ Initializes a new instance of the MigrationsPendingException class.
+
+
+
+
+ Initializes a new instance of the MigrationsPendingException class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the MigrationsPendingException class.
+
+ The message that describes the error.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Base class for decorators that wrap the core
+
+
+
+
+ Initializes a new instance of the MigratorBase class.
+
+ The migrator that this decorator is wrapping.
+
+
+
+ Gets a list of the pending migrations that have not been applied to the database.
+
+ List of migration Ids
+
+
+
+ Gets the configuration being used for the migrations process.
+
+
+
+
+ Updates the target database to the latest migration.
+
+
+
+
+ Updates the target database to a given migration.
+
+ The migration to upgrade/downgrade to.
+
+
+
+ Gets a list of the migrations that are defined in the assembly.
+
+ List of migration Ids
+
+
+
+ Gets a list of the migrations that have been applied to the database.
+
+ List of migration Ids
+
+
+
+ Decorator to provide logging during migrations operations..
+
+
+
+
+ Initializes a new instance of the MigratorLoggingDecorator class.
+
+ The migrator that this decorator is wrapping.
+ The logger to write messages to.
+
+
+
+ Decorator to produce a SQL script instead of applying changes to the database.
+ Using this decorator to wrap will prevent
+ from applying any changes to the target database.
+
+
+
+
+ Initializes a new instance of the MigratorScriptingDecorator class.
+
+ The migrator that this decorator is wrapping.
+
+
+
+ Produces a script to update the database.
+
+
+ The migration to update from. If null is supplied, a script to update the
+ current database will be produced.
+
+
+ The migration to update to. If null is supplied,
+ a script to update to the latest migration will be produced.
+
+ The generated SQL script.
+
+
+
+ Represents a column being added to a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the AddColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table the column should be added to.
+ Details of the column being added.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table the column should be added to.
+
+
+
+
+ Gets the details of the column being added.
+
+
+
+
+ Gets an operation that represents dropping the added column.
+
+
+
+
+
+
+
+ Represents a foreign key constraint being added to a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the AddForeignKeyOperation class.
+ The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ The names of the column(s) that the foreign key constraint should target.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint.
+
+
+
+
+ Gets an operation to create an index on the foreign key column(s).
+
+ An operation to add the index.
+
+
+
+ Gets an operation to drop the foreign key constraint.
+
+
+
+
+
+
+
+ Represents adding a primary key to a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the AddPrimaryKeyOperation class.
+ The Table and Columns properties should also be populated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets an operation to drop the primary key.
+
+
+
+
+ Represents altering an existing column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the AlterColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table that the column belongs to.
+ Details of what the column should be altered to.
+ Value indicating if this change will result in data loss.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the AlterColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table that the column belongs to.
+ Details of what the column should be altered to.
+ Value indicating if this change will result in data loss.
+ An operation to revert this alteration of the column.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table that the column belongs to.
+
+
+
+
+ Gets the new definition for the column.
+
+
+
+
+ Gets an operation that represents reverting the alteration.
+ The inverse cannot be automatically calculated,
+ if it was not supplied to the constructor this property will return null.
+
+
+
+
+
+
+
+ Represents altering an existing stored procedure.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the stored procedure.
+ The body of the stored procedure expressed in SQL.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets an operation that will revert this operation.
+ Always returns a .
+
+
+
+
+ Represents changes made to custom annotations on a table.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the AlterTableOperation class.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table on which annotations have changed.
+ The custom annotations on the table that have changed.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Gets the name of the table on which annotations have changed.
+
+
+
+
+ Gets the columns to be included in the table for which annotations have changed.
+
+
+
+
+ Gets the custom annotations that have changed on the table.
+
+
+
+
+ Gets an operation that is the inverse of this one such that annotations will be changed back to how
+ they were before this operation was applied.
+
+
+
+
+
+
+
+ Represents information about a column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the ColumnModel class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The data type for this column.
+
+
+
+ Initializes a new instance of the ColumnModel class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The data type for this column.
+ Additional details about the data type. This includes details such as maximum length, nullability etc.
+
+
+
+ Gets the CLR type corresponding to the database type of this column.
+
+
+
+
+ Gets the default value for the CLR type corresponding to the database type of this column.
+
+
+
+
+ Gets or sets a value indicating if this column can store null values.
+
+
+
+
+ Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern.
+
+
+
+
+ Gets or sets a value indicating if this property model should be configured as a timestamp.
+
+
+
+
+ Gets or sets the custom annotations that have changed on the column.
+
+
+
+
+ Determines if this column is a narrower data type than another column.
+ Used to determine if altering the supplied column definition to this definition will result in data loss.
+
+ The column to compare to.
+ Details of the database provider being used.
+ True if this column is of a narrower data type.
+
+
+
+ Represents creating a database index.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the CreateIndexOperation class.
+ The Table and Columns properties should also be populated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets or sets a value indicating if this is a unique index.
+
+
+
+
+ Gets an operation to drop this index.
+
+
+
+
+
+
+
+ Gets or sets whether this is a clustered index.
+
+
+
+
+ A migration operation to add a new stored procedure to the database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the stored procedure.
+ The body of the stored procedure expressed in SQL.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets an operation to drop the stored procedure.
+
+
+
+
+ Represents creating a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the CreateTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table to be created.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the CreateTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table to be created.
+ Custom annotations that exist on the table to be created. May be null or empty.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table to be created.
+
+
+
+
+ Gets the columns to be included in the new table.
+
+
+
+
+ Gets or sets the primary key for the new table.
+
+
+
+
+ Gets custom annotations that exist on the table to be created.
+
+
+
+
+ Gets an operation to drop the table.
+
+
+
+
+
+
+
+ Represents a column being dropped from a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the DropColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table the column should be dropped from.
+ The name of the column to be dropped.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table the column should be dropped from.
+ The name of the column to be dropped.
+ Custom annotations that exist on the column that is being dropped. May be null or empty.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table the column should be dropped from.
+ The name of the column to be dropped.
+ The operation that represents reverting the drop operation.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table the column should be dropped from.
+ The name of the column to be dropped.
+ Custom annotations that exist on the column that is being dropped. May be null or empty.
+ The operation that represents reverting the drop operation.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table the column should be dropped from.
+
+
+
+
+ Gets the name of the column to be dropped.
+
+
+
+
+ Gets custom annotations that exist on the column that is being dropped.
+
+
+
+
+ Gets an operation that represents reverting dropping the column.
+ The inverse cannot be automatically calculated,
+ if it was not supplied to the constructor this property will return null.
+
+
+
+
+
+
+
+ Represents a foreign key constraint being dropped from a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the DropForeignKeyOperation class.
+ The PrincipalTable, DependentTable and DependentColumns properties should also be populated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropForeignKeyOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc..
+
+ The operation that represents reverting dropping the foreign key constraint.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets an operation to drop the associated index on the foreign key column(s).
+
+ An operation to drop the index.
+
+
+
+ Gets an operation that represents reverting dropping the foreign key constraint.
+ The inverse cannot be automatically calculated,
+ if it was not supplied to the constructor this property will return null.
+
+
+
+
+
+
+
+ Represents dropping an existing index.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the DropIndexOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropIndexOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The operation that represents reverting dropping the index.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets an operation that represents reverting dropping the index.
+ The inverse cannot be automatically calculated,
+ if it was not supplied to the constructor this property will return null.
+
+
+
+
+
+
+
+ Represents dropping a primary key from a table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the DropPrimaryKeyOperation class.
+ The Table and Columns properties should also be populated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets an operation to add the primary key.
+
+
+
+
+ Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key.
+
+
+ The create table operation for the migrations history table.
+
+
+
+
+ Drops a stored procedure from the database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the stored procedure to drop.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the stored procedure to drop.
+
+
+ The name of the stored procedure to drop.
+
+
+
+
+ Gets an operation that will revert this operation.
+ Always returns a .
+
+
+
+
+ Gets a value indicating if this operation may result in data loss. Always returns false.
+
+
+
+
+ Represents dropping an existing table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the DropTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table to be dropped.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table to be dropped.
+ Custom annotations that exist on the table that is being dropped. May be null or empty.
+ Custom annotations that exist on columns of the table that is being dropped. May be null or empty.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table to be dropped.
+ An operation that represents reverting dropping the table.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Initializes a new instance of the DropTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the table to be dropped.
+ Custom annotations that exist on the table that is being dropped. May be null or empty.
+ Custom annotations that exist on columns of the table that is being dropped. May be null or empty.
+ An operation that represents reverting dropping the table.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table to be dropped.
+
+
+
+
+ Gets custom annotations that exist on the table that is being dropped.
+
+
+
+
+ Gets custom annotations that exist on columns of the table that is being dropped.
+
+
+
+
+ Gets an operation that represents reverting dropping the table.
+ The inverse cannot be automatically calculated,
+ if it was not supplied to the constructor this property will return null.
+
+
+
+
+
+
+
+ Base class for changes that affect foreign key constraints.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the ForeignKeyOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets or sets the name of the table that the foreign key constraint targets.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets the name of the table that the foreign key columns exist in.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ The names of the foreign key column(s).
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets a value indicating if a specific name has been supplied for this foreign key constraint.
+
+
+
+
+ Gets or sets the name of this foreign key constraint.
+ If no name is supplied, a default name will be calculated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Operation representing DML changes to the migrations history table.
+ The migrations history table is used to store a log of the migrations that have been applied to the database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the HistoryOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ A sequence of command trees representing the operations being applied to the history table.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ A sequence of commands representing the operations being applied to the history table.
+
+
+
+
+
+
+
+ Common base class for operations affecting indexes.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Creates a default index name based on the supplied column names.
+
+ The column names used to create a default index name.
+ A default index name.
+
+
+
+ Initializes a new instance of the IndexOperation class.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to
+ specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+
+ Gets or sets the table the index belongs to.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets the columns that are indexed.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets a value indicating if a specific name has been supplied for this index.
+
+
+
+
+ Gets or sets the name of this index.
+ If no name is supplied, a default name will be calculated.
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Represents an operation to modify a database schema.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the MigrationOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue"
+ }'.
+
+
+
+
+ Gets additional arguments that may be processed by providers.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets an operation that will revert this operation.
+
+
+
+
+ Gets a value indicating if this operation may result in data loss.
+
+
+
+
+ Represents moving a stored procedure to a new schema in the database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the stored procedure to move.
+ The new schema for the stored procedure.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the stored procedure to move.
+
+
+ The name of the stored procedure to move.
+
+
+
+
+ Gets the new schema for the stored procedure.
+
+
+ The new schema for the stored procedure.
+
+
+
+
+ Gets an operation that will revert this operation.
+
+
+
+
+ Gets a value indicating if this operation may result in data loss. Always returns false.
+
+
+
+
+ Represents moving a table from one schema to another.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the MoveTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table to be moved.
+ Name of the schema to move the table to.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table to be moved.
+
+
+
+
+ Gets the name of the schema to move the table to.
+
+
+
+
+ Gets an operation that moves the table back to its original schema.
+
+
+
+
+
+
+
+ Used when altering the migrations history table so that data can be moved to the new table.
+
+
+ The context key for the model.
+
+
+
+
+ Gets a value that indicates whether this is a system table.
+
+
+ true if the table is a system table; otherwise, false.
+
+
+
+
+ Used when altering the migrations history table so that the table can be rebuilt rather than just dropping and adding the primary key.
+
+
+ The create table operation for the migrations history table.
+
+
+
+
+ Represents a migration operation that can not be performed, possibly because it is not supported by the targeted database provider.
+
+
+
+
+ Gets a value indicating if this operation may result in data loss. Always returns false.
+
+
+
+
+ Represents information about a parameter.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the ParameterModel class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The data type for this parameter.
+
+
+
+ Initializes a new instance of the ParameterModel class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The data type for this parameter.
+ Additional details about the data type. This includes details such as maximum length, nullability etc.
+
+
+
+ Gets or sets a value indicating whether this instance is out parameter.
+
+
+ true if this instance is out parameter; otherwise, false.
+
+
+
+
+ Common base class to represent operations affecting primary keys.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Returns the default name for the primary key.
+
+ The target table name.
+ The default primary key name.
+
+
+
+ Initializes a new instance of the PrimaryKeyOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets or sets the name of the table that contains the primary key.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets the column(s) that make up the primary key.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets a value indicating if a specific name has been supplied for this primary key.
+
+
+
+
+ Gets or sets the name of this primary key.
+ If no name is supplied, a default name will be calculated.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+
+
+
+ Gets or sets whether this is a clustered primary key.
+
+
+
+
+ A migration operation that affects stored procedures.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the stored procedure.
+ The body of the stored procedure expressed in SQL.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the stored procedure.
+
+
+ The name of the stored procedure.
+
+
+
+
+ Gets the body of the stored procedure expressed in SQL.
+
+
+ The body of the stored procedure expressed in SQL.
+
+
+
+
+ Gets the parameters of the stored procedure.
+
+
+ The parameters of the stored procedure.
+
+
+
+
+ Gets a value indicating if this operation may result in data loss. Always returns false.
+
+
+
+
+ Represents information about a property of an entity.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the PropertyModel class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The data type for this property model.
+ Additional details about the data type. This includes details such as maximum length, nullability etc.
+
+
+
+ Gets the data type for this property model.
+
+
+
+
+ Gets additional details about the data type of this property model.
+ This includes details such as maximum length, nullability etc.
+
+
+
+
+ Gets or sets the name of the property model.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets a provider specific data type to use for this property model.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets the maximum length for this property model.
+ Only valid for array data types.
+
+
+
+
+ Gets or sets the precision for this property model.
+ Only valid for decimal data types.
+
+
+
+
+ Gets or sets the scale for this property model.
+ Only valid for decimal data types.
+
+
+
+
+ Gets or sets a constant value to use as the default value for this property model.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets a SQL expression used as the default value for this property model.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets a value indicating if this property model is fixed length.
+ Only valid for array data types.
+
+
+
+
+ Gets or sets a value indicating if this property model supports Unicode characters.
+ Only valid for textual data types.
+
+
+
+
+ Represents renaming an existing column.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the RenameColumnOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table the column belongs to.
+ Name of the column to be renamed.
+ New name for the column.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table the column belongs to.
+
+
+
+
+ Gets the name of the column to be renamed.
+
+
+
+
+ Gets the new name for the column.
+
+
+
+
+ Gets an operation that reverts the rename.
+
+
+
+
+
+
+
+ Represents renaming an existing index.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the RenameIndexOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table the index belongs to.
+ Name of the index to be renamed.
+ New name for the index.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table the index belongs to.
+
+
+
+
+ Gets the name of the index to be renamed.
+
+
+
+
+ Gets the new name for the index.
+
+
+
+
+ Gets an operation that reverts the rename.
+
+
+
+
+
+
+
+ Represents renaming a stored procedure in the database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The name of the stored procedure to rename.
+ The new name for the stored procedure.
+ Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the stored procedure to rename.
+
+
+ The name of the stored procedure to rename.
+
+
+
+
+ Gets the new name for the stored procedure.
+
+
+ The new name for the stored procedure.
+
+
+
+
+ Gets an operation that will revert this operation.
+
+
+
+
+ Gets a value indicating if this operation may result in data loss. Always returns false.
+
+
+
+
+ Represents renaming an existing table.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the RenameTableOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ Name of the table to be renamed.
+ New name for the table.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the name of the table to be renamed.
+
+
+
+
+ Gets the new name for the table.
+
+
+
+
+ Gets an operation that reverts the rename.
+
+
+
+
+
+
+
+ Represents a provider specific SQL statement to be executed directly against the target database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Initializes a new instance of the SqlOperation class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The SQL to be executed.
+ Additional arguments that may be processed by providers. Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'.
+
+
+
+ Gets the SQL to be executed.
+
+
+
+
+ Gets or sets a value indicating whether this statement should be performed outside of
+ the transaction scope that is used to make the migration process transactional.
+ If set to true, this operation will not be rolled back if the migration process fails.
+
+
+
+
+
+
+
+ Used when scripting an update database operation to store the operations that would have been performed against the database.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Represents a migration to be applied to the database.
+
+
+
+
+ Gets the id of the migration.
+
+
+ The id of the migration.
+
+
+
+
+ Gets the individual operations applied by this migration.
+
+
+ The individual operations applied by this migration.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The queries used to determine if this migration needs to be applied to the database.
+ This is used to generate an idempotent SQL script that can be run against a database at any version.
+
+
+
+
+ The queries used to determine if this migration needs to be applied to the database.
+ This is used to generate an idempotent SQL script that can be run against a database at any version.
+
+
+
+
+ Gets the migrations applied during the update database operation.
+
+
+ The migrations applied during the update database operation.
+
+
+
+
+ Adds a migration to this update database operation.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+ The id of the migration.
+ The individual operations applied by the migration.
+
+
+
+ Gets a value indicating if any of the operations may result in data loss.
+
+
+
+
+ Common base class for providers that convert provider agnostic migration
+ operations into database provider specific SQL commands.
+
+
+
+
+ Gets or sets the provider manifest.
+
+
+ The provider manifest.
+
+
+
+
+ Converts a set of migration operations into database provider specific SQL.
+
+ The operations to be converted.
+ Token representing the version of the database being targeted.
+ A list of SQL statements to be executed to perform the migration operations.
+
+
+
+ Generates the SQL body for a stored procedure.
+
+ The command trees representing the commands for an insert, update or delete operation.
+ The rows affected parameter name.
+ The provider manifest token.
+ The SQL body for the stored procedure.
+
+
+
+ Determines if a provider specific exception corresponds to a database-level permission denied error.
+
+ The database exception.
+ true if the supplied exception corresponds to a database-level permission denied error; otherwise false.
+
+
+
+ Builds the store type usage for the specified using the facets from the specified .
+
+ Name of the store type.
+ The target property.
+ A store-specific TypeUsage
+
+
+
+ Represents a migration operation that has been translated into a SQL statement.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets the SQL to be executed to perform this migration operation.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+
+
+ Gets or sets a value indicating whether this statement should be performed outside of
+ the transaction scope that is used to make the migration process transactional.
+ If set to true, this operation will not be rolled back if the migration process fails.
+
+
+
+
+ Gets or sets the batch terminator for the database provider.
+
+ Entity Framework Migrations APIs are not designed to accept input provided by untrusted sources
+ (such as the end user of an application). If input is accepted from such sources it should be validated
+ before being passed to these APIs to protect against SQL injection attacks etc.
+
+
+ The batch terminator for the database provider.
+
+
+
+
+ The same as but works in partial trust and adds explicit caching of
+ generated indentation string and also recognizes writing a string that contains just \r\n or \n as a write-line to ensure
+ we indent the next line properly.
+
+
+
+
+ Specifies the default tab string. This field is constant.
+
+
+
+
+ Specifies the culture what will be used by the underlying TextWriter. This static property is read-only.
+ Note that any writer passed to one of the constructors of must use this
+ same culture. The culture is .
+
+
+
+
+ Gets the encoding for the text writer to use.
+
+
+ An that indicates the encoding for the text writer to use.
+
+
+
+
+ Gets or sets the new line character to use.
+
+ The new line character to use.
+
+
+
+ Gets or sets the number of spaces to indent.
+
+ The number of spaces to indent.
+
+
+
+ Gets the to use.
+
+
+ The to use.
+
+
+
+
+ Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string.
+ Note that the writer passed to this constructor must use the specified by the
+ property.
+
+
+ The to use for output.
+
+
+
+
+ Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string.
+ Note that the writer passed to this constructor must use the specified by the
+ property.
+
+
+ The to use for output.
+
+ The tab string to use for indentation.
+
+
+
+ Closes the document being written to.
+
+
+
+
+ Flushes the stream.
+
+
+
+
+ Outputs the tab string once for each level of indentation according to the
+
+ property.
+
+
+
+
+ Builds a string representing the current indentation level for a new line.
+
+
+ Does NOT check if tabs are currently pending, just returns a string that would be
+ useful in replacing embedded newline characters.
+
+ An empty string, or a string that contains .Indent level's worth of specified tab-string.
+
+
+
+ Writes the specified string to the text stream.
+
+ The string to write.
+
+
+
+ Writes the text representation of a Boolean value to the text stream.
+
+ The Boolean value to write.
+
+
+
+ Writes a character to the text stream.
+
+ The character to write.
+
+
+
+ Writes a character array to the text stream.
+
+ The character array to write.
+
+
+
+ Writes a subarray of characters to the text stream.
+
+ The character array to write data from.
+ Starting index in the buffer.
+ The number of characters to write.
+
+
+
+ Writes the text representation of a Double to the text stream.
+
+ The double to write.
+
+
+
+ Writes the text representation of a Single to the text stream.
+
+ The single to write.
+
+
+
+ Writes the text representation of an integer to the text stream.
+
+ The integer to write.
+
+
+
+ Writes the text representation of an 8-byte integer to the text stream.
+
+ The 8-byte integer to write.
+
+
+
+ Writes the text representation of an object to the text stream.
+
+ The object to write.
+
+
+
+ Writes out a formatted string, using the same semantics as specified.
+
+ The formatting string.
+ The object to write into the formatted string.
+
+
+
+ Writes out a formatted string, using the same semantics as specified.
+
+ The formatting string to use.
+ The first object to write into the formatted string.
+ The second object to write into the formatted string.
+
+
+
+ Writes out a formatted string, using the same semantics as specified.
+
+ The formatting string to use.
+ The argument array to output.
+
+
+
+ Writes the specified string to a line without tabs.
+
+ The string to write.
+
+
+
+ Writes the specified string, followed by a line terminator, to the text stream.
+
+ The string to write.
+
+
+
+ Writes a line terminator.
+
+
+
+
+ Writes the text representation of a Boolean, followed by a line terminator, to the text stream.
+
+ The Boolean to write.
+
+
+
+ Writes a character, followed by a line terminator, to the text stream.
+
+ The character to write.
+
+
+
+ Writes a character array, followed by a line terminator, to the text stream.
+
+ The character array to write.
+
+
+
+ Writes a subarray of characters, followed by a line terminator, to the text stream.
+
+ The character array to write data from.
+ Starting index in the buffer.
+ The number of characters to write.
+
+
+
+ Writes the text representation of a Double, followed by a line terminator, to the text stream.
+
+ The double to write.
+
+
+
+ Writes the text representation of a Single, followed by a line terminator, to the text stream.
+
+ The single to write.
+
+
+
+ Writes the text representation of an integer, followed by a line terminator, to the text stream.
+
+ The integer to write.
+
+
+
+ Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream.
+
+ The 8-byte integer to write.
+
+
+
+ Writes the text representation of an object, followed by a line terminator, to the text stream.
+
+ The object to write.
+
+
+
+ Writes out a formatted string, followed by a line terminator, using the same semantics as specified.
+
+ The formatting string.
+ The object to write into the formatted string.
+
+
+
+ Writes out a formatted string, followed by a line terminator, using the same semantics as specified.
+
+ The formatting string to use.
+ The first object to write into the formatted string.
+ The second object to write into the formatted string.
+
+
+
+ Writes out a formatted string, followed by a line terminator, using the same semantics as specified.
+
+ The formatting string to use.
+ The argument array to output.
+
+
+
+ Writes the text representation of a UInt32, followed by a line terminator, to the text stream.
+
+ A UInt32 to output.
+
+
+
+ An implementation of that does nothing. Using this
+ initializer disables database initialization for the given context type. Passing an instance
+ of this class to is equivalent to passing null.
+ When is being used to resolve initializers an instance of
+ this class must be used to disable initialization.
+
+ The type of the context.
+
+
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Returns an implementation that stays in sync with the given
+ .
+
+ The element type.
+ The collection that the binding list will stay in sync with.
+ The binding list.
+
+
+
+ Useful extension methods for use with Entity Framework LINQ queries.
+
+
+
+
+ Specifies the related objects to include in the query results.
+
+
+ This extension method calls the Include(String) method of the source object,
+ if such a method exists. If the source does not have a matching method,
+ then this method does nothing. The , ,
+ and types all have an appropriate Include method to call.
+ Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
+ OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on
+ the returned instance of the . Other instances of
+ and the object context itself are not affected. Because the Include method returns the query object,
+ you can call this method multiple times on an to specify multiple paths for the query.
+
+ The type of entity being queried.
+
+ The source on which to call Include.
+
+ The dot-separated list of related objects to return in the query results.
+
+ A new with the defined query path.
+
+
+
+
+ Specifies the related objects to include in the query results.
+
+
+ This extension method calls the Include(String) method of the source object,
+ if such a method exists. If the source does not have a matching method,
+ then this method does nothing. The , ,
+ and types all have an appropriate Include method to call.
+ Paths are all-inclusive. For example, if an include call indicates Include("Orders.OrderLines"), not only will
+ OrderLines be included, but also Orders. When you call the Include method, the query path is only valid on
+ the returned instance of the . Other instances of
+ and the object context itself are not affected. Because the Include method returns the query object,
+ you can call this method multiple times on an to specify multiple paths for the query.
+
+
+ The source on which to call Include.
+
+ The dot-separated list of related objects to return in the query results.
+
+ A new with the defined query path.
+
+
+
+
+ Specifies the related objects to include in the query results.
+
+
+ The path expression must be composed of simple property access expressions together with calls to Select for
+ composing additional includes after including a collection proprty. Examples of possible include paths are:
+ To include a single reference: query.Include(e => e.Level1Reference)
+ To include a single collection: query.Include(e => e.Level1Collection)
+ To include a reference and then a reference one level down: query.Include(e => e.Level1Reference.Level2Reference)
+ To include a reference and then a collection one level down: query.Include(e => e.Level1Reference.Level2Collection)
+ To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))
+ To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
+ To include a collection and then a reference one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference))
+ To include a collection and then a collection one level down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
+ To include a collection, a reference, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Reference.Level3Reference))
+ To include a collection, a collection, and a reference two levels down: query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection.Select(l2 => l2.Level3Reference)))
+ This extension method calls the Include(String) method of the source IQueryable object, if such a method exists.
+ If the source IQueryable does not have a matching method, then this method does nothing.
+ The Entity Framework ObjectQuery, ObjectSet, DbQuery, and DbSet types all have an appropriate Include method to call.
+ When you call the Include method, the query path is only valid on the returned instance of the IQueryable<T>. Other
+ instances of IQueryable<T> and the object context itself are not affected. Because the Include method returns the
+ query object, you can call this method multiple times on an IQueryable<T> to specify multiple paths for the query.
+
+ The type of entity being queried.
+ The type of navigation property being included.
+ The source IQueryable on which to call Include.
+ A lambda expression representing the path to include.
+
+ A new IQueryable<T> with the defined query path.
+
+
+
+
+ Returns a new query where the entities returned will not be cached in the
+ or . This method works by calling the AsNoTracking method of the
+ underlying query object. If the underlying query object does not have an AsNoTracking method,
+ then calling this method will have no affect.
+
+ The element type.
+ The source query.
+ A new query with NoTracking applied, or the source query if NoTracking is not supported.
+
+
+
+ Returns a new query where the entities returned will not be cached in the
+ or . This method works by calling the AsNoTracking method of the
+ underlying query object. If the underlying query object does not have an AsNoTracking method,
+ then calling this method will have no affect.
+
+ The source query.
+ A new query with NoTracking applied, or the source query if NoTracking is not supported.
+
+
+
+ Returns a new query that will stream the results instead of buffering. This method works by calling
+ the AsStreaming method of the underlying query object. If the underlying query object does not have
+ an AsStreaming method, then calling this method will have no affect.
+
+
+ The type of the elements of .
+
+
+ An to apply AsStreaming to.
+
+ A new query with AsStreaming applied, or the source query if AsStreaming is not supported.
+
+
+
+ Returns a new query that will stream the results instead of buffering. This method works by calling
+ the AsStreaming method of the underlying query object. If the underlying query object does not have
+ an AsStreaming method, then calling this method will have no affect.
+
+
+ An to apply AsStreaming to.
+
+ A new query with AsStreaming applied, or the source query if AsStreaming is not supported.
+
+
+
+ Enumerates the query such that for server queries such as those of ,
+
+ ,
+ , and others the results of the query will be loaded into the associated
+
+ ,
+ or other cache on the client.
+ This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list.
+
+ The source query.
+
+
+
+ Asynchronously enumerates the query such that for server queries such as those of ,
+
+ ,
+ , and others the results of the query will be loaded into the associated
+
+ ,
+ or other cache on the client.
+ This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list.
+
+ The source query.
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously enumerates the query such that for server queries such as those of ,
+
+ ,
+ , and others the results of the query will be loaded into the associated
+
+ ,
+ or other cache on the client.
+ This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list.
+
+ The source query.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ An to enumerate.
+
+ The action to perform on each element.
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ An to enumerate.
+
+ The action to perform on each element.
+
+ A to observe while waiting for the task to complete.
+
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to enumerate.
+
+ The action to perform on each element.
+ A task that represents the asynchronous operation.
+
+
+
+ Asynchronously enumerates the query results and performs the specified action on each element.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to enumerate.
+
+ The action to perform on each element.
+
+ A to observe while waiting for the task to complete.
+
+ A task that represents the asynchronous operation.
+
+
+
+ Creates a from an by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ An to create a from.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ An to create a from.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to create a from.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to create a list from.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains elements from the input sequence.
+
+
+
+
+ Creates an array from an by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to create an array from.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an array that contains elements from the input sequence.
+
+
+
+
+ Creates an array from an by enumerating it asynchronously.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to create an array from.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains an array that contains elements from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector function and a comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+
+ An to compare keys.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector function and a comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+
+ An to compare keys.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains selected keys and values.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector function, a comparer, and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ An to compare keys.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the input sequence.
+
+
+
+
+ Creates a from an by enumerating it asynchronously
+ according to a specified key selector function, a comparer, and an element selector function.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the key returned by .
+
+
+ The type of the value returned by .
+
+
+ An to create a from.
+
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+
+ An to compare keys.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains a that contains values of type
+ selected from the input sequence.
+
+
+
+
+ Asynchronously returns the first element of a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in .
+
+
+ is null.
+
+
+ doesn't implement .
+
+ The source sequence is empty.
+
+
+
+ Asynchronously returns the first element of a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in .
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+ The source sequence is empty.
+
+
+
+ Asynchronously returns the first element of a sequence that satisfies a specified condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in that passes the test in
+ .
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ No element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the first element of a sequence that satisfies a specified condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the first element in that passes the test in
+ .
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ No element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if
+ is empty; otherwise, the first element in .
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the first element of a sequence, or a default value if the sequence contains no elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if
+ is empty; otherwise, the first element in .
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the first element of a sequence that satisfies a specified condition
+ or a default value if no such element is found.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if
+ is empty or if no element passes the test specified by ; otherwise, the first
+ element in that passes the test specified by .
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the first element of a sequence that satisfies a specified condition
+ or a default value if no such element is found.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the first element of.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains default ( ) if
+ is empty or if no element passes the test specified by ; otherwise, the first
+ element in that passes the test specified by .
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ has more than one element.
+
+
+
+
+ Asynchronously returns the only element of a sequence, and throws an exception
+ if there is not exactly one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+ The source sequence is empty.
+
+
+
+ Asynchronously returns the only element of a sequence, and throws an exception
+ if there is not exactly one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ has more than one element.
+
+ The source sequence is empty.
+
+
+
+ Asynchronously returns the only element of a sequence that satisfies a specified condition,
+ and throws an exception if more than one such element exists.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+ A function to test an element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence that satisfies the condition in
+ .
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ No element satisfies the condition in
+
+ .
+
+
+ More than one element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the only element of a sequence that satisfies a specified condition,
+ and throws an exception if more than one such element exists.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+ A function to test an element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence that satisfies the condition in
+ .
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ No element satisfies the condition in
+
+ .
+
+
+ More than one element satisfies the condition in
+
+ .
+
+
+
+
+ Asynchronously returns the only element of a sequence, or a default value if the sequence is empty;
+ this method throws an exception if there is more than one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence, or default ()
+ if the sequence contains no elements.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ has more than one element.
+
+
+
+
+ Asynchronously returns the only element of a sequence, or a default value if the sequence is empty;
+ this method throws an exception if there is more than one element in the sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence, or default ()
+ if the sequence contains no elements.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ has more than one element.
+
+
+
+
+ Asynchronously returns the only element of a sequence that satisfies a specified condition or
+ a default value if no such element exists; this method throws an exception if more than one element
+ satisfies the condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+ A function to test an element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence that satisfies the condition in
+ , or default ( ) if no such element is found.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the only element of a sequence that satisfies a specified condition or
+ a default value if no such element exists; this method throws an exception if more than one element
+ satisfies the condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+ A function to test an element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the single element of the input sequence that satisfies the condition in
+ , or default ( ) if no such element is found.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether a sequence contains a specified element by using the default equality comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+ The object to locate in the sequence.
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the input sequence contains the specified value; otherwise, false.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether a sequence contains a specified element by using the default equality comparer.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to return the single element of.
+
+ The object to locate in the sequence.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the input sequence contains the specified value; otherwise, false.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether a sequence contains any elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to check for being empty.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the source sequence contains any elements; otherwise, false.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether a sequence contains any elements.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An to check for being empty.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if the source sequence contains any elements; otherwise, false.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether any element of a sequence satisfies a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An whose elements to test for a condition.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether any element of a sequence satisfies a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An whose elements to test for a condition.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if any elements in the source sequence pass the test in the specified predicate; otherwise, false.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether all the elements of a sequence satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An whose elements to test for a condition.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously determines whether all the elements of a sequence satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An whose elements to test for a condition.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains true if every element of the source sequence passes the test in the specified predicate; otherwise, false.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the input sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the input sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in a sequence that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the sequence that satisfy the condition in the predicate function.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the number of elements in a sequence that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the sequence that satisfy the condition in the predicate function.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the total number of elements in a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the input sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the total number of elements in a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the input sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the number of elements in a sequence
+ that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+ A function to test each element for a condition.
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the sequence that satisfy the condition in the predicate function.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns an that represents the number of elements in a sequence
+ that satisfy a condition.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to be counted.
+
+ A function to test each element for a condition.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the number of elements in the sequence that satisfy the condition in the predicate function.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ that satisfy the condition in the predicate function
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously returns the minimum value of a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to determine the minimum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the minimum value in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the minimum value of a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to determine the minimum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the minimum value in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the value returned by the function represented by .
+
+
+ An that contains the elements to determine the minimum of.
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the minimum value in the sequence.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously invokes a projection function on each element of a sequence and returns the minimum resulting value.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the value returned by the function represented by .
+
+
+ An that contains the elements to determine the minimum of.
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the minimum value in the sequence.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the maximum value of a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to determine the maximum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the maximum value in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously returns the maximum value of a sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ An that contains the elements to determine the maximum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the maximum value in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the value returned by the function represented by .
+
+
+ An that contains the elements to determine the maximum of.
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the maximum value in the sequence.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously invokes a projection function on each element of a sequence and returns the maximum resulting value.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ The type of the value returned by the function represented by .
+
+
+ An that contains the elements to determine the maximum of.
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the maximum value in the sequence.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the sum of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the values in the sequence.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the sum of the sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+
+ A sequence of values of type .
+
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the sum of the projected values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+ The number of elements in
+
+ is larger than
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ A sequence of nullable values to calculate the average of.
+
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+ contains no elements.
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Asynchronously computes the average of a sequence of nullable values that is obtained
+ by invoking a projection function on each element of the input sequence.
+
+
+ Multiple active operations on the same context instance are not supported. Use 'await' to ensure
+ that any asynchronous operations have completed before calling another method on this context.
+
+
+ The type of the elements of .
+
+ A sequence of values to calculate the average of.
+ A projection function to apply to each element.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the average of the sequence of values.
+
+
+
+ or
+
+ is
+ null
+ .
+
+
+
+ doesn't implement
+
+ .
+
+
+
+
+ Bypasses a specified number of elements in a sequence and then returns the remaining elements.
+
+ The type of the elements of source.
+ A sequence to return elements from.
+ An expression that evaluates to the number of elements to skip.
+ A sequence that contains elements that occur after the specified index in the
+ input sequence.
+
+
+
+ Returns a specified number of contiguous elements from the start of a sequence.
+
+ The type of the elements of source.
+ The sequence to return elements from.
+ An expression that evaluates to the number of elements
+ to return.
+ A sequence that contains the specified number of elements from the
+ start of the input sequence.
+
+
+
+ Represents data in a geodetic (round earth) coordinate system.
+
+
+
+ Gets the default coordinate system id (SRID) for geography values (WGS 84)
+ The default coordinate system id (SRID) for geography values (WGS 84)
+
+
+ Gets a representation of this DbGeography value that is specific to the underlying provider that constructed it.
+ A representation of this DbGeography value.
+
+
+
+ Gets the spatial provider that will be used for operations on this spatial type.
+
+
+
+ Gets or sets a data contract serializable well known representation of this DbGeography value.
+ A data contract serializable well known representation of this DbGeography value.
+
+
+
+ Creates a new value based on the specified well known binary value.
+
+
+ A new DbGeography value as defined by the well known binary value with the default geography coordinate system identifier (SRID)(
+
+ ).
+
+ A byte array that contains a well known binary representation of the geography value.
+
+
+
+ Creates a new value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+ Returns the multiline value from a binary value.
+ The multiline value from a binary value.
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+ Returns the multipoint value from a well-known binary value.
+ The multipoint value from a well-known binary value.
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+ Returns the multi polygon value from a well-known binary value.
+ The multi polygon value from a well-known binary value.
+ The multi polygon well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value.
+
+
+ A new DbGeography value as defined by the GML value with the default geography coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a Geography Markup Language (GML) representation of the geography value.
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the GML value with the specified coordinate system identifier.
+ A string that contains a Geography Markup Language (GML) representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new value based on the specified well known text value.
+
+
+ A new DbGeography value as defined by the well known text value with the default geography coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well known text representation of the geography value.
+
+
+
+ Creates a new value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new line value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new point value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+
+ Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+ Returns the multiline value from a well-known text value.
+ The multiline value from a well-known text value.
+ The well-known text.
+ The coordinate system identifier.
+
+
+ Returns the multipoint value from a well-known text value.
+ The multipoint value from a well-known text value.
+ The well-known text value.
+ The coordinate system identifier.
+
+
+ Returns the multi polygon value from a well-known text value.
+ The multi polygon value from a well-known text value.
+ The multi polygon well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeography value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geography value.
+ The identifier of the coordinate system that the new DbGeography value should use.
+
+
+ Gets the identifier associated with the coordinate system.
+ The identifier associated with the coordinate system.
+
+
+
+ Gets the dimension of the given value or, if the value is a collections, the largest element dimension.
+
+
+ The dimension of the given value.
+
+
+
+ Gets the spatial type name of the DBGeography.
+ The spatial type name of the DBGeography.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeography value is empty.
+ True if this DbGeography value is empty; otherwise, false.
+
+
+ Generates the well known text representation of this DbGeography value. Includes only Longitude and Latitude for points.
+ A string containing the well known text representation of this DbGeography value.
+
+
+ Generates the well known binary representation of this DbGeography value.
+ The well-known binary representation of this DbGeography value.
+
+
+ Generates the Geography Markup Language (GML) representation of this DbGeography value.
+ A string containing the GML representation of this DbGeography value.
+
+
+ Determines whether this DbGeography is spatially equal to the specified DbGeography argument.
+ true if other is spatially equal to this geography value; otherwise false.
+ The geography value that should be compared with this geography value for equality.
+
+
+ Determines whether this DbGeography is spatially disjoint from the specified DbGeography argument.
+ true if other is disjoint from this geography value; otherwise false.
+ The geography value that should be compared with this geography value for disjointness.
+
+
+ Determines whether this DbGeography value spatially intersects the specified DbGeography argument.
+ true if other intersects this geography value; otherwise false.
+ The geography value that should be compared with this geography value for intersection.
+
+
+ Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value.
+ A geography object that represents the union of all points
+ The distance.
+
+
+ Computes the distance between the closest points in this DbGeography value and another DbGeography value.
+ A double value that specifies the distance between the two closest points in this geography value and other.
+ The geography value for which the distance from this value should be computed.
+
+
+ Computes the intersection of this DbGeography value and another DbGeography value.
+ A new DbGeography value representing the intersection between this geography value and other.
+ The geography value for which the intersection with this value should be computed.
+
+
+ Computes the union of this DbGeography value and another DbGeography value.
+ A new DbGeography value representing the union between this geography value and other.
+ The geography value for which the union with this value should be computed.
+
+
+ Computes the difference of this DbGeography value and another DbGeography value.
+ A new DbGeography value representing the difference between this geography value and other.
+ The geography value for which the difference with this value should be computed.
+
+
+ Computes the symmetric difference of this DbGeography value and another DbGeography value.
+ A new DbGeography value representing the symmetric difference between this geography value and other.
+ The geography value for which the symmetric difference with this value should be computed.
+
+
+ Gets the number of elements in this DbGeography value, if it represents a geography collection. <returns>The number of elements in this geography value, if it represents a collection of other geography values; otherwise null.</returns>
+ The number of elements in this DbGeography value.
+
+
+ Returns an element of this DbGeography value from a specific position, if it represents a geography collection. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a collection of other geography values; otherwise null.</returns>
+ An element of this DbGeography value from a specific position
+ The index.
+
+
+ Gets the Latitude coordinate of this DbGeography value, if it represents a point. <returns>The Latitude coordinate value of this geography value, if it represents a point; otherwise null.</returns>
+ The Latitude coordinate of this DbGeography value.
+
+
+ Gets the Longitude coordinate of this DbGeography value, if it represents a point. <returns>The Longitude coordinate value of this geography value, if it represents a point; otherwise null.</returns>
+ The Longitude coordinate of this DbGeography value.
+
+
+ Gets the elevation (Z coordinate) of this DbGeography value, if it represents a point. <returns>The elevation (Z coordinate) value of this geography value, if it represents a point; otherwise null.</returns>
+ The elevation (Z coordinate) of this DbGeography value.
+
+
+ Gets the M (Measure) coordinate of this DbGeography value, if it represents a point. <returns>The M (Measure) coordinate value of this geography value, if it represents a point; otherwise null.</returns>
+ The M (Measure) coordinate of this DbGeography value.
+
+
+ Gets a nullable double value that indicates the length of this DbGeography value, which may be null if this value does not represent a curve.
+ A nullable double value that indicates the length of this DbGeography value.
+
+
+ Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve.
+ A DbGeography value representing the start point of this value.
+
+
+ Gets a DbGeography value representing the start point of this value, which may be null if this DbGeography value does not represent a curve.
+ A DbGeography value representing the start point of this value.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeography value is closed, which may be null if this value does not represent a curve.
+ True if this DbGeography value is closed; otherwise, false.
+
+
+ Gets the number of points in this DbGeography value, if it represents a linestring or linear ring. <returns>The number of elements in this geography value, if it represents a linestring or linear ring; otherwise null.</returns>
+ The number of points in this DbGeography value.
+
+
+ Returns an element of this DbGeography value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geography value from which the element should be taken.</param><returns>The element in this geography value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns>
+ An element of this DbGeography value from a specific position
+ The index.
+
+
+ Gets a nullable double value that indicates the area of this DbGeography value, which may be null if this value does not represent a surface.
+ A nullable double value that indicates the area of this DbGeography value.
+
+
+ Returns a string representation of the geography value.
+ A string representation of the geography value.
+
+
+
+ A data contract serializable representation of a value.
+
+
+
+ Gets or sets the coordinate system identifier (SRID) of this value.
+
+
+ Gets or sets the well known text representation of this value.
+
+
+ Gets or sets the well known binary representation of this value.
+
+
+
+ Represents geometric shapes.
+
+
+
+ Gets the default coordinate system id (SRID) for geometry values.
+ The default coordinate system id (SRID) for geometry values.
+
+
+ Gets a representation of this DbGeometry value that is specific to the underlying provider that constructed it.
+ A representation of this DbGeometry value.
+
+
+
+ Gets the spatial provider that will be used for operations on this spatial type.
+
+
+
+ Gets or sets a data contract serializable well known representation of this DbGeometry value.
+ A data contract serializable well known representation of this DbGeometry value.
+
+
+
+ Creates a new value based on the specified well known binary value.
+
+
+ A new DbGeometry value as defined by the well known binary value with the default geometry coordinate system identifier (
+
+ ).
+
+ A byte array that contains a well known binary representation of the geometry value.
+ wellKnownBinary
+
+
+
+ Creates a new value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ wellKnownBinary
+ coordinateSystemId
+
+
+
+ Creates a new line value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ lineWellKnownBinary
+ coordinateSystemId
+
+
+
+ Creates a new point value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ pointWellKnownBinary
+ coordinateSystemId
+
+
+
+ Creates a new polygon value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ polygonWellKnownBinary
+ coordinateSystemId
+
+
+ Returns the multiline value from a binary value.
+ The multiline value from a binary value.
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+ Returns the multipoint value from a well-known binary value.
+ The multipoint value from a well-known binary value.
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+ Returns the multi polygon value from a well-known binary value.
+ The multipoint value from a well-known text value.
+ The multi polygon well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well known binary value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known binary value with the specified coordinate system identifier.
+ A byte array that contains a well known binary representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ geometryCollectionWellKnownBinary
+ coordinateSystemId
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value.
+
+
+ A new DbGeometry value as defined by the GML value with the default geometry coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a Geography Markup Language (GML) representation of the geometry value.
+ geometryMarkup
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the GML value with the specified coordinate system identifier.
+ A string that contains a Geography Markup Language (GML) representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ geometryMarkup
+ coordinateSystemId
+
+
+
+ Creates a new value based on the specified well known text value.
+
+
+ A new DbGeometry value as defined by the well known text value with the default geometry coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well known text representation of the geometry value.
+ wellKnownText
+
+
+
+ Creates a new value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ wellKnownText
+ coordinateSystemId
+
+
+
+ Creates a new line value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ lineWellKnownText
+ coordinateSystemId
+
+
+
+ Creates a new point value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ pointWellKnownText
+ coordinateSystemId
+
+
+
+ Creates a new polygon value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ polygonWellKnownText
+ coordinateSystemId
+
+
+ Returns the multiline value from a well-known text value.
+ The multiline value from a well-known text value.
+ The well-known text.
+ The coordinate system identifier.
+
+
+ Returns the multipoint value from a well-known text value.
+ The multipoint value from a well-known text value.
+ The well-known text value.
+ The coordinate system identifier.
+
+
+ Returns the multi polygon value from a well-known binary value.
+ The multi polygon value from a well-known binary value.
+ The multi polygon well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well known text value and coordinate system identifier (SRID).
+
+ A new DbGeometry value as defined by the well known text value with the specified coordinate system identifier.
+ A string that contains a well known text representation of the geometry value.
+ The identifier of the coordinate system that the new DbGeometry value should use.
+ geometryCollectionWellKnownText
+ coordinateSystemId
+
+
+ Gets the coordinate system identifier of the DbGeometry object.
+ The coordinate system identifier of the DbGeometry object.
+
+
+ Gets the boundary of the DbGeometry objects.
+ The boundary of the DbGeometry objects.
+
+
+
+ Gets the dimension of the given value or, if the value is a collection, the dimension of its largest element.
+
+
+ The dimension of the given value.
+
+
+
+ Gets the envelope (minimum bounding box) of this DbGeometry value, as a geometry value.
+ The envelope (minimum bounding box) of this DbGeometry value.
+
+
+ Gets a spatial type name representation of this DbGeometry value.
+ A spatial type name representation of this DbGeometry value.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeometry value is empty, which may be null if this value does not represent a curve.
+ True if this DbGeometry value is empty; otherwise, false.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeometry value is simple.
+ True if this DbGeometry value is simple; otherwise, false.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeometry value is valid.
+ True if this DbGeometry value is valid; otherwise, false.
+
+
+ Generates the well known text representation of this DbGeometry value. Includes only X and Y coordinates for points.
+ A string containing the well known text representation of this DbGeometry value.
+
+
+ Generates the well known binary representation of this DbGeometry value.
+ The well-known binary representation of this DbGeometry value.
+
+
+ Generates the Geography Markup Language (GML) representation of this DbGeometry value.
+ A string containing the GML representation of this DbGeometry value.
+
+
+ Determines whether this DbGeometry is spatially equal to the specified DbGeometry argument.
+ true if other is spatially equal to this geometry value; otherwise false.
+ The geometry value that should be compared with this geometry value for equality.
+ other
+
+
+ Determines whether this DbGeometry is spatially disjoint from the specified DbGeometry argument.
+ true if other is disjoint from this geometry value; otherwise false.
+ The geometry value that should be compared with this geometry value for disjointness.
+ other
+
+
+ Determines whether this DbGeometry value spatially intersects the specified DbGeometry argument.
+ true if other intersects this geometry value; otherwise false.
+ The geometry value that should be compared with this geometry value for intersection.
+ other
+
+
+ Determines whether this DbGeometry value spatially touches the specified DbGeometry argument.
+ true if other touches this geometry value; otherwise false.
+ The geometry value that should be compared with this geometry value.
+ other
+
+
+ Determines whether this DbGeometry value spatially crosses the specified DbGeometry argument.
+ true if other crosses this geometry value; otherwise false.
+ The geometry value that should be compared with this geometry value.
+ other
+
+
+ Determines whether this DbGeometry value is spatially within the specified DbGeometry argument.
+ true if this geometry value is within other; otherwise false.
+ The geometry value that should be compared with this geometry value for containment.
+ other
+
+
+ Determines whether this DbGeometry value spatially contains the specified DbGeometry argument.
+ true if this geometry value contains other; otherwise false.
+ The geometry value that should be compared with this geometry value for containment.
+ other
+
+
+ Determines whether this DbGeometry value spatially overlaps the specified DbGeometry argument.
+ true if this geometry value overlaps other; otherwise false.
+ The geometry value that should be compared with this geometry value for overlap.
+ other
+
+
+ Determines whether this DbGeometry value spatially relates to the specified DbGeometry argument according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern.
+ true if this geometry value relates to other according to the specified intersection pattern matrix; otherwise false.
+ The geometry value that should be compared with this geometry value for relation.
+ A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation.
+ other
+ matrix
+
+
+ Returns a geometry object that represents the union of all points whose distance from a geometry instance is less than or equal to a specified value.
+ A geometry object that represents the union of all points.
+ The distance.
+
+
+ Computes the distance between the closest points in this DbGeometry value and another DbGeometry value.
+ A double value that specifies the distance between the two closest points in this geometry value and other.
+ The geometry value for which the distance from this value should be computed.
+ other
+
+
+ Gets the convex hull of this DbGeometry value as another DbGeometry value.
+ The convex hull of this DbGeometry value as another DbGeometry value.
+
+
+ Computes the intersection of this DbGeometry value and another DbGeometry value.
+ A new DbGeometry value representing the intersection between this geometry value and other.
+ The geometry value for which the intersection with this value should be computed.
+ other
+
+
+ Computes the union of this DbGeometry value and another DbGeometry value.
+ A new DbGeometry value representing the union between this geometry value and other.
+ The geometry value for which the union with this value should be computed.
+ other
+
+
+ Computes the difference between this DbGeometry value and another DbGeometry value.
+ A new DbGeometry value representing the difference between this geometry value and other.
+ The geometry value for which the difference with this value should be computed.
+ other
+
+
+ Computes the symmetric difference between this DbGeometry value and another DbGeometry value.
+ A new DbGeometry value representing the symmetric difference between this geometry value and other.
+ The geometry value for which the symmetric difference with this value should be computed.
+ other
+
+
+ Gets the number of elements in this DbGeometry value, if it represents a geometry collection. <returns>The number of elements in this geometry value, if it represents a collection of other geometry values; otherwise null.</returns>
+ The number of elements in this DbGeometry value.
+
+
+ Returns an element of this DbGeometry value from a specific position, if it represents a geometry collection. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a collection of other geometry values; otherwise null.</returns>
+ An element of this DbGeometry value from a specific position.
+ The index.
+
+
+ Gets the X coordinate of this DbGeometry value, if it represents a point. <returns>The X coordinate value of this geometry value, if it represents a point; otherwise null.</returns>
+ The X coordinate of this DbGeometry value.
+
+
+ Gets the Y coordinate of this DbGeometry value, if it represents a point. <returns>The Y coordinate value of this geometry value, if it represents a point; otherwise null.</returns>
+ The Y coordinate of this DbGeometry value.
+
+
+ Gets the elevation (Z coordinate) of this DbGeometry value, if it represents a point. <returns>The elevation (Z coordinate) of this geometry value, if it represents a point; otherwise null.</returns>
+ The elevation (Z coordinate) of this DbGeometry value.
+
+
+ Gets the Measure (M coordinate) of this DbGeometry value, if it represents a point. <returns>The Measure (M coordinate) value of this geometry value, if it represents a point; otherwise null.</returns>
+ The Measure (M coordinate) of this DbGeometry value.
+
+
+ Gets a nullable double value that indicates the length of this DbGeometry value, which may be null if this value does not represent a curve.
+ The length of this DbGeometry value.
+
+
+ Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve.
+ A DbGeometry value representing the start point of this value.
+
+
+ Gets a DbGeometry value representing the start point of this value, which may be null if this DbGeometry value does not represent a curve.
+ A DbGeometry value representing the start point of this value.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeometry value is closed, which may be null if this value does not represent a curve.
+ True if this DbGeometry value is closed; otherwise, false.
+
+
+ Gets a nullable Boolean value indicating whether this DbGeometry value is a ring, which may be null if this value does not represent a curve.
+ True if this DbGeometry value is a ring; otherwise, false.
+
+
+ Gets the number of points in this DbGeometry value, if it represents a linestring or linear ring. <returns>The number of elements in this geometry value, if it represents a linestring or linear ring; otherwise null.</returns>
+ The number of points in this DbGeometry value.
+
+
+ Returns an element of this DbGeometry value from a specific position, if it represents a linestring or linear ring. <param name="index">The position within this geometry value from which the element should be taken.</param><returns>The element in this geometry value at the specified position, if it represents a linestring or linear ring; otherwise null.</returns>
+ An element of this DbGeometry value from a specific position.
+ The index.
+
+
+ Gets a nullable double value that indicates the area of this DbGeometry value, which may be null if this value does not represent a surface.
+ A nullable double value that indicates the area of this DbGeometry value.
+
+
+ Gets the DbGeometry value that represents the centroid of this DbGeometry value, which may be null if this value does not represent a surface.
+ The DbGeometry value that represents the centroid of this DbGeometry value.
+
+
+ Gets a point on the surface of this DbGeometry value, which may be null if this value does not represent a surface.
+ A point on the surface of this DbGeometry value.
+
+
+ Gets the DbGeometry value that represents the exterior ring of this DbGeometry value, which may be null if this value does not represent a polygon.
+ The DbGeometry value that represents the exterior ring of this DbGeometry value.
+
+
+ Gets the number of interior rings in this DbGeometry value, if it represents a polygon. <returns>The number of elements in this geometry value, if it represents a polygon; otherwise null.</returns>
+ The number of interior rings in this DbGeometry value.
+
+
+ Returns an interior ring from this DbGeometry value at a specific position, if it represents a polygon. <param name="index">The position within this geometry value from which the interior ring should be taken.</param><returns>The interior ring in this geometry value at the specified position, if it represents a polygon; otherwise null.</returns>
+ An interior ring from this DbGeometry value at a specific position.
+ The index.
+
+
+ Returns a string representation of the geometry value.
+ A string representation of the geometry value.
+
+
+
+ A data contract serializable representation of a value.
+
+
+
+ Gets or sets the coordinate system identifier (SRID) of this value.
+
+
+ Gets or sets the well known text representation of this value.
+
+
+ Gets or sets the well known binary representation of this value.
+
+
+
+ A provider-independent service API for geospatial (Geometry/Geography) type support.
+
+
+
+
+ When implemented in derived types, reads an instance of from the column at the specified column ordinal.
+
+ The instance of DbGeography at the specified column value
+ The ordinal of the column that contains the geography value
+
+
+
+ Asynchronously reads an instance of from the column at the specified column ordinal.
+
+
+ Providers should override with an appropriate implementation.
+ The default implementation invokes the synchronous method and returns
+ a completed task, blocking the calling thread.
+
+ The ordinal of the column that contains the geography value.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the instance of at the specified column value.
+
+
+
+
+ When implemented in derived types, reads an instance of from the column at the specified column ordinal.
+
+ The instance of DbGeometry at the specified column value
+ The ordinal of the data record column that contains the provider-specific geometry data
+
+
+
+ Asynchronously reads an instance of from the column at the specified column ordinal.
+
+
+ Providers should override with an appropriate implementation.
+ The default implementation invokes the synchronous method and returns
+ a completed task, blocking the calling thread.
+
+ The ordinal of the data record column that contains the provider-specific geometry data.
+
+ A to observe while waiting for the task to complete.
+
+
+ A task that represents the asynchronous operation.
+ The task result contains the instance of at the specified column value.
+
+
+
+
+ Returns whether the column at the specified column ordinal is of geography type
+
+ The column ordinal.
+
+ true if the column at the specified column ordinal is of geography type;
+ false otherwise.
+
+
+
+
+ Returns whether the column at the specified column ordinal is of geometry type
+
+ The column ordinal.
+
+ true if the column at the specified column ordinal is of geometry type;
+ false otherwise.
+
+
+
+
+ A provider-independent service API for geospatial (Geometry/Geography) type support.
+
+
+
+
+ Gets the default services for the .
+
+ The default services.
+
+
+
+ Override this property to allow the spatial provider to fail fast when native types or other
+ resources needed for the spatial provider to function correctly are not available.
+ The default value is true which means that EF will continue with the assumption
+ that the provider has the necessary types/resources rather than failing fast.
+
+
+
+
+ This method is intended for use by derived implementations of
+
+ after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation.
+
+
+ A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation.
+
+
+ The spatial services instance that the returned value will depend on for its implementation of spatial functionality.
+
+ The provider value.
+
+
+
+ Creates a new value based on a provider-specific value that is compatible with this spatial services implementation.
+
+
+ A new value backed by this spatial services implementation and the specified provider value.
+
+ A provider-specific value that this spatial services implementation is capable of interpreting as a geography value.
+ A new DbGeography value backed by this spatial services implementation and the specified provider value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known
+
+ representation.
+
+ A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation.
+
+ An instance of that contains the well-known representation of a geography value.
+
+
+
+
+ Creates an instance of that represents the specified
+
+ value using one or both of the standard well-known spatial formats.
+
+
+ The well-known representation of geographyValue, as a new
+
+ .
+
+ The geography value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Creates a new value based on the specified well-known binary value.
+
+
+ A new value as defined by the well-known binary value with the default
+
+ coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geography value.
+
+
+
+ Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new multiline value based on the specified well-known binary value and coordinate system identifier.
+
+
+ The new multiline value.
+
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier.
+
+
+ A new multipoint value.
+
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier.
+
+
+ A new multi polygon value.
+
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new value based on the specified well-known text value.
+
+
+ A new value as defined by the well-known text value with the default
+
+ coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geography value.
+
+
+
+ Creates a new value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new multiline value based on the specified well-known text value and coordinate system identifier.
+
+
+ A new multiline value.
+
+ The well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multipoint value based on the specified well-known text value and coordinate system identifier.
+
+
+ A new multipoint value.
+
+ The well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier.
+
+
+ A new multi polygon value.
+
+ The well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value.
+
+
+ A new value as defined by the GML value with the default
+
+ coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a Geometry Markup Language (GML) representation of the geography value.
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the GML value with the specified coordinate system identifier (SRID).
+
+ A string that contains a Geometry Markup Language (GML) representation of the geography value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Returns the coordinate system identifier of the given value.
+
+
+ The coordinate system identifier of the given value.
+
+ The geography value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Gets the dimension of the given value or, if the value is a collections, the largest element dimension.
+
+
+ The dimension of geographyValue, or the largest element dimension if
+
+ is a collection.
+
+ The geography value for which the dimension value should be retrieved.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that indicates the spatial type name of the given
+
+ value.
+
+
+ The spatial type name of the given value.
+
+ The geography value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is empty.
+
+
+ True if the given value is empty; otherwise, false.
+
+ The geography value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Gets the well-known text representation of the given value. This value should include only the Longitude and Latitude of points.
+
+ A string containing the well-known text representation of geographyValue.
+ The geography value for which the well-known text should be generated.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a text representation of with elevation and measure.
+
+
+ A text representation of .
+
+ The geography value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Gets the well-known binary representation of the given value.
+
+
+ The well-known binary representation of the given value.
+
+ The geography value for which the well-known binary should be generated.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Generates the Geography Markup Language (GML) representation of this
+
+ value.
+
+ A string containing the GML representation of this DbGeography value.
+ The geography value for which the GML should be generated.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values are spatially equal.
+
+ true if geographyValue is spatially equal to otherGeography; otherwise false.
+ The first geography value to compare for equality.
+ The second geography value to compare for equality.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values are spatially disjoint.
+
+ true if geographyValue is disjoint from otherGeography; otherwise false.
+ The first geography value to compare for disjointness.
+ The second geography value to compare for disjointness.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values spatially intersect.
+
+ true if geographyValue intersects otherGeography; otherwise false.
+ The first geography value to compare for intersection.
+ The second geography value to compare for intersection.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Creates a geography value representing all points less than or equal to distance from the given
+
+ value.
+
+ A new DbGeography value representing all points less than or equal to distance from geographyValue.
+ The geography value.
+ A double value specifying how far from geographyValue to buffer.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the distance between the closest points in two values.
+
+ A double value that specifies the distance between the two closest points in geographyValue and otherGeography.
+ The first geography value.
+ The second geography value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the intersection of two values.
+
+
+ A new value representing the intersection of geographyValue and otherGeography.
+
+ The first geography value.
+ The second geography value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the union of two values.
+
+
+ A new value representing the union of geographyValue and otherGeography.
+
+ The first geography value.
+ The second geography value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the difference of two values.
+
+ A new DbGeography value representing the difference of geographyValue and otherGeography.
+ The first geography value.
+ The second geography value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the symmetric difference of two values.
+
+
+ A new value representing the symmetric difference of geographyValue and otherGeography.
+
+ The first geography value.
+ The second geography value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the number of elements in the given value, if it represents a geography collection.
+
+ The number of elements in geographyValue, if it represents a collection of other geography values; otherwise null.
+ The geography value, which need not represent a geography collection.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns an element of the given value, if it represents a geography collection.
+
+ The element in geographyValue at position index, if it represents a collection of other geography values; otherwise null.
+ The geography value, which need not represent a geography collection.
+ The position within the geography value from which the element should be taken.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the Latitude coordinate of the given value, if it represents a point.
+
+
+ The Latitude coordinate of the given value.
+
+ The geography value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the Longitude coordinate of the given value, if it represents a point.
+
+
+ The Longitude coordinate of the given value.
+
+ The geography value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the elevation (Z coordinate) of the given value, if it represents a point.
+
+ The elevation (Z coordinate) of geographyValue, if it represents a point; otherwise null.
+ The geography value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the M (Measure) coordinate of the given value, if it represents a point.
+
+
+ The M (Measure) coordinate of the given value.
+
+ The geography value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable double value that indicates the length of the given
+
+ value, which may be null if the value does not represent a curve.
+
+
+ The length of the given value.
+
+ The geography value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents the start point of the given DbGeography value, which may be null if the value does not represent a curve.
+
+
+ The start point of the given value.
+
+ The geography value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents the end point of the given DbGeography value, which may be null if the value does not represent a curve.
+
+ The end point of geographyValue, if it represents a curve; otherwise null.
+ The geography value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve.
+
+
+ True if the given value is closed; otherwise, false.
+
+ The geography value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the number of points in the given value, if it represents a linestring or linear ring.
+
+
+ The number of points in the given value.
+
+ The geography value, which need not represent a linestring or linear ring.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a point element of the given value, if it represents a linestring or linear ring.
+
+ The point in geographyValue at position index, if it represents a linestring or linear ring; otherwise null.
+ The geography value, which need not represent a linestring or linear ring.
+ The position within the geography value from which the element should be taken.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable double value that indicates the area of the given
+
+ value, which may be null if the value does not represent a surface.
+
+
+ A nullable double value that indicates the area of the given value.
+
+ The geography value, which need not represent a surface.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ This method is intended for use by derived implementations of
+
+ after suitable validation of the specified provider value to ensure it is suitable for use with the derived implementation.
+
+
+ A new instance that contains the specified providerValue and uses the specified spatialServices as its spatial implementation.
+
+
+ The spatial services instance that the returned value will depend on for its implementation of spatial functionality.
+
+ A provider value.
+
+
+
+ Creates a provider-specific value compatible with this spatial services implementation based on the specified well-known
+
+ representation.
+
+ A provider-specific value that encodes the information contained in wellKnownValue in a fashion compatible with this spatial services implementation.
+
+ An instance of that contains the well-known representation of a geometry value.
+
+
+
+
+ Creates an instance of that represents the specified
+
+ value using one or both of the standard well-known spatial formats.
+
+
+ The well-known representation of geometryValue, as a new
+
+ .
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Creates a new value based on a provider-specific value that is compatible with this spatial services implementation.
+
+
+ A new value backed by this spatial services implementation and the specified provider value.
+
+ A provider-specific value that this spatial services implementation is capable of interpreting as a geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Creates a new value based on the specified well-known binary value.
+
+
+ A new value as defined by the well-known binary value with the default
+
+ coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geometry value.
+
+
+
+ Creates a new value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new line value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new point value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new polygon value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new multiline value based on the specified well-known binary value and coordinate system identifier.
+
+
+ The new multiline value
+
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multipoint value based on the specified well-known binary value and coordinate system identifier.
+
+
+ A new multipoint value.
+
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multi polygon value based on the specified well-known binary value and coordinate system identifier.
+
+
+ A new multi polygon value.
+
+ The well-known binary value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well-known binary value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known binary value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A byte array that contains a well-known binary representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new value based on the specified well-known text value.
+
+
+ A new value as defined by the well-known text value with the default
+
+ coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geometry value.
+
+
+
+ Creates a new value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new line value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new point value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new polygon value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new multiline value based on the specified well-known text value and coordinate system identifier.
+
+
+ A new multiline value
+
+ The well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multipoint value based on the specified well-known text value and coordinate system identifier.
+
+
+ A new multipoint value.
+
+ The well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new multi polygon value based on the specified well-known text value and coordinate system identifier.
+
+
+ A new multi polygon value.
+
+ The well-known text value.
+ The coordinate system identifier.
+
+
+
+ Creates a new collection value based on the specified well-known text value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the well-known text value with the specified coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a well-known text representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value.
+
+
+ A new value as defined by the GML value with the default
+
+ coordinate system identifier (SRID) (
+
+ ).
+
+ A string that contains a Geography Markup Language (GML) representation of the geometry value.
+
+
+
+ Creates a new value based on the specified Geography Markup Language (GML) value and coordinate system identifier (SRID).
+
+
+ A new value as defined by the GML value with the specified coordinate system identifier (SRID).
+
+ A string that contains a Geography Markup Language (GML) representation of the geometry value.
+
+ The identifier of the coordinate system that the new value should use.
+
+
+
+
+ Returns the coordinate system identifier of the given value.
+
+
+ The coordinate system identifier of the given value.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable double value that indicates the boundary of the given
+
+ value.
+
+
+ The boundary of the given value.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Gets the dimension of the given value or, if the value is a collections, the largest element dimension.
+
+
+ The dimension of geometryValue, or the largest element dimension if
+
+ is a collection.
+
+ The geometry value for which the dimension value should be retrieved.
+
+
+
+ Gets the envelope (minimum bounding box) of the given value, as a geometry value.
+
+
+ The envelope of geometryValue, as a value.
+
+ The geometry value for which the envelope value should be retrieved.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that indicates the spatial type name of the given
+
+ value.
+
+
+ The spatial type name of the given value.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is empty.
+
+
+ True if the given value is empty; otherwise, false.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is simple.
+
+
+ True if the given value is simple; otherwise, false.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is valid.
+
+
+ True if the given value is valid; otherwise, false.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Gets the well-known text representation of the given value, including only X and Y coordinates for points.
+
+ A string containing the well-known text representation of geometryValue.
+ The geometry value for which the well-known text should be generated.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a text representation of with elevation and measure.
+
+
+ A text representation of with elevation and measure.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Gets the well-known binary representation of the given value.
+
+
+ The well-known binary representation of the given value.
+
+ The geometry value for which the well-known binary should be generated.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Generates the Geography Markup Language (GML) representation of this
+
+ value.
+
+ A string containing the GML representation of this DbGeometry value.
+ The geometry value for which the GML should be generated.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values are spatially equal.
+
+ true if geometryValue is spatially equal to otherGeometry; otherwise false.
+ The first geometry value to compare for equality.
+ The second geometry value to compare for equality.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values are spatially disjoint.
+
+ true if geometryValue is disjoint from otherGeometry; otherwise false.
+ The first geometry value to compare for disjointness.
+ The second geometry value to compare for disjointness.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values spatially intersect.
+
+ true if geometryValue intersects otherGeometry; otherwise false.
+ The first geometry value to compare for intersection.
+ The second geometry value to compare for intersection.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values spatially touch.
+
+ true if geometryValue touches otherGeometry; otherwise false.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values spatially cross.
+
+ true if geometryValue crosses otherGeometry; otherwise false.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether one value is spatially within the other.
+
+ true if geometryValue is within otherGeometry; otherwise false.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether one value spatially contains the other.
+
+ true if geometryValue contains otherGeometry; otherwise false.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values spatially overlap.
+
+ true if geometryValue overlaps otherGeometry; otherwise false.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Determines whether the two given values are spatially related according to the given Dimensionally Extended Nine-Intersection Model (DE-9IM) intersection pattern.
+
+ true if this geometryValue value relates to otherGeometry according to the specified intersection pattern matrix; otherwise false.
+ The first geometry value.
+ The geometry value that should be compared with the first geometry value for relation.
+ A string that contains the text representation of the (DE-9IM) intersection pattern that defines the relation.
+
+
+ ,
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Creates a geometry value representing all points less than or equal to distance from the given
+
+ value.
+
+ A new DbGeometry value representing all points less than or equal to distance from geometryValue.
+ The geometry value.
+ A double value specifying how far from geometryValue to buffer.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the distance between the closest points in two values.
+
+ A double value that specifies the distance between the two closest points in geometryValue and otherGeometry.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable double value that indicates the convex hull of the given
+
+ value.
+
+
+ The convex hull of the given value.
+
+ The geometry value.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the intersection of two values.
+
+
+ A new value representing the intersection of geometryValue and otherGeometry.
+
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the union of two values.
+
+
+ A new value representing the union of geometryValue and otherGeometry.
+
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the difference between two values.
+
+ A new DbGeometry value representing the difference between geometryValue and otherGeometry.
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Computes the symmetric difference between two values.
+
+
+ A new value representing the symmetric difference between geometryValue and otherGeometry.
+
+ The first geometry value.
+ The second geometry value.
+
+
+ or
+
+ is null.
+
+
+
+ or
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the number of elements in the given value, if it represents a geometry collection.
+
+ The number of elements in geometryValue, if it represents a collection of other geometry values; otherwise null.
+ The geometry value, which need not represent a geometry collection.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns an element of the given value, if it represents a geometry collection.
+
+ The element in geometryValue at position index, if it represents a collection of other geometry values; otherwise null.
+ The geometry value, which need not represent a geometry collection.
+ The position within the geometry value from which the element should be taken.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the X coordinate of the given value, if it represents a point.
+
+
+ The X coordinate of the given value.
+
+ The geometry value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the Y coordinate of the given value, if it represents a point.
+
+
+ The Y coordinate of the given value.
+
+ The geometry value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the elevation (Z) of the given value, if it represents a point.
+
+ The elevation (Z) of geometryValue, if it represents a point; otherwise null.
+ The geometry value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the M (Measure) coordinate of the given value, if it represents a point.
+
+
+ The M (Measure) coordinate of the given value.
+
+ The geometry value, which need not represent a point.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable double value that indicates the length of the given
+
+ value, which may be null if the value does not represent a curve.
+
+
+ The length of the given value.
+
+ The geometry value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents the start point of the given DbGeometry value, which may be null if the value does not represent a curve.
+
+
+ The start point of the given value.
+
+ The geometry value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents the end point of the given DbGeometry value, which may be null if the value does not represent a curve.
+
+ The end point of geometryValue, if it represents a curve; otherwise null.
+ The geometry value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is closed, which may be null if the value does not represent a curve.
+
+
+ True if the given value is closed; otherwise, false.
+
+ The geometry value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable Boolean value that whether the given value is a ring, which may be null if the value does not represent a curve.
+
+
+ True if the given value is a ring; otherwise, false.
+
+ The geometry value, which need not represent a curve.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the number of points in the given value, if it represents a linestring or linear ring.
+
+
+ The number of points in the given value.
+
+ The geometry value, which need not represent a linestring or linear ring.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a point element of the given value, if it represents a linestring or linear ring.
+
+ The point in geometryValue at position index, if it represents a linestring or linear ring; otherwise null.
+ The geometry value, which need not represent a linestring or linear ring.
+ The position within the geometry value from which the element should be taken.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a nullable double value that indicates the area of the given
+
+ value, which may be null if the value does not represent a surface.
+
+
+ A nullable double value that indicates the area of the given value.
+
+ The geometry value, which need not represent a surface.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents the centroid of the given DbGeometry value, which may be null if the value does not represent a surface.
+
+ The centroid of geometryValue, if it represents a surface; otherwise null.
+ The geometry value, which need not represent a surface.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents a point on the surface of the given DbGeometry value, which may be null if the value does not represent a surface.
+
+
+ A value that represents a point on the surface of the given DbGeometry value.
+
+ The geometry value, which need not represent a surface.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns a value that represents the exterior ring of the given DbGeometry value, which may be null if the value does not represent a polygon.
+
+ A DbGeometry value representing the exterior ring on geometryValue, if it represents a polygon; otherwise null.
+ The geometry value, which need not represent a polygon.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns the number of interior rings in the given value, if it represents a polygon.
+
+ The number of elements in geometryValue, if it represents a polygon; otherwise null.
+ The geometry value, which need not represent a polygon.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Returns an interior ring from the given value, if it represents a polygon.
+
+ The interior ring in geometryValue at position index, if it represents a polygon; otherwise null.
+ The geometry value, which need not represent a polygon.
+ The position within the geometry value from which the element should be taken.
+
+
+ is null.
+
+
+
+ is not compatible with this spatial services implementation.
+
+
+
+
+ Controls the transaction creation behavior while executing a database command or query.
+
+
+
+
+ If no transaction is present then a new transaction will be used for the operation.
+
+
+
+
+ If an existing transaction is present then use it, otherwise execute the command or query without a transaction.
+
+
+
+
+ Contains extension methods for the class.
+
+
+
+
+ Configures an awaiter used to await this to avoid
+ marshalling the continuation
+ back to the original context, but preserve the current culture and UI culture.
+
+
+ The type of the result produced by the associated .
+
+ The task to be awaited on.
+ An object used to await this task.
+
+
+
+ Configures an awaiter used to await this to avoid
+ marshalling the continuation
+ back to the original context, but preserve the current culture and UI culture.
+
+ The task to be awaited on.
+ An object used to await this task.
+
+
+
+ Provides an awaitable object that allows for awaits on that
+ preserve the culture.
+
+
+ The type of the result produced by the associated .
+
+ This type is intended for compiler use only.
+
+
+
+ Constructs a new instance of the class.
+
+ The task to be awaited on.
+
+
+ Gets an awaiter used to await this .
+ An awaiter instance.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Gets whether this Task has completed.
+
+
+ will return true when the Task is in one of the three
+ final states: RanToCompletion,
+ Faulted, or
+ Canceled.
+
+
+
+ Ends the await on the completed .
+ The result of the completed .
+ The awaiter was not properly initialized.
+ The task was canceled.
+ The task completed in a Faulted state.
+
+
+ This method is not implemented and should not be called.
+ The action to invoke when the await operation completes.
+
+
+
+ Schedules the continuation onto the associated with this
+ .
+
+ The action to invoke when the await operation completes.
+
+ The argument is null
+ (Nothing in Visual Basic).
+
+ The awaiter was not properly initialized.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Provides an awaitable object that allows for awaits on that
+ preserve the culture.
+
+ This type is intended for compiler use only.
+
+
+
+ Constructs a new instance of the class.
+
+ The task to be awaited on.
+
+
+ Gets an awaiter used to await this .
+ An awaiter instance.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Gets whether this Task has completed.
+
+
+ will return true when the Task is in one of the three
+ final states: RanToCompletion,
+ Faulted, or
+ Canceled.
+
+
+
+ Ends the await on the completed .
+ The awaiter was not properly initialized.
+ The task was canceled.
+ The task completed in a Faulted state.
+
+
+ This method is not implemented and should not be called.
+ The action to invoke when the await operation completes.
+
+
+
+ Schedules the continuation onto the associated with this
+ .
+
+ The action to invoke when the await operation completes.
+
+ The argument is null
+ (Nothing in Visual Basic).
+
+ The awaiter was not properly initialized.
+ This method is intended for compiler user rather than use directly in code.
+
+
+
+ Exception thrown from when validating entities fails.
+
+
+
+
+ Initializes a new instance of DbEntityValidationException.
+
+
+
+
+ Initializes a new instance of DbEntityValidationException.
+
+ The exception message.
+
+
+
+ Initializes a new instance of DbEntityValidationException.
+
+ The exception message.
+ Validation results.
+
+
+
+ Initializes a new instance of DbEntityValidationException.
+
+ The exception message.
+ The inner exception.
+
+
+
+ Initializes a new instance of DbEntityValidationException.
+
+ The exception message.
+ Validation results.
+ The inner exception.
+
+
+
+ Initializes a new instance of the DbEntityValidationException class with the specified serialization information and context.
+
+ The data necessary to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+
+ Validation results.
+
+
+
+
+ Sets the with information about the exception.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+
+ Represents validation results for single entity.
+
+
+
+
+ Creates an instance of class.
+
+ Entity entry the results applies to. Never null.
+
+ List of instances. Never null. Can be empty meaning the entity is valid.
+
+
+
+
+ Gets an instance of the results applies to.
+
+
+
+
+ Gets validation errors. Never null.
+
+
+
+
+ Gets an indicator if the entity is valid.
+
+
+
+
+ Exception thrown from when an exception is thrown from the validation
+ code.
+
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException.
+
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException.
+
+ The exception message.
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException.
+
+ The exception message.
+ The inner exception.
+
+
+
+ Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and
+ context.
+
+ The serialization info.
+ The streaming context.
+
+
+
+ Validation error. Can be either entity or property level validation error.
+
+
+
+
+ Creates an instance of .
+
+ Name of the invalid property. Can be null.
+ Validation error message. Can be null.
+
+
+
+ Gets name of the invalid property.
+
+
+
+
+ Gets validation error message.
+
+
+
+
+ When this attribute is placed on a property it indicates that the database column to which the
+ property is mapped has an index.
+
+
+ This attribute is used by Entity Framework Migrations to create indexes on mapped database columns.
+ Multi-column indexes are created by using the same index name in multiple attributes. The information
+ in these attributes is then merged together to specify the actual database index.
+
+
+
+
+ Creates a instance for an index that will be named by convention and
+ has no column order, clustering, or uniqueness specified.
+
+
+
+
+ Creates a instance for an index with the given name and
+ has no column order, clustering, or uniqueness specified.
+
+ The index name.
+
+
+
+ Creates a instance for an index with the given name and column order,
+ but with no clustering or uniqueness specified.
+
+
+ Multi-column indexes are created by using the same index name in multiple attributes. The information
+ in these attributes is then merged together to specify the actual database index.
+
+ The index name.
+ A number which will be used to determine column ordering for multi-column indexes.
+
+
+
+ The index name.
+
+
+ Multi-column indexes are created by using the same index name in multiple attributes. The information
+ in these attributes is then merged together to specify the actual database index.
+
+
+
+
+ A number which will be used to determine column ordering for multi-column indexes. This will be -1 if no
+ column order has been specified.
+
+
+ Multi-column indexes are created by using the same index name in multiple attributes. The information
+ in these attributes is then merged together to specify the actual database index.
+
+
+
+
+ Set this property to true to define a clustered index. Set this property to false to define a
+ non-clustered index.
+
+
+ The value of this property is only relevant if returns true.
+ If returns false, then the value of this property is meaningless.
+
+
+
+
+ Returns true if has been set to a value.
+
+
+
+
+ Set this property to true to define a unique index. Set this property to false to define a
+ non-unique index.
+
+
+ The value of this property is only relevant if returns true.
+ If returns false, then the value of this property is meaningless.
+
+
+
+
+ Returns true if has been set to a value.
+
+
+
+
+ Returns a different ID for each object instance such that type descriptors won't
+ attempt to combine all IndexAttribute instances into a single instance.
+
+
+
+
+ Returns true if this attribute specifies the same name and configuration as the given attribute.
+
+ The attribute to compare.
+ True if the other object is equal to this object; otherwise false.
+
+
+
+
+
+
+ Returns true if this attribute specifies the same name and configuration as the given attribute.
+
+ The attribute to compare.
+ True if the other object is equal to this object; otherwise false.
+
+
+
+
+
+
diff --git a/bin/Debug/FlexCell.dll b/bin/Debug/FlexCell.dll
new file mode 100644
index 0000000..395f35d
Binary files /dev/null and b/bin/Debug/FlexCell.dll differ
diff --git a/bin/Debug/Google.Protobuf.dll b/bin/Debug/Google.Protobuf.dll
new file mode 100644
index 0000000..13b32d5
Binary files /dev/null and b/bin/Debug/Google.Protobuf.dll differ
diff --git a/bin/Debug/Google.Protobuf.pdb b/bin/Debug/Google.Protobuf.pdb
new file mode 100644
index 0000000..ff36c31
Binary files /dev/null and b/bin/Debug/Google.Protobuf.pdb differ
diff --git a/bin/Debug/Google.Protobuf.xml b/bin/Debug/Google.Protobuf.xml
new file mode 100644
index 0000000..58dc309
--- /dev/null
+++ b/bin/Debug/Google.Protobuf.xml
@@ -0,0 +1,11497 @@
+
+
+
+ Google.Protobuf
+
+
+
+
+ Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+
+
+
+
+ The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+
+
+
+
+ Determines which copy routine to use based on the number of bytes to be copied.
+
+
+
+
+ Reverses the order of bytes in the array
+
+
+
+
+ Immutable array of bytes.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+
+
+
+
+ Internal use only. Ensure that the provided memory is not mutated and belongs to this instance.
+ This method encapsulates converting array to memory. Reduces need for SecuritySafeCritical
+ in .NET Framework.
+
+
+
+
+ Constructs a new ByteString from the given memory. The memory is
+ *not* copied, and must not be modified after this constructor is called.
+
+
+
+
+ Returns an empty ByteString.
+
+
+
+
+ Returns the length of this ByteString in bytes.
+
+
+
+
+ Returns true if this byte string is empty, false otherwise.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Provides read-only access to the data of this .
+ No data is copied so this is the most efficient way of accessing.
+
+
+
+
+ Converts this into a byte array.
+
+ The data is copied - changes to the returned array will not be reflected in this ByteString.
+ A byte array with the same data as this ByteString.
+
+
+
+ Converts this into a standard base64 representation.
+
+ A base64 representation of this ByteString.
+
+
+
+ Constructs a from the Base64 Encoded String.
+
+
+
+
+ Constructs a from data in the given stream, synchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from data in the given stream, asynchronously.
+
+ If successful, will be read completely, from the position
+ at the start of the call.
+ The stream to copy into a ByteString.
+ The cancellation token to use when reading from the stream, if any.
+ A ByteString with content read from the given stream.
+
+
+
+ Constructs a from the given array. The contents
+ are copied, so further modifications to the array will not
+ be reflected in the returned ByteString.
+ This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form
+ which is primarily useful for testing.
+
+
+
+
+ Constructs a from a portion of a byte array.
+
+
+
+
+ Constructs a from a read only span. The contents
+ are copied, so further modifications to the span will not
+ be reflected in the returned .
+
+
+
+
+ Creates a new by encoding the specified text with
+ the given encoding.
+
+
+
+
+ Creates a new by encoding the specified text in UTF-8.
+
+
+
+
+ Returns the byte at the given index.
+
+
+
+
+ Converts this into a string by applying the given encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with the given encoding.
+
+ The encoding to use to decode the binary data into text.
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Converts this into a string by applying the UTF-8 encoding.
+
+
+ This method should only be used to convert binary data which was the result of encoding
+ text with UTF-8.
+
+ The result of decoding the binary data with the given decoding.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Returns an iterator over the bytes in this .
+
+ An iterator over the bytes in this object.
+
+
+
+ Creates a CodedInputStream from this ByteString's data.
+
+
+
+
+ Compares two byte strings for equality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ true if the byte strings are equal; false otherwise.
+
+
+
+ Compares two byte strings for inequality.
+
+ The first byte string to compare.
+ The second byte string to compare.
+ false if the byte strings are equal; true otherwise.
+
+
+
+ Compares this byte string with another object.
+
+ The object to compare this with.
+ true if refers to an equal ; false otherwise.
+
+
+
+ Returns a hash code for this object. Two equal byte strings
+ will return the same hash code.
+
+ A hash code for this object.
+
+
+
+ Compares this byte string with another.
+
+ The to compare this with.
+ true if refers to an equal byte string; false otherwise.
+
+
+
+ Copies the entire byte array to the destination array provided at the offset specified.
+
+
+
+
+ Writes the entire byte array to the provided stream
+
+
+
+
+ SecuritySafeCritical attribute can not be placed on types with async methods.
+ This class has ByteString's async methods so it can be marked with SecuritySafeCritical.
+
+
+
+
+ Reads and decodes protocol message fields.
+
+
+
+ This class is generally used by generated code to read appropriate
+ primitives from the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format.
+
+
+ Repeated fields and map fields are not handled by this class; use
+ and to serialize such fields.
+
+
+
+
+
+ Whether to leave the underlying stream open when disposing of this stream.
+ This is always true when there's no stream.
+
+
+
+
+ Buffer of data read from the stream or provided at construction time.
+
+
+
+
+ The stream to read further input from, or null if the byte array buffer was provided
+ directly on construction, with no further data available.
+
+
+
+
+ The parser state is kept separately so that other parse implementations can reuse the same
+ parsing primitives.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given byte array.
+
+
+
+
+ Creates a new that reads from the given byte array slice.
+
+
+
+
+ Creates a new reading data from the given stream, which will be disposed
+ when the returned object is disposed.
+
+ The stream to read from.
+
+
+
+ Creates a new reading data from the given stream.
+
+ The stream to read from.
+ true to leave open when the returned
+ is disposed; false to dispose of the given stream when the
+ returned object is disposed.
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the default limits.
+
+
+
+
+ Creates a new CodedInputStream reading data from the given
+ stream and buffer, using the specified limits.
+
+
+ This chains to the version with the default limits instead of vice versa to avoid
+ having to check that the default values are valid every time.
+
+
+
+
+ Creates a with the specified size and recursion limits, reading
+ from an input stream.
+
+
+ This method exists separately from the constructor to reduce the number of constructor overloads.
+ It is likely to be used considerably less frequently than the constructors, as the default limits
+ are suitable for most use cases.
+
+ The input stream to read from
+ The total limit of data to read from the stream.
+ The maximum recursion depth to allow while reading.
+ A CodedInputStream reading from with the specified size
+ and recursion limits.
+
+
+
+ Returns the current position in the input stream, or the position in the input buffer
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the stream.
+
+
+
+
+ Returns the size limit for this stream.
+
+
+ This limit is applied when reading from the underlying stream, as a sanity check. It is
+ not applied when reading from a byte array data source without an underlying stream.
+ The default value is Int32.MaxValue.
+
+
+ The size limit.
+
+
+
+
+ Returns the recursion limit for this stream. This limit is applied whilst reading messages,
+ to avoid maliciously-recursive data.
+
+
+ The default limit is 100.
+
+
+ The recursion limit for this stream.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Disposes of this instance, potentially closing any underlying stream.
+
+
+ As there is no flushing to perform here, disposing of a which
+ was constructed with the leaveOpen option parameter set to true (or one which
+ was constructed to read from a byte array) has no effect.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of stream".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputStream; it may be the end of the logical stream
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of stream. (0 is never a valid tag.)
+
+
+
+ Skips the data for the field with the tag we've just read.
+ This should be called directly after , when
+ the caller wishes to skip an unknown field.
+
+
+ This method throws if the last-read tag was an end-group tag.
+ If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the
+ start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly
+ resulting in an error if an end-group tag has not been paired with an earlier start-group tag.
+
+ The last tag was an end-group tag
+ The last read operation read to the end of the logical stream
+
+
+
+ Skip a group.
+
+
+
+
+ Reads a double field from the stream.
+
+
+
+
+ Reads a float field from the stream.
+
+
+
+
+ Reads a uint64 field from the stream.
+
+
+
+
+ Reads an int64 field from the stream.
+
+
+
+
+ Reads an int32 field from the stream.
+
+
+
+
+ Reads a fixed64 field from the stream.
+
+
+
+
+ Reads a fixed32 field from the stream.
+
+
+
+
+ Reads a bool field from the stream.
+
+
+
+
+ Reads a string field from the stream.
+
+
+
+
+ Reads an embedded message field value from the stream.
+
+
+
+
+ Reads an embedded group field from the stream.
+
+
+
+
+ Reads a bytes field value from the stream.
+
+
+
+
+ Reads a uint32 field value from the stream.
+
+
+
+
+ Reads an enum field value from the stream.
+
+
+
+
+ Reads an sfixed32 field value from the stream.
+
+
+
+
+ Reads an sfixed64 field value from the stream.
+
+
+
+
+ Reads an sint32 field value from the stream.
+
+
+
+
+ Reads an sint64 field value from the stream.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Reads a raw varint from the stream.
+
+
+
+
+ Reads a 32-bit little-endian integer from the stream.
+
+
+
+
+ Reads a 64-bit little-endian integer from the stream.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a top-level message or a nested message after the limits for this message have been pushed.
+ (parser will proceed until the end of the current limit)
+ NOTE: this method needs to be public because it's invoked by the generated code - e.g. msg.MergeFrom(CodedInputStream input) method
+
+
+
+
+ Encodes and writes protocol message fields.
+
+
+
+ This class is generally used by generated code to write appropriate
+ primitives to the stream. It effectively encapsulates the lowest
+ levels of protocol buffer format. Unlike some other implementations,
+ this does not include combined "write tag and value" methods. Generated
+ code knows the exact byte representations of the tags they're going to write,
+ so there's no need to re-encode them each time. Manually-written code calling
+ this class should just call one of the WriteTag overloads before each value.
+
+
+ Repeated fields and map fields are not handled by this class; use RepeatedField<T>
+ and MapField<TKey, TValue> to serialize such fields.
+
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ double field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ float field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ int32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ fixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bool field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ string field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ group field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ embedded message field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ bytes field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ uint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a
+ enum field, including the tag. The caller is responsible for
+ converting the enum value to its numeric value.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sfixed64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint32 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode an
+ sint64 field, including the tag.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a length,
+ as written by .
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a varint.
+
+
+
+
+ Computes the number of bytes that would be needed to encode a tag.
+
+
+
+
+ The buffer size used by CreateInstance(Stream).
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new CodedOutputStream that writes directly to the given
+ byte array slice. If more bytes are written than fit in the array,
+ OutOfSpaceException will be thrown.
+
+
+
+
+ Creates a new which write to the given stream, and disposes of that
+ stream when the returned CodedOutputStream is disposed.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to. It will be disposed when the returned CodedOutputStream is disposed.
+ The size of buffer to use internally.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream.
+
+ The stream to write to.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Creates a new CodedOutputStream which write to the given stream and uses
+ the specified buffer size.
+
+ The stream to write to.
+ The size of buffer to use internally.
+ If true, is left open when the returned CodedOutputStream is disposed;
+ if false, the provided stream is disposed as well.
+
+
+
+ Returns the current position in the stream, or the position in the output buffer
+
+
+
+
+ Configures whether or not serialization is deterministic.
+
+
+ Deterministic serialization guarantees that for a given binary, equal messages (defined by the
+ equals methods in protos) will always be serialized to the same bytes. This implies:
+
+ - Repeated serialization of a message will return the same bytes.
+ - Different processes of the same binary (which may be executing on different machines)
+ will serialize equal messages to the same bytes.
+
+ Note the deterministic serialization is NOT canonical across languages; it is also unstable
+ across different builds with schema changes due to unknown fields. Users who need canonical
+ serialization, e.g. persistent storage in a canonical form, fingerprinting, etc, should define
+ their own canonicalization specification and implement the serializer using reflection APIs
+ rather than relying on this API.
+ Once set, the serializer will: (Note this is an implementation detail and may subject to
+ change in the future)
+
+ - Sort map entries by keys in lexicographical order or numerical order. Note: For string
+ keys, the order is based on comparing the UTF-16 code unit value of each character in the strings.
+ The order may be different from the deterministic serialization in other languages where
+ maps are sorted on the lexicographical order of the UTF8 encoded keys.
+
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag, to the stream.
+ Only the message data is written, without a length-delimiter.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Indicates that a CodedOutputStream wrapping a flat byte array
+ ran out of space.
+
+
+
+
+ Flushes any buffered data and optionally closes the underlying stream, if any.
+
+
+
+ By default, any underlying stream is closed by this method. To configure this behaviour,
+ use a constructor overload with a leaveOpen parameter. If this instance does not
+ have an underlying stream, this method does nothing.
+
+
+ For the sake of efficiency, calling this method does not prevent future write calls - but
+ if a later write ends up writing to a stream which has been disposed, that is likely to
+ fail. It is recommend that you not call any other methods after this.
+
+
+
+
+
+ Flushes any buffered data to the underlying stream (if there is one).
+
+
+
+
+ Verifies that SpaceLeft returns zero. It's common to create a byte array
+ that is exactly big enough to hold a message, then write to it with
+ a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ the message was actually as big as expected, which can help finding bugs.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ Utility to compare if two Lists are the same, and the hash code
+ of a List.
+
+
+
+
+ Checks if two lists are equal.
+
+
+
+
+ Gets the list's hash code.
+
+
+
+
+ Representation of a map field in a Protocol Buffer message.
+
+ Key type in the map. Must be a type supported by Protocol Buffer map keys.
+ Value type in the map. Must be a type supported by Protocol Buffers.
+
+
+ For string keys, the equality comparison is provided by .
+
+
+ Null values are not permitted in the map, either for wrapper types or regular messages.
+ If a map is deserialized from a data stream and the value is missing from an entry, a default value
+ is created instead. For primitive types, that is the regular default value (0, the empty string and so
+ on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length
+ encoded value for the field.
+
+
+ This implementation does not generally prohibit the use of key/value types which are not
+ supported by Protocol Buffers (e.g. using a key type of byte) but nor does it guarantee
+ that all operations will work in such cases.
+
+
+ The order in which entries are returned when iterating over this object is undefined, and may change
+ in future versions.
+
+
+
+
+
+ Creates a deep clone of this object.
+
+
+ A deep clone of this object.
+
+
+
+
+ Adds the specified key/value pair to the map.
+
+
+ This operation fails if the key already exists in the map. To replace an existing entry, use the indexer.
+
+ The key to add
+ The value to add.
+ The given key already exists in map.
+
+
+
+ Determines whether the specified key is present in the map.
+
+ The key to check.
+ true if the map contains the given key; false otherwise.
+
+
+
+ Removes the entry identified by the given key from the map.
+
+ The key indicating the entry to remove from the map.
+ true if the map contained the given key before the entry was removed; false otherwise.
+
+
+
+ Gets the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, the value associated with the specified key, if the key is found;
+ otherwise, the default value for the type of the parameter.
+ This parameter is passed uninitialized.
+ true if the map contains an element with the specified key; otherwise, false.
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key of the value to get or set.
+ The property is retrieved and key does not exist in the collection.
+ The value associated with the specified key. If the specified key is not found,
+ a get operation throws a , and a set operation creates a new element with the specified key.
+
+
+
+ Gets a collection containing the keys in the map.
+
+
+
+
+ Gets a collection containing the values in the map.
+
+
+
+
+ Adds the specified entries to the map. The keys and values are not automatically cloned.
+
+ The entries to add to the map.
+
+
+
+ Adds the specified entries to the map, replacing any existing entries with the same keys.
+ The keys and values are not automatically cloned.
+
+ This method primarily exists to be called from MergeFrom methods in generated classes for messages.
+ The entries to add to the map.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Adds the specified item to the map.
+
+ The item to add to the map.
+
+
+
+ Removes all items from the map.
+
+
+
+
+ Determines whether map contains an entry equivalent to the given key/value pair.
+
+ The key/value pair to find.
+
+
+
+
+ Copies the key/value pairs in this map to an array.
+
+ The array to copy the entries into.
+ The index of the array at which to start copying values.
+
+
+
+ Removes the specified key/value pair from the map.
+
+ Both the key and the value must be found for the entry to be removed.
+ The key/value pair to remove.
+ true if the key/value pair was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the map.
+
+
+
+
+ Gets a value indicating whether the map is read-only.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this map with another for equality.
+
+
+ The order of the key/value pairs in the maps is not deemed significant in this comparison.
+
+ The map to compare this with.
+ true if refers to an equal map; false otherwise.
+
+
+
+ Adds entries to the map from the given stream.
+
+
+ It is assumed that the stream is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the stream until the end is reached, or
+ a different tag is encountered.
+
+ Stream to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Adds entries to the map from the given parse context.
+
+
+ It is assumed that the input is initially positioned after the tag specified by the codec.
+ This method will continue reading entries from the input until the end is reached, or
+ a different tag is encountered.
+
+ Input to read from
+ Codec describing how the key/value pairs are encoded
+
+
+
+ Writes the contents of this map to the given coded output stream, using the specified codec
+ to encode each entry.
+
+ The output stream to write to.
+ The codec to use for each entry.
+
+
+
+ Writes the contents of this map to the given write context, using the specified codec
+ to encode each entry.
+
+ The write context to write to.
+ The codec to use for each entry.
+
+
+
+ Calculates the size of this map based on the given entry codec.
+
+ The codec to use to encode each entry.
+
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ A codec for a specific map field. This contains all the information required to encode and
+ decode the nested messages.
+
+
+
+
+ Creates a new entry codec based on a separate key codec and value codec,
+ and the tag to use for each map entry.
+
+ The key codec.
+ The value codec.
+ The map tag to use to introduce each map entry.
+
+
+
+ The key codec.
+
+
+
+
+ The value codec.
+
+
+
+
+ The tag used in the enclosing message to indicate map entries.
+
+
+
+
+ Provides a central place to implement equality comparisons, primarily for bitwise float/double equality.
+
+
+
+
+ Returns an equality comparer for suitable for Protobuf equality comparisons.
+ This is usually just the default equality comparer for the type, but floating point numbers are compared
+ bitwise.
+
+ The type of equality comparer to return.
+ The equality comparer.
+
+
+
+ Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
+ (NaN values are considered equal, but only when they have the same representation.)
+
+
+
+
+ The contents of a repeated field: essentially, a collection with some extra
+ restrictions (no null values) and capabilities (deep cloning).
+
+
+ This implementation does not generally prohibit the use of types which are not
+ supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases.
+
+ The element type of the repeated field.
+
+
+
+ Creates a deep clone of this repeated field.
+
+
+ If the field type is
+ a message type, each element is also cloned; otherwise, it is
+ assumed that the field type is primitive (including string and
+ bytes, both of which are immutable) and so a simple copy is
+ equivalent to a deep clone.
+
+ A deep clone of this repeated field.
+
+
+
+ Adds the entries from the given input stream, decoding them with the specified codec.
+
+ The input stream to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Adds the entries from the given parse context, decoding them with the specified codec.
+
+ The input to read from.
+ The codec to use in order to read each entry.
+
+
+
+ Calculates the size of this collection based on the given codec.
+
+ The codec to use when encoding each field.
+ The number of bytes that would be written to an output by one of the WriteTo methods,
+ using the same codec.
+
+
+
+ Writes the contents of this collection to the given ,
+ encoding each value using the specified codec.
+
+ The output stream to write to.
+ The codec to use when encoding each value.
+
+
+
+ Writes the contents of this collection to the given write context,
+ encoding each value using the specified codec.
+
+ The write context to write to.
+ The codec to use when encoding each value.
+
+
+
+ Gets and sets the capacity of the RepeatedField's internal array.
+ When set, the internal array is reallocated to the given capacity.
+ The new value is less than .
+
+
+
+
+ Adds the specified item to the collection.
+
+ The item to add.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Determines whether this collection contains the given item.
+
+ The item to find.
+ true if this collection contains the given item; false otherwise.
+
+
+
+ Copies this collection to the given array.
+
+ The array to copy to.
+ The first index of the array to copy to.
+
+
+
+ Removes the specified item from the collection
+
+ The item to remove.
+ true if the item was found and removed; false otherwise.
+
+
+
+ Gets the number of elements contained in the collection.
+
+
+
+
+ Gets a value indicating whether the collection is read-only.
+
+
+
+
+ Adds all of the specified values into this collection.
+
+ The values to add to this collection.
+
+
+
+ Adds all of the specified values into this collection. This method is present to
+ allow repeated fields to be constructed from queries within collection initializers.
+ Within non-collection-initializer code, consider using the equivalent
+ method instead for clarity.
+
+ The values to add to this collection.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ An enumerator that can be used to iterate through the collection.
+
+
+
+
+ Determines whether the specified , is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Compares this repeated field with another for equality.
+
+ The repeated field to compare this with.
+ true if refers to an equal repeated field; false otherwise.
+
+
+
+ Returns the index of the given item within the collection, or -1 if the item is not
+ present.
+
+ The item to find in the collection.
+ The zero-based index of the item, or -1 if it is not found.
+
+
+
+ Inserts the given item at the specified index.
+
+ The index at which to insert the item.
+ The item to insert.
+
+
+
+ Removes the item at the given index.
+
+ The zero-based index of the item to remove.
+
+
+
+ Returns a string representation of this repeated field, in the same
+ way as it would be represented by the default JSON formatter.
+
+
+
+
+ Gets or sets the item at the specified index.
+
+
+ The element at the specified index.
+
+ The zero-based index of the element to get or set.
+ The item at the specified index.
+
+
+
+ Extension methods for , effectively providing
+ the familiar members from previous desktop framework versions while
+ targeting the newer releases, .NET Core etc.
+
+
+
+
+ Returns the public getter of a property, or null if there is no such getter
+ (either because it's read-only, or the getter isn't public).
+
+
+
+
+ Returns the public setter of a property, or null if there is no such setter
+ (either because it's write-only, or the setter isn't public).
+
+
+
+
+ Provides extension methods on Type that just proxy to TypeInfo.
+ These are used to support the new type system from .NET 4.5, without
+ having calls to GetTypeInfo all over the place. While the methods here are meant to be
+ broadly compatible with the desktop framework, there are some subtle differences in behaviour - but
+ they're not expected to affect our use cases. While the class is internal, that should be fine: we can
+ evaluate each new use appropriately.
+
+
+
+
+ See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom
+
+
+
+
+ Returns a representation of the public property associated with the given name in the given type,
+ including inherited properties or null if there is no such public property.
+ Here, "public property" means a property where either the getter, or the setter, or both, is public.
+
+
+
+
+ Returns a representation of the public method associated with the given name in the given type,
+ including inherited methods.
+
+
+ This has a few differences compared with Type.GetMethod in the desktop framework. It will throw
+ if there is an ambiguous match even between a private method and a public one, but it *won't* throw
+ if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and
+ class Child : Base declares public void Foo(long)).
+
+ One type in the hierarchy declared more than one method with the same name
+
+
+ Holder for reflection information generated from google/protobuf/compiler/plugin.proto
+
+
+ File descriptor for google/protobuf/compiler/plugin.proto
+
+
+
+ The version number of protocol compiler.
+
+
+
+ Field number for the "major" field.
+
+
+ Gets whether the "major" field is set
+
+
+ Clears the value of the "major" field
+
+
+ Field number for the "minor" field.
+
+
+ Gets whether the "minor" field is set
+
+
+ Clears the value of the "minor" field
+
+
+ Field number for the "patch" field.
+
+
+ Gets whether the "patch" field is set
+
+
+ Clears the value of the "patch" field
+
+
+ Field number for the "suffix" field.
+
+
+
+ A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
+ be empty for mainline stable releases.
+
+
+
+ Gets whether the "suffix" field is set
+
+
+ Clears the value of the "suffix" field
+
+
+
+ An encoded CodeGeneratorRequest is written to the plugin's stdin.
+
+
+
+ Field number for the "file_to_generate" field.
+
+
+
+ The .proto files that were explicitly listed on the command-line. The
+ code generator should generate code only for these files. Each file's
+ descriptor will be included in proto_file, below.
+
+
+
+ Field number for the "parameter" field.
+
+
+
+ The generator parameter passed on the command-line.
+
+
+
+ Gets whether the "parameter" field is set
+
+
+ Clears the value of the "parameter" field
+
+
+ Field number for the "proto_file" field.
+
+
+
+ FileDescriptorProtos for all files in files_to_generate and everything
+ they import. The files will appear in topological order, so each file
+ appears before any file that imports it.
+
+ Note: the files listed in files_to_generate will include runtime-retention
+ options only, but all other files will include source-retention options.
+ The source_file_descriptors field below is available in case you need
+ source-retention options for files_to_generate.
+
+ protoc guarantees that all proto_files will be written after
+ the fields above, even though this is not technically guaranteed by the
+ protobuf wire format. This theoretically could allow a plugin to stream
+ in the FileDescriptorProtos and handle them one by one rather than read
+ the entire set into memory at once. However, as of this writing, this
+ is not similarly optimized on protoc's end -- it will store all fields in
+ memory at once before sending them to the plugin.
+
+ Type names of fields and extensions in the FileDescriptorProto are always
+ fully qualified.
+
+
+
+ Field number for the "source_file_descriptors" field.
+
+
+
+ File descriptors with all options, including source-retention options.
+ These descriptors are only provided for the files listed in
+ files_to_generate.
+
+
+
+ Field number for the "compiler_version" field.
+
+
+
+ The version number of protocol compiler.
+
+
+
+
+ The plugin writes an encoded CodeGeneratorResponse to stdout.
+
+
+
+ Field number for the "error" field.
+
+
+
+ Error message. If non-empty, code generation failed. The plugin process
+ should exit with status code zero even if it reports an error in this way.
+
+ This should be used to indicate errors in .proto files which prevent the
+ code generator from generating correct code. Errors which indicate a
+ problem in protoc itself -- such as the input CodeGeneratorRequest being
+ unparseable -- should be reported by writing a message to stderr and
+ exiting with a non-zero status code.
+
+
+
+ Gets whether the "error" field is set
+
+
+ Clears the value of the "error" field
+
+
+ Field number for the "supported_features" field.
+
+
+
+ A bitmask of supported features that the code generator supports.
+ This is a bitwise "or" of values from the Feature enum.
+
+
+
+ Gets whether the "supported_features" field is set
+
+
+ Clears the value of the "supported_features" field
+
+
+ Field number for the "minimum_edition" field.
+
+
+
+ The minimum edition this plugin supports. This will be treated as an
+ Edition enum, but we want to allow unknown values. It should be specified
+ according the edition enum value, *not* the edition number. Only takes
+ effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
+
+
+
+ Gets whether the "minimum_edition" field is set
+
+
+ Clears the value of the "minimum_edition" field
+
+
+ Field number for the "maximum_edition" field.
+
+
+
+ The maximum edition this plugin supports. This will be treated as an
+ Edition enum, but we want to allow unknown values. It should be specified
+ according the edition enum value, *not* the edition number. Only takes
+ effect for plugins that have FEATURE_SUPPORTS_EDITIONS set.
+
+
+
+ Gets whether the "maximum_edition" field is set
+
+
+ Clears the value of the "maximum_edition" field
+
+
+ Field number for the "file" field.
+
+
+ Container for nested types declared in the CodeGeneratorResponse message type.
+
+
+
+ Sync with code_generator.h.
+
+
+
+
+ Represents a single generated file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The file name, relative to the output directory. The name must not
+ contain "." or ".." components and must be relative, not be absolute (so,
+ the file cannot lie outside the output directory). "/" must be used as
+ the path separator, not "\".
+
+ If the name is omitted, the content will be appended to the previous
+ file. This allows the generator to break large files into small chunks,
+ and allows the generated text to be streamed back to protoc so that large
+ files need not reside completely in memory at one time. Note that as of
+ this writing protoc does not optimize for this -- it will read the entire
+ CodeGeneratorResponse before writing files to disk.
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "insertion_point" field.
+
+
+
+ If non-empty, indicates that the named file should already exist, and the
+ content here is to be inserted into that file at a defined insertion
+ point. This feature allows a code generator to extend the output
+ produced by another code generator. The original generator may provide
+ insertion points by placing special annotations in the file that look
+ like:
+ @@protoc_insertion_point(NAME)
+ The annotation can have arbitrary text before and after it on the line,
+ which allows it to be placed in a comment. NAME should be replaced with
+ an identifier naming the point -- this is what other generators will use
+ as the insertion_point. Code inserted at this point will be placed
+ immediately above the line containing the insertion point (thus multiple
+ insertions to the same point will come out in the order they were added).
+ The double-@ is intended to make it unlikely that the generated code
+ could contain things that look like insertion points by accident.
+
+ For example, the C++ code generator places the following line in the
+ .pb.h files that it generates:
+ // @@protoc_insertion_point(namespace_scope)
+ This line appears within the scope of the file's package namespace, but
+ outside of any particular class. Another plugin can then specify the
+ insertion_point "namespace_scope" to generate additional classes or
+ other declarations that should be placed in this scope.
+
+ Note that if the line containing the insertion point begins with
+ whitespace, the same whitespace will be added to every line of the
+ inserted text. This is useful for languages like Python, where
+ indentation matters. In these languages, the insertion point comment
+ should be indented the same amount as any inserted code will need to be
+ in order to work correctly in that context.
+
+ The code generator that generates the initial file and the one which
+ inserts into it must both run as part of a single invocation of protoc.
+ Code generators are executed in the order in which they appear on the
+ command line.
+
+ If |insertion_point| is present, |name| must also be present.
+
+
+
+ Gets whether the "insertion_point" field is set
+
+
+ Clears the value of the "insertion_point" field
+
+
+ Field number for the "content" field.
+
+
+
+ The file contents.
+
+
+
+ Gets whether the "content" field is set
+
+
+ Clears the value of the "content" field
+
+
+ Field number for the "generated_code_info" field.
+
+
+
+ Information describing the file content being inserted. If an insertion
+ point is used, this information will be appropriately offset and inserted
+ into the code generation metadata for the generated files.
+
+
+
+
+ Represents a non-generic extension definition. This API is experimental and subject to change.
+
+
+
+
+ Internal use. Creates a new extension with the specified field number.
+
+
+
+
+ Gets the field number of this extension
+
+
+
+
+ Represents a type-safe extension identifier used for getting and setting single extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The field value type of this extension
+
+
+
+ Creates a new extension identifier with the specified field number and codec
+
+
+
+
+ Represents a type-safe extension identifier used for getting repeated extension values in instances.
+ This API is experimental and subject to change.
+
+ The message type this field applies to
+ The repeated field value type of this extension
+
+
+
+ Creates a new repeated extension identifier with the specified field number and codec
+
+
+
+
+ Provides extensions to messages while parsing. This API is experimental and subject to change.
+
+
+
+
+ Creates a new empty extension registry
+
+
+
+
+ Gets the total number of extensions in this extension registry
+
+
+
+
+ Returns whether the registry is readonly
+
+
+
+
+ Adds the specified extension to the registry
+
+
+
+
+ Adds the specified extensions to the registry
+
+
+
+
+ Clears the registry of all values
+
+
+
+
+ Gets whether the extension registry contains the specified extension
+
+
+
+
+ Copies the arrays in the registry set to the specified array at the specified index
+
+ The array to copy to
+ The array index to start at
+
+
+
+ Returns an enumerator to enumerate through the items in the registry
+
+ Returns an enumerator for the extensions in this registry
+
+
+
+ Removes the specified extension from the set
+
+ The extension
+ true if the extension was removed, otherwise false
+
+
+
+ Clones the registry into a new registry
+
+
+
+
+ Methods for managing s with null checking.
+
+ Most users will not use this class directly and its API is experimental and subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if it doesn't exist in this set
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it doesn't exist
+
+
+
+
+ Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Tries to merge a field from the coded input, returning true if the field was merged.
+ If the set is null or the field was not otherwise merged, this returns false.
+
+
+
+
+ Merges the second set into the first set, creating a new instance if first is null
+
+
+
+
+ Clones the set into a new set. If the set is null, this returns null
+
+
+
+
+ Used for keeping track of extensions in messages.
+ methods route to this set.
+
+ Most users will not need to use this class directly
+
+ The message type that extensions in this set target
+
+
+
+ Gets a hash code of the set
+
+
+
+
+ Returns whether this set is equal to the other object
+
+
+
+
+ Calculates the size of this extension set
+
+
+
+
+ Writes the extension values in this set to the output stream
+
+
+
+
+ Writes the extension values in this set to the write context
+
+
+
+
+ Factory methods for .
+
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a string field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bytes field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a bool field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint32 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an int64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a fixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an sfixed64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a uint64 field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a float field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a double field with the given tag.
+
+ The tag.
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for an enum field with the given tag.
+
+ The tag.
+ A conversion function from to the enum type.
+ A conversion function from the enum type to .
+ The default value.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a message field with the given tag.
+
+ The tag.
+ A parser to use for the message type.
+ A codec for the given tag.
+
+
+
+ Retrieves a codec suitable for a group field with the given tag.
+
+ The start group tag.
+ The end group tag.
+ A parser to use for the group message type.
+ A codec for given tag
+
+
+
+ Creates a codec for a wrapper type of a class - which must be string or ByteString.
+
+
+
+
+ Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64,
+ Bool, Single or Double.
+
+
+
+
+ Helper code to create codecs for wrapper types.
+
+
+ Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it
+ slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place,
+ we can refactor later if we come up with something cleaner.
+
+
+
+
+ Returns a field codec which effectively wraps a value of type T in a message.
+
+
+
+
+
+
+ An encode/decode pair for a single field. This effectively encapsulates
+ all the information needed to read or write the field value from/to a coded
+ stream.
+
+
+ This class is public and has to be as it is used by generated code, but its public
+ API is very limited - just what the generated code needs to call directly.
+
+
+
+ This never writes default values to the stream, and does not address "packedness"
+ in repeated fields itself, other than to know whether or not the field *should* be packed.
+
+
+
+
+ Merges an input stream into a value
+
+
+
+
+ Merges a value into a reference to another value, returning a boolean if the value was set
+
+
+
+
+ Returns a delegate to write a value (unconditionally) to a coded output stream.
+
+
+
+
+ Returns the size calculator for just a value.
+
+
+
+
+ Returns a delegate to read a value from a coded input stream. It is assumed that
+ the stream is already positioned on the appropriate tag.
+
+
+
+
+ Returns a delegate to merge a value from a coded input stream.
+ It is assumed that the stream is already positioned on the appropriate tag
+
+
+
+
+ Returns a delegate to merge two values together.
+
+
+
+
+ Returns the fixed size for an entry, or 0 if sizes vary.
+
+
+
+
+ Gets the tag of the codec.
+
+
+ The tag of the codec.
+
+
+
+
+ Gets the end tag of the codec or 0 if there is no end tag
+
+
+ The end tag of the codec.
+
+
+
+
+ Default value for this codec. Usually the same for every instance of the same type, but
+ for string/ByteString wrapper fields the codec's default value is null, whereas for
+ other string/ByteString fields it's "" or ByteString.Empty.
+
+
+ The default value of the codec's type.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Write a tag and the given value, *if* the value is not the default.
+
+
+
+
+ Reads a value of the codec type from the given .
+
+ The input stream to read from.
+ The value read from the stream.
+
+
+
+ Reads a value of the codec type from the given .
+
+ The parse context to read from.
+ The value read.
+
+
+
+ Calculates the size required to write the given value, with a tag,
+ if the value is not the default.
+
+
+
+
+ Calculates the size required to write the given value, with a tag, even
+ if the value is the default.
+
+
+
+
+ A tree representation of a FieldMask. Each leaf node in this tree represent
+ a field path in the FieldMask.
+
+ For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be:
+
+ [root] -+- foo -+- bar
+ | |
+ | +- baz
+ |
+ +- bar --- baz
+
+
+ By representing FieldMasks with this tree structure we can easily convert
+ a FieldMask to a canonical form, merge two FieldMasks, calculate the
+ intersection to two FieldMasks and traverse all fields specified by the
+ FieldMask in a message tree.
+
+
+
+
+ Creates an empty FieldMaskTree.
+
+
+
+
+ Creates a FieldMaskTree for a given FieldMask.
+
+
+
+
+ Adds a field path to the tree. In a FieldMask, every field path matches the
+ specified field as well as all its sub-fields. For example, a field path
+ "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding
+ a field path to the tree, redundant sub-paths will be removed. That is,
+ after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it
+ exists, which will turn the tree node for "foo.bar" to a leaf node.
+ Likewise, if the field path to add is a sub-path of an existing leaf node,
+ nothing will be changed in the tree.
+
+
+
+
+ Merges all field paths in a FieldMask into this tree.
+
+
+
+
+ Converts this tree to a FieldMask.
+
+
+
+
+ Gathers all field paths in a sub-tree.
+
+
+
+
+ Adds the intersection of this tree with the given to .
+
+
+
+
+ Merges all fields specified by this FieldMaskTree from to .
+
+
+
+
+ Merges all fields specified by a sub-tree from to .
+
+
+
+
+ Class containing helpful workarounds for various platform compatibility
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ parsing from and writing to .
+
+
+
+
+ Internal implementation of merging data from given parse context into this message.
+ Users should never invoke this method directly.
+
+
+
+
+ Internal implementation of writing this message to a given write context.
+ Users should never invoke this method directly.
+
+
+
+
+ A message type that has a custom string format for diagnostic purposes.
+
+
+
+ Calling on a generated message type normally
+ returns the JSON representation. If a message type implements this interface,
+ then the method will be called instead of the regular
+ JSON formatting code, but only when ToString() is called either on the message itself
+ or on another message which contains it. This does not affect the normal JSON formatting of
+ the message.
+
+
+ For example, if you create a proto message representing a GUID, the internal
+ representation may be a bytes field or four fixed32 fields. However, when debugging
+ it may be more convenient to see a result in the same format as provides.
+
+ This interface extends to avoid it accidentally being implemented
+ on types other than messages, where it would not be used by anything in the framework.
+
+
+
+
+ Returns a string representation of this object, for diagnostic purposes.
+
+
+ This method is called when a message is formatted as part of a
+ call. It does not affect the JSON representation used by other than
+ in calls to . While it is recommended
+ that the result is valid JSON, this is never assumed by the Protobuf library.
+
+ A string representation of this object, for diagnostic purposes.
+
+
+
+ Generic interface for a deeply cloneable type.
+
+
+
+ All generated messages implement this interface, but so do some non-message types.
+ Additionally, due to the type constraint on T in ,
+ it is simpler to keep this as a separate interface.
+
+
+ The type itself, returned by the method.
+
+
+
+ Creates a deep clone of this object.
+
+ A deep clone of this object.
+
+
+
+ Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class.
+ This interface is experiemental and is subject to change.
+
+
+
+
+ Gets the value of the specified extension
+
+
+
+
+ Gets the value of the specified repeated extension or null if the extension isn't registered in this set.
+ For a version of this method that never returns null, use
+
+
+
+
+ Gets the value of the specified repeated extension, registering it if it hasn't already been registered.
+
+
+
+
+ Sets the value of the specified extension
+
+
+
+
+ Gets whether the value of the specified extension is set
+
+
+
+
+ Clears the value of the specified extension
+
+
+
+
+ Clears the value of the specified repeated extension
+
+
+
+
+ Interface for a Protocol Buffers message, supporting
+ basic operations required for serialization.
+
+
+
+
+ Merges the data from the specified coded input stream with the current message.
+
+ See the user guide for precise merge semantics.
+
+
+
+
+ Writes the data to the given coded output stream.
+
+ Coded output stream to write the data to. Must not be null.
+
+
+
+ Calculates the size of this message in Protocol Buffer wire format, in bytes.
+
+ The number of bytes required to write this message
+ to a coded output stream.
+
+
+
+ Descriptor for this message. All instances are expected to return the same descriptor,
+ and for generated types this will be an explicitly-implemented member, returning the
+ same value as the static property declared on the type.
+
+
+
+
+ Generic interface for a Protocol Buffers message,
+ where the type parameter is expected to be the same type as
+ the implementation class.
+
+ The message type.
+
+
+
+ Merges the given message into this one.
+
+ See the user guide for precise merge semantics.
+ The message to merge with this one. Must not be null.
+
+
+
+ Thrown when an attempt is made to parse invalid JSON, e.g. using
+ a non-string property key, or including a redundant comma. Parsing a protocol buffer
+ message represented in JSON using can throw both this
+ exception and depending on the situation. This
+ exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException
+ is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer
+ message.
+
+
+
+
+ Thrown when a protocol message being parsed is invalid in some way,
+ e.g. it contains a malformed varint or a negative byte length.
+
+
+
+
+ Creates an exception for an error condition of an invalid tag being encountered.
+
+
+
+
+ Reflection-based converter from messages to JSON.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON formatting working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ The JSON representation of the first 160 characters of Unicode.
+ Empty strings are replaced by the static constructor.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ This method delegates to Format(IMessage, int) with indentationLevel =
+ 0. The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ Indentation level to start at.
+ To keep consistent indentation when embedding a message inside another JSON string,
+ set . E.g: var response = $@"{{
+ ""data"": { Format(message, indentationLevel: 1) }
+ }}"
+
+ The formatted message.
+
+
+
+ Formats the specified message as JSON.
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ This method delegates to Format(IMessage, TextWriter, int) with
+ indentationLevel = 0. The formatted message.
+
+
+
+ Formats the specified message as JSON. When is not null,
+ start indenting at the specified .
+
+ The message to format.
+ The TextWriter to write the formatted message to.
+ Indentation level to start at.
+ To keep consistent indentation when embedding a message inside another JSON string,
+ set .
+
+
+
+ Converts a message to JSON for diagnostic purposes with no extra context.
+
+
+
+ This differs from calling on the default JSON
+ formatter in its handling of . As no type registry is available
+ in calls, the normal way of resolving the type of
+ an Any message cannot be applied. Instead, a JSON property named @value
+ is included with the base64 data from the property of the message.
+
+ The value returned by this method is only designed to be used for diagnostic
+ purposes. It may not be parsable by , and may not be parsable
+ by other Protocol Buffer implementations.
+
+ The message to format for diagnostic purposes.
+ The diagnostic-only JSON representation of the message
+
+
+
+ Determines whether or not a field value should be serialized according to the field,
+ its value in the message, and the settings of this formatter.
+
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+ Delegates to WriteValue(TextWriter, object, int) with indentationLevel =
+ 0.
+
+
+
+ Writes a single value to the given writer as JSON. Only types understood by
+ Protocol Buffers can be written in this way. This method is only exposed for
+ advanced use cases; most users should be using
+ or .
+
+ The writer to write the value to. Must not be null.
+ The value to write. May be null.
+ The current indentationLevel. Not used when is null.
+
+
+
+ Central interception point for well-known type formatting. Any well-known types which
+ don't need special handling can fall back to WriteMessage. We avoid assuming that the
+ values are using the embedded well-known types, in order to allow for dynamic messages
+ in the future.
+
+
+
+
+ Writes a string (including leading and trailing double quotes) to a builder, escaping as
+ required.
+
+
+ Other than surrogate pair handling, this code is mostly taken from
+ src/google/protobuf/util/internal/json_escaping.cc.
+
+
+
+
+ Settings controlling JSON formatting.
+
+
+
+
+ Default settings, as used by
+
+
+
+
+ Whether fields which would otherwise not be included in the formatted data
+ should be formatted even when the value is not present, or has the default value.
+ This option only affects fields which don't support "presence" (e.g.
+ singular non-optional proto3 primitive fields).
+
+
+
+
+ The type registry used to format messages.
+
+
+
+
+ Whether to format enums as ints. Defaults to false.
+
+
+
+
+ Whether to use the original proto field names as defined in the .proto file. Defaults to
+ false.
+
+
+
+
+ Indentation string, used for formatting. Setting null disables indentation.
+
+
+
+
+ Creates a new object with the specified formatting of default
+ values and an empty type registry.
+
+ true if default values (0, empty strings etc)
+ should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified formatting of default
+ values and type registry.
+
+ true if default values (0, empty strings etc)
+ should be formatted; false otherwise. The to use when formatting messages.
+
+
+
+ Creates a new object with the specified parameters.
+
+ true if default values (0, empty strings etc)
+ should be formatted; false otherwise. The to use when formatting messages.
+ TypeRegistry.Empty will be used if it is null. true to format the enums as integers; false to
+ format enums as enum names. true to
+ preserve proto field names; false to convert them to lowerCamelCase. The indentation string to use for multi-line formatting. null to
+ disable multi-line format.
+
+
+
+ Creates a new object with the specified formatting of default
+ values and the current settings.
+
+ true if default values (0, empty strings etc)
+ should be formatted; false otherwise.
+
+
+
+ Creates a new object with the specified type registry and the
+ current settings.
+
+ The to use when formatting messages.
+
+
+
+ Creates a new object with the specified enums formatting option and
+ the current settings.
+
+ true to format the enums as integers;
+ false to format enums as enum names.
+
+
+
+ Creates a new object with the specified field name formatting
+ option and the current settings.
+
+ true to preserve proto field names;
+ false to convert them to lowerCamelCase.
+
+
+
+ Creates a new object with the specified indentation and the current
+ settings.
+
+ The string to output for each level of indentation (nesting).
+ The default is two spaces per level. Use null to disable indentation entirely.
+ A non-null value for will insert additional line-breaks
+ to the JSON output. Each line will contain either a single value, or braces. The default
+ line-break is determined by , which is "\n" on
+ Unix platforms, and "\r\n" on Windows. If seems to
+ produce empty lines, you need to pass a that uses a "\n"
+ newline. See .
+
+
+
+
+ Reflection-based converter from JSON to messages.
+
+
+
+ Instances of this class are thread-safe, with no mutable state.
+
+
+ This is a simple start to get JSON parsing working. As it's reflection-based,
+ it's not as quick as baking calls into generated messages - but is a simpler implementation.
+ (This code is generally not heavily optimized.)
+
+
+
+
+
+ Returns a formatter using the default settings.
+
+
+
+
+ Creates a new formatted with the given settings.
+
+ The settings.
+
+
+
+ Parses and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ The JSON to parse.
+
+
+
+ Parses JSON read from and merges the information into the given message.
+
+ The message to merge the JSON information into.
+ Reader providing the JSON to parse.
+
+
+
+ Merges the given message using data from the given tokenizer. In most cases, the next
+ token should be a "start object" token, but wrapper types and nullity can invalidate
+ that assumption. This is implemented as an LL(1) recursive descent parser over the stream
+ of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the
+ tokenizer performing that validation - but not every token stream is valid "protobuf JSON".
+
+
+
+
+ Parses into a new message.
+
+ The type of message to create.
+ The JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ The type of message to create.
+ Reader providing the JSON to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses into a new message.
+
+ The JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Parses JSON read from into a new message.
+
+ Reader providing the JSON to parse.
+ Descriptor of message type to parse.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new instance of the message type for the given field.
+
+
+
+
+ Checks that any infinite/NaN values originated from the correct text.
+ This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the
+ way that Mono parses out-of-range values as infinity.
+
+
+
+
+ Settings controlling JSON parsing.
+
+
+
+
+ Default settings, as used by . This has the same default
+ recursion limit as , and an empty type registry.
+
+
+
+
+ The maximum depth of messages to parse. Note that this limit only applies to parsing
+ messages, not collections - so a message within a collection within a message only counts as
+ depth 2, not 3.
+
+
+
+
+ The type registry used to parse messages.
+
+
+
+
+ Whether the parser should ignore unknown fields (true) or throw an exception when
+ they are encountered (false).
+
+
+
+
+ Creates a new object with the specified recursion limit.
+
+ The maximum depth of messages to parse
+
+
+
+ Creates a new object with the specified recursion limit and type registry.
+
+ The maximum depth of messages to parse
+ The type registry used to parse messages
+
+
+
+ Creates a new object set to either ignore unknown fields, or throw an exception
+ when unknown fields are encountered.
+
+ true if unknown fields should be ignored when parsing; false to throw an exception.
+
+
+
+ Creates a new object based on this one, but with the specified recursion limit.
+
+ The new recursion limit.
+
+
+
+ Creates a new object based on this one, but with the specified type registry.
+
+ The new type registry. Must not be null.
+
+
+
+ Simple but strict JSON tokenizer, rigidly following RFC 7159.
+
+
+
+ This tokenizer is stateful, and only returns "useful" tokens - names, values etc.
+ It does not create tokens for the separator between names and values, or for the comma
+ between values. It validates the token stream as it goes - so callers can assume that the
+ tokens it produces are appropriate. For example, it would never produce "start object, end array."
+
+ Implementation details: the base class handles single token push-back and
+ Not thread-safe.
+
+
+
+
+ Creates a tokenizer that reads from the given text reader.
+
+
+
+
+ Creates a tokenizer that first replays the given list of tokens, then continues reading
+ from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back
+ on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was
+ created for the sake of Any parsing.
+
+
+
+
+ Returns the depth of the stack, purely in objects (not collections).
+ Informally, this is the number of remaining unclosed '{' characters we have.
+
+
+
+
+ Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream,
+ after which point Next() should not be called again.
+
+ This implementation provides single-token buffering, and calls if there is no buffered token.
+ The next token in the stream. This is never null.
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Returns the next JSON token in the stream, when requested by the base class. (The method delegates
+ to this if it doesn't have a buffered token.)
+
+ This method is called after an EndDocument token has been returned
+ The input text does not comply with RFC 7159
+
+
+
+ Skips the value we're about to read. This must only be called immediately after reading a property name.
+ If the value is an object or an array, the complete object/array is skipped.
+
+
+
+
+ Tokenizer which first exhausts a list of tokens, then consults another tokenizer.
+
+
+
+
+ Tokenizer which does all the *real* work of parsing JSON.
+
+
+
+
+ This method essentially just loops through characters skipping whitespace, validating and
+ changing state (e.g. from ObjectBeforeColon to ObjectAfterColon)
+ until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point
+ it returns the token. Although the method is large, it would be relatively hard to break down further... most
+ of it is the large switch statement, which sometimes returns and sometimes doesn't.
+
+
+
+
+ Reads a string token. It is assumed that the opening " has already been read.
+
+
+
+
+ Reads an escaped character. It is assumed that the leading backslash has already been read.
+
+
+
+
+ Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read.
+
+
+
+
+ Consumes a text-only literal, throwing an exception if the read text doesn't match it.
+ It is assumed that the first letter of the literal has already been read.
+
+
+
+
+ Validates that we're in a valid state to read a value (using the given error prefix if necessary)
+ and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty.
+
+
+
+
+ Pops the top-most container, and sets the state to the appropriate one for the end of a value
+ in the parent container.
+
+
+
+
+ Possible states of the tokenizer.
+
+
+ This is a flags enum purely so we can simply and efficiently represent a set of valid states
+ for checking.
+
+ Each is documented with an example,
+ where ^ represents the current position within the text stream. The examples all use string values,
+ but could be any value, including nested objects/arrays.
+ The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects).
+ Any additional notional state of "AfterValue" indicates that a value has been completed, at which
+ point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue.
+
+
+ These states were derived manually by reading RFC 7159 carefully.
+
+
+
+
+
+ ^ { "foo": "bar" }
+ Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue"
+
+
+
+
+ { "foo": "bar" } ^
+ After the value in a document. Next states: ReaderExhausted
+
+
+
+
+ { "foo": "bar" } ^ (and already read to the end of the reader)
+ Terminal state.
+
+
+
+
+ { ^ "foo": "bar" }
+ Before the *first* property in an object.
+ Next states:
+ "AfterValue" (empty object)
+ ObjectBeforeColon (read a name)
+
+
+
+
+ { "foo" ^ : "bar", "x": "y" }
+ Next state: ObjectAfterColon
+
+
+
+
+ { "foo" : ^ "bar", "x": "y" }
+ Before any property other than the first in an object.
+ (Equivalently: after any property in an object)
+ Next states:
+ "AfterValue" (value is simple)
+ ObjectStart (value is object)
+ ArrayStart (value is array)
+
+
+
+
+ { "foo" : "bar" ^ , "x" : "y" }
+ At the end of a property, so expecting either a comma or end-of-object
+ Next states: ObjectAfterComma or "AfterValue"
+
+
+
+
+ { "foo":"bar", ^ "x":"y" }
+ Read the comma after the previous property, so expecting another property.
+ This is like ObjectStart, but closing brace isn't valid here
+ Next state: ObjectBeforeColon.
+
+
+
+
+ [ ^ "foo", "bar" ]
+ Before the *first* value in an array.
+ Next states:
+ "AfterValue" (read a value)
+ "AfterValue" (end of array; will pop stack)
+
+
+
+
+ [ "foo" ^ , "bar" ]
+ After any value in an array, so expecting either a comma or end-of-array
+ Next states: ArrayAfterComma or "AfterValue"
+
+
+
+
+ [ "foo", ^ "bar" ]
+ After a comma in an array, so there *must* be another value (simple or complex).
+ Next states: "AfterValue" (simple value), StartObject, StartArray
+
+
+
+
+ Wrapper around a text reader allowing small amounts of buffering and location handling.
+
+
+
+
+ The buffered next character, if we have one.
+
+
+
+
+ Returns the next character in the stream, or null if we have reached the end.
+
+
+
+
+
+ Creates a new exception appropriate for the current state of the reader.
+
+
+
+
+ Stream implementation which proxies another stream, only allowing a certain amount
+ of data to be read. Note that this is only used to read delimited streams, so it
+ doesn't attempt to implement everything.
+
+
+
+
+ Extension methods on and .
+
+
+
+
+ Merges data from the given byte array into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given byte array slice into an existing message.
+
+ The message to merge the data into.
+ The data containing the slice to merge, which must be protobuf-encoded binary data.
+ The offset of the slice to merge.
+ The length of the slice to merge.
+
+
+
+ Merges data from the given byte string into an existing message.
+
+ The message to merge the data into.
+ The data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given stream into an existing message.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given span into an existing message.
+
+ The message to merge the data into.
+ Span containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges data from the given sequence into an existing message.
+
+ The message to merge the data into.
+ Sequence from the specified data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Merges length-delimited data from the given stream into an existing message.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The message to merge the data into.
+ Stream containing the data to merge, which must be protobuf-encoded binary data.
+
+
+
+ Converts the given message into a byte array in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte array.
+
+
+
+ Writes the given message data to the given stream in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the length and then data of the given message to a stream.
+
+ The message to write.
+ The output stream to write to.
+
+
+
+ Converts the given message into a byte string in protobuf encoding.
+
+ The message to convert.
+ The message data as a byte string.
+
+
+
+ Writes the given message data to the given buffer writer in protobuf encoding.
+
+ The message to write to the stream.
+ The stream to write to.
+
+
+
+ Writes the given message data to the given span in protobuf encoding.
+ The size of the destination span needs to fit the serialized size
+ of the message exactly, otherwise an exception is thrown.
+
+ The message to write to the stream.
+ The span to write to. Size must match size of the message exactly.
+
+
+
+ Checks if all required fields in a message have values set. For proto3 messages, this returns true
+
+
+
+
+ A general message parser, typically used by reflection-based code as all the methods
+ return simple .
+
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ This method always uses the default JSON parser; it is not affected by .
+ To ignore unknown fields when parsing JSON, create a using a
+ with set to true and call directly.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Note that this does not affect the behavior of
+ at all. To ignore unknown fields when parsing JSON, create a using a
+ with set to true and call directly.
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ A parser for a specific message type.
+
+
+
+ This delegates most behavior to the
+ implementation within the original type, but
+ provides convenient overloads to parse from a variety of sources.
+
+
+ Most applications will never need to create their own instances of this type;
+ instead, use the static Parser property of a generated message type to obtain a
+ parser for that type.
+
+
+ The type of message to be parsed.
+
+
+
+ Creates a new parser.
+
+
+ The factory method is effectively an optimization over using a generic constraint
+ to require a parameterless constructor: delegates are significantly faster to execute.
+
+ Function to invoke when a new, empty message is required.
+
+
+
+ Creates a template instance ready for population.
+
+ An empty message.
+
+
+
+ Parses a message from a byte array.
+
+ The byte array containing the message. Must not be null.
+ The newly parsed message.
+
+
+
+ Parses a message from a byte array slice.
+
+ The byte array containing the message. Must not be null.
+ The offset of the slice to parse.
+ The length of the slice to parse.
+ The newly parsed message.
+
+
+
+ Parses a message from the given byte string.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given sequence.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given span.
+
+ The data to parse.
+ The parsed message.
+
+
+
+ Parses a length-delimited message from the given stream.
+
+
+ The stream is expected to contain a length and then the data. Only the amount of data
+ specified by the length will be consumed.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given coded input stream.
+
+ The stream to parse.
+ The parsed message.
+
+
+
+ Parses a message from the given JSON.
+
+ The JSON to parse.
+ The parsed message.
+ The JSON does not comply with RFC 7159
+ The JSON does not represent a Protocol Buffers message correctly
+
+
+
+ Creates a new message parser which optionally discards unknown fields when parsing.
+
+ Whether or not to discard unknown fields when parsing.
+ A newly configured message parser.
+
+
+
+ Creates a new message parser which registers extensions from the specified registry upon creating the message instance
+
+ The extensions to register
+ A newly configured message parser.
+
+
+
+ Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the
+ extensionByNumber table in ExtensionRegistry.
+
+
+
+
+ An opaque struct that represents the current parsing state and is passed along
+ as the parsing proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Initialize a , building all from defaults and
+ the given .
+
+
+
+
+ Initialize a using existing , e.g. from .
+
+
+
+
+ Creates a ParseContext instance from CodedInputStream.
+ WARNING: internally this copies the CodedInputStream's state, so after done with the ParseContext,
+ the CodedInputStream's state needs to be updated.
+
+
+
+
+ Returns the last tag read, or 0 if no tags have been read or we've read beyond
+ the end of the input.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Reads a field tag, returning the tag of 0 for "end of input".
+
+
+ If this method returns 0, it doesn't necessarily mean the end of all
+ the data in this CodedInputReader; it may be the end of the logical input
+ for an embedded message, for example.
+
+ The next field tag, or 0 for end of input. (0 is never a valid tag.)
+
+
+
+ Reads a double field from the input.
+
+
+
+
+ Reads a float field from the input.
+
+
+
+
+ Reads a uint64 field from the input.
+
+
+
+
+ Reads an int64 field from the input.
+
+
+
+
+ Reads an int32 field from the input.
+
+
+
+
+ Reads a fixed64 field from the input.
+
+
+
+
+ Reads a fixed32 field from the input.
+
+
+
+
+ Reads a bool field from the input.
+
+
+
+
+ Reads a string field from the input.
+
+
+
+
+ Reads an embedded message field value from the input.
+
+
+
+
+ Reads an embedded group field from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a uint32 field value from the input.
+
+
+
+
+ Reads an enum field value from the input.
+
+
+
+
+ Reads an sfixed32 field value from the input.
+
+
+
+
+ Reads an sfixed64 field value from the input.
+
+
+
+
+ Reads an sint32 field value from the input.
+
+
+
+
+ Reads an sint64 field value from the input.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ The position within the current buffer (i.e. the next byte to read)
+
+
+
+
+ Size of the current buffer
+
+
+
+
+ If we are currently inside a length-delimited block, this is the number of
+ bytes in the buffer that are still available once we leave the delimited block.
+
+
+
+
+ The absolute position of the end of the current length-delimited block (including totalBytesRetired)
+
+
+
+
+ The total number of consumed before the start of the current buffer. The
+ total bytes read up to the current position can be computed as
+ totalBytesRetired + bufferPos.
+
+
+
+
+ The last tag we read. 0 indicates we've read to the end of the stream
+ (or haven't read anything yet).
+
+
+
+
+ The next tag, used to store the value read by PeekTag.
+
+
+
+
+ Internal-only property; when set to true, unknown fields will be discarded while parsing.
+
+
+
+
+ Internal-only property; provides extension identifiers to compatible messages while parsing.
+
+
+
+
+ Primitives for parsing protobuf wire format.
+
+
+
+
+ Reads a length for length-delimited data.
+
+
+ This is internally just reading a varint, but this method exists
+ to make the calling code clearer.
+
+
+
+
+ Parses the next tag.
+ If the end of logical stream was reached, an invalid tag of 0 is returned.
+
+
+
+
+ Peeks at the next tag in the stream. If it matches ,
+ the tag is consumed and the method returns true; otherwise, the
+ stream is left in the original position and the method returns false.
+
+
+
+
+ Peeks at the next field tag. This is like calling , but the
+ tag is not consumed. (So a subsequent call to will return the
+ same value.)
+
+
+
+
+ Parses a raw varint.
+
+
+
+
+ Parses a raw Varint. If larger than 32 bits, discard the upper bits.
+ This method is optimised for the case where we've got lots of data in the buffer.
+ That means we can check the size just once, then just read directly from the buffer
+ without constant rechecking of the buffer length.
+
+
+
+
+ Parses a 32-bit little-endian integer.
+
+
+
+
+ Parses a 64-bit little-endian integer.
+
+
+
+
+ Parses a double value.
+
+
+
+
+ Parses a float value.
+
+
+
+
+ Reads a fixed size of bytes from the input.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads and discards bytes.
+
+ the end of the stream
+ or the current limit was reached
+
+
+
+ Reads a string field value from the input.
+
+
+
+
+ Reads a bytes field value from the input.
+
+
+
+
+ Reads a UTF-8 string from the next "length" bytes.
+
+
+ the end of the stream or the current limit was reached
+
+
+
+
+ Reads a string assuming that it is spread across multiple spans in a .
+
+
+
+
+ Validates that the specified size doesn't exceed the current limit. If it does then remaining bytes
+ are skipped and an error is thrown.
+
+
+
+
+ Reads a varint from the input one byte at a time, so that it does not
+ read any bytes after the end of the varint. If you simply wrapped the
+ stream in a CodedInputStream and used ReadRawVarint32(Stream)
+ then you would probably end up reading past the end of the varint since
+ CodedInputStream buffers its input.
+
+
+
+
+
+
+ Decode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 32 bits to be varint encoded, thus always taking
+ 5 bytes on the wire.)
+
+
+
+
+ Decode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse.
+ When parsing from a Stream this can return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Checks whether there is known data available of the specified size remaining to parse
+ in the underlying data source.
+ When parsing from a Stream this will return false because we have no knowledge of the amount
+ of data remaining in the stream until it is read.
+
+
+
+
+ Read raw bytes of the specified length into a span. The amount of data available and the current limit should
+ be checked before calling this method.
+
+
+
+
+ Reading and skipping messages / groups
+
+
+
+
+ Skip a group.
+
+
+
+
+ Verifies that the last call to ReadTag() returned tag 0 - in other words,
+ we've reached the end of the stream when we expected to.
+
+ The
+ tag read was not the one specified
+
+
+
+ Fast parsing primitives for wrapper types
+
+
+
+
+ Helper methods for throwing exceptions when preconditions are not met.
+
+
+ This class is used internally and by generated code; it is not particularly
+ expected to be used from application code, although nothing prevents it
+ from being used that way.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+
+
+ Throws an ArgumentNullException if the given value is null, otherwise
+ return the value to the caller.
+
+
+ This is equivalent to but without the type parameter
+ constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull
+ with a value type - but it gets in the way if either you want to use it with a nullable
+ value type, or you want to use it with an unconstrained type parameter.
+
+
+
+
+ Container for a set of custom options specified within a message, field etc.
+
+
+
+ This type is publicly immutable, but internally mutable. It is only populated
+ by the descriptor parsing code - by the time any user code is able to see an instance,
+ it will be fully initialized.
+
+
+ If an option is requested using the incorrect method, an answer may still be returned: all
+ of the numeric types are represented internally using 64-bit integers, for example. It is up to
+ the caller to ensure that they make the appropriate method call for the option they're interested in.
+ Note that enum options are simply stored as integers, so the value should be fetched using
+ and then cast appropriately.
+
+
+ Repeated options are currently not supported. Asking for a single value of an option
+ which was actually repeated will return the last value, except for message types where
+ all the set values are merged together.
+
+
+
+
+
+ Retrieves a Boolean value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a fixed-length representation.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 32-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a signed 64-bit integer value for the specified option field,
+ assuming a zigzag encoding.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 32-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves an unsigned 64-bit integer value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 32-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a 64-bit floating point value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a string value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a bytes value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+
+ Retrieves a message value for the specified option field.
+
+ The field to fetch the value for.
+ The output variable to populate.
+ true if a suitable value for the field was found; false otherwise.
+
+
+ Holder for reflection information generated from google/protobuf/descriptor.proto
+
+
+ File descriptor for google/protobuf/descriptor.proto
+
+
+
+ The full set of known editions.
+
+
+
+
+ A placeholder for an unknown edition value.
+
+
+
+
+ Legacy syntax "editions". These pre-date editions, but behave much like
+ distinct editions. These can't be used to specify the edition of proto
+ files, but feature definitions must supply proto2/proto3 defaults for
+ backwards compatibility.
+
+
+
+
+ Editions that have been released. The specific values are arbitrary and
+ should not be depended on, but they will always be time-ordered for easy
+ comparison.
+
+
+
+
+ Placeholder editions for testing feature resolution. These should not be
+ used or relyed on outside of tests.
+
+
+
+
+ Placeholder for specifying unbounded edition support. This should only
+ ever be used by plugins that can expect to never require any changes to
+ support a new edition.
+
+
+
+
+ The protocol compiler can output a FileDescriptorSet containing the .proto
+ files it parses.
+
+
+
+ Field number for the "file" field.
+
+
+
+ Describes a complete .proto file.
+
+
+
+ Field number for the "name" field.
+
+
+
+ file name, relative to root of source tree
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "package" field.
+
+
+
+ e.g. "foo", "foo.bar", etc.
+
+
+
+ Gets whether the "package" field is set
+
+
+ Clears the value of the "package" field
+
+
+ Field number for the "dependency" field.
+
+
+
+ Names of files imported by this file.
+
+
+
+ Field number for the "public_dependency" field.
+
+
+
+ Indexes of the public imported files in the dependency list above.
+
+
+
+ Field number for the "weak_dependency" field.
+
+
+
+ Indexes of the weak imported files in the dependency list.
+ For Google-internal migration only. Do not use.
+
+
+
+ Field number for the "message_type" field.
+
+
+
+ All top-level definitions in this file.
+
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "service" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "source_code_info" field.
+
+
+
+ This field contains optional information about the original source code.
+ You may safely remove this entire field without harming runtime
+ functionality of the descriptors -- the information is needed only by
+ development tools.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The syntax of the proto file.
+ The supported values are "proto2", "proto3", and "editions".
+
+ If `edition` is present, this value must be "editions".
+
+
+
+ Gets whether the "syntax" field is set
+
+
+ Clears the value of the "syntax" field
+
+
+ Field number for the "edition" field.
+
+
+
+ The edition of the proto file.
+
+
+
+ Gets whether the "edition" field is set
+
+
+ Clears the value of the "edition" field
+
+
+
+ Describes a message type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "field" field.
+
+
+ Field number for the "extension" field.
+
+
+ Field number for the "nested_type" field.
+
+
+ Field number for the "enum_type" field.
+
+
+ Field number for the "extension_range" field.
+
+
+ Field number for the "oneof_decl" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved field names, which may not be used by fields in the same message.
+ A given name may only be reserved once.
+
+
+
+ Container for nested types declared in the DescriptorProto message type.
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "options" field.
+
+
+
+ Range of reserved tag numbers. Reserved tag numbers may not be used by
+ fields or extension ranges in the same message. Reserved ranges may
+ not overlap.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Exclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "declaration" field.
+
+
+
+ For external users: DO NOT USE. We are in the process of open sourcing
+ extension declaration and executing internal cleanups before it can be
+ used externally.
+
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "verification" field.
+
+
+
+ The verification state of the range.
+ TODO: flip the default to DECLARATION once all empty ranges
+ are marked as UNVERIFIED.
+
+
+
+ Gets whether the "verification" field is set
+
+
+ Clears the value of the "verification" field
+
+
+ Container for nested types declared in the ExtensionRangeOptions message type.
+
+
+
+ The verification state of the extension range.
+
+
+
+
+ All the extensions of the range must be declared.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The extension number declared within the extension range.
+
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "full_name" field.
+
+
+
+ The fully-qualified name of the extension field. There must be a leading
+ dot in front of the full name.
+
+
+
+ Gets whether the "full_name" field is set
+
+
+ Clears the value of the "full_name" field
+
+
+ Field number for the "type" field.
+
+
+
+ The fully-qualified type name of the extension field. Unlike
+ Metadata.type, Declaration.type must have a leading dot for messages
+ and enums.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "reserved" field.
+
+
+
+ If true, indicates that the number is reserved in the extension range,
+ and any extension field with the number will fail to compile. Set this
+ when a declared extension field is deleted.
+
+
+
+ Gets whether the "reserved" field is set
+
+
+ Clears the value of the "reserved" field
+
+
+ Field number for the "repeated" field.
+
+
+
+ If true, indicates that the extension must be defined as repeated.
+ Otherwise the extension must be defined as optional.
+
+
+
+ Gets whether the "repeated" field is set
+
+
+ Clears the value of the "repeated" field
+
+
+
+ Describes a field within a message.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "label" field.
+
+
+ Gets whether the "label" field is set
+
+
+ Clears the value of the "label" field
+
+
+ Field number for the "type" field.
+
+
+
+ If type_name is set, this need not be set. If both this and type_name
+ are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "type_name" field.
+
+
+
+ For message and enum types, this is the name of the type. If the name
+ starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ rules are used to find the type (i.e. first the nested types within this
+ message are searched, then within the parent, on up to the root
+ namespace).
+
+
+
+ Gets whether the "type_name" field is set
+
+
+ Clears the value of the "type_name" field
+
+
+ Field number for the "extendee" field.
+
+
+
+ For extensions, this is the name of the type being extended. It is
+ resolved in the same manner as type_name.
+
+
+
+ Gets whether the "extendee" field is set
+
+
+ Clears the value of the "extendee" field
+
+
+ Field number for the "default_value" field.
+
+
+
+ For numeric types, contains the original text representation of the value.
+ For booleans, "true" or "false".
+ For strings, contains the default text contents (not escaped in any way).
+ For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+
+
+
+ Gets whether the "default_value" field is set
+
+
+ Clears the value of the "default_value" field
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ If set, gives the index of a oneof in the containing type's oneof_decl
+ list. This field is a member of that oneof.
+
+
+
+ Gets whether the "oneof_index" field is set
+
+
+ Clears the value of the "oneof_index" field
+
+
+ Field number for the "json_name" field.
+
+
+
+ JSON name of this field. The value is set by protocol compiler. If the
+ user has set a "json_name" option on this field, that option's value
+ will be used. Otherwise, it's deduced from the field's name by converting
+ it to camelCase.
+
+
+
+ Gets whether the "json_name" field is set
+
+
+ Clears the value of the "json_name" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "proto3_optional" field.
+
+
+
+ If true, this is a proto3 "optional". When a proto3 field is optional, it
+ tracks presence regardless of field type.
+
+ When proto3_optional is true, this field must belong to a oneof to signal
+ to old proto3 clients that presence is tracked for this field. This oneof
+ is known as a "synthetic" oneof, and this field must be its sole member
+ (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
+ exist in the descriptor only, and do not generate any API. Synthetic oneofs
+ must be ordered after all "real" oneofs.
+
+ For message fields, proto3_optional doesn't create any semantic change,
+ since non-repeated message fields always track presence. However it still
+ indicates the semantic detail of whether the user wrote "optional" or not.
+ This can be useful for round-tripping the .proto file. For consistency we
+ give message fields a synthetic oneof also, even though it is not required
+ to track presence. This is especially important because the parser can't
+ tell if a field is a message or an enum, so it must always create a
+ synthetic oneof.
+
+ Proto2 optional fields do not set this flag, because they already indicate
+ optional with `LABEL_OPTIONAL`.
+
+
+
+ Gets whether the "proto3_optional" field is set
+
+
+ Clears the value of the "proto3_optional" field
+
+
+ Container for nested types declared in the FieldDescriptorProto message type.
+
+
+
+ 0 is reserved for errors.
+ Order is weird for historical reasons.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
+ negative values are likely.
+
+
+
+
+ Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
+ negative values are likely.
+
+
+
+
+ Tag-delimited aggregate.
+ Group type is deprecated and not supported after google.protobuf. However, Proto3
+ implementations should still be able to parse the group wire format and
+ treat group fields as unknown fields. In Editions, the group wire format
+ can be enabled via the `message_encoding` feature.
+
+
+
+
+ Length-delimited aggregate.
+
+
+
+
+ New in version 2.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ Uses ZigZag encoding.
+
+
+
+
+ 0 is reserved for errors
+
+
+
+
+ The required label is only allowed in google.protobuf. In proto3 and Editions
+ it's explicitly prohibited. In Editions, the `field_presence` feature
+ can be used to get this behavior.
+
+
+
+
+ Describes a oneof.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes an enum type.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "reserved_range" field.
+
+
+
+ Range of reserved numeric values. Reserved numeric values may not be used
+ by enum values in the same enum declaration. Reserved ranges may not
+ overlap.
+
+
+
+ Field number for the "reserved_name" field.
+
+
+
+ Reserved enum value names, which may not be reused. A given name may only
+ be reserved once.
+
+
+
+ Container for nested types declared in the EnumDescriptorProto message type.
+
+
+
+ Range of reserved numeric values. Reserved values may not be used by
+ entries in the same enum. Reserved ranges may not overlap.
+
+ Note that this is distinct from DescriptorProto.ReservedRange in that it
+ is inclusive such that it can appropriately represent the entire int32
+ domain.
+
+
+
+ Field number for the "start" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "start" field is set
+
+
+ Clears the value of the "start" field
+
+
+ Field number for the "end" field.
+
+
+
+ Inclusive.
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+
+ Describes a value within an enum.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "number" field.
+
+
+ Gets whether the "number" field is set
+
+
+ Clears the value of the "number" field
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "method" field.
+
+
+ Field number for the "options" field.
+
+
+
+ Describes a method of a service.
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "input_type" field.
+
+
+
+ Input and output type names. These are resolved in the same way as
+ FieldDescriptorProto.type_name, but must refer to a message type.
+
+
+
+ Gets whether the "input_type" field is set
+
+
+ Clears the value of the "input_type" field
+
+
+ Field number for the "output_type" field.
+
+
+ Gets whether the "output_type" field is set
+
+
+ Clears the value of the "output_type" field
+
+
+ Field number for the "options" field.
+
+
+ Field number for the "client_streaming" field.
+
+
+
+ Identifies if client streams multiple client messages
+
+
+
+ Gets whether the "client_streaming" field is set
+
+
+ Clears the value of the "client_streaming" field
+
+
+ Field number for the "server_streaming" field.
+
+
+
+ Identifies if server streams multiple server messages
+
+
+
+ Gets whether the "server_streaming" field is set
+
+
+ Clears the value of the "server_streaming" field
+
+
+ Field number for the "java_package" field.
+
+
+
+ Sets the Java package where classes generated from this .proto will be
+ placed. By default, the proto package is used, but this is often
+ inappropriate because proto packages do not normally start with backwards
+ domain names.
+
+
+
+ Gets whether the "java_package" field is set
+
+
+ Clears the value of the "java_package" field
+
+
+ Field number for the "java_outer_classname" field.
+
+
+
+ Controls the name of the wrapper Java class generated for the .proto file.
+ That class will always contain the .proto file's getDescriptor() method as
+ well as any top-level extensions defined in the .proto file.
+ If java_multiple_files is disabled, then all the other classes from the
+ .proto file will be nested inside the single wrapper outer class.
+
+
+
+ Gets whether the "java_outer_classname" field is set
+
+
+ Clears the value of the "java_outer_classname" field
+
+
+ Field number for the "java_multiple_files" field.
+
+
+
+ If enabled, then the Java code generator will generate a separate .java
+ file for each top-level message, enum, and service defined in the .proto
+ file. Thus, these types will *not* be nested inside the wrapper class
+ named by java_outer_classname. However, the wrapper class will still be
+ generated to contain the file's getDescriptor() method as well as any
+ top-level extensions defined in the file.
+
+
+
+ Gets whether the "java_multiple_files" field is set
+
+
+ Clears the value of the "java_multiple_files" field
+
+
+ Field number for the "java_generate_equals_and_hash" field.
+
+
+
+ This option does nothing.
+
+
+
+ Gets whether the "java_generate_equals_and_hash" field is set
+
+
+ Clears the value of the "java_generate_equals_and_hash" field
+
+
+ Field number for the "java_string_check_utf8" field.
+
+
+
+ If set true, then the Java2 code generator will generate code that
+ throws an exception whenever an attempt is made to assign a non-UTF-8
+ byte sequence to a string field.
+ Message reflection will do the same.
+ However, an extension field still accepts non-UTF-8 byte sequences.
+ This option has no effect on when used with the lite runtime.
+
+
+
+ Gets whether the "java_string_check_utf8" field is set
+
+
+ Clears the value of the "java_string_check_utf8" field
+
+
+ Field number for the "optimize_for" field.
+
+
+ Gets whether the "optimize_for" field is set
+
+
+ Clears the value of the "optimize_for" field
+
+
+ Field number for the "go_package" field.
+
+
+
+ Sets the Go package where structs generated from this .proto will be
+ placed. If omitted, the Go package will be derived from the following:
+ - The basename of the package import path, if provided.
+ - Otherwise, the package statement in the .proto file, if present.
+ - Otherwise, the basename of the .proto file, without extension.
+
+
+
+ Gets whether the "go_package" field is set
+
+
+ Clears the value of the "go_package" field
+
+
+ Field number for the "cc_generic_services" field.
+
+
+
+ Should generic services be generated in each language? "Generic" services
+ are not specific to any particular RPC system. They are generated by the
+ main code generators in each language (without additional plugins).
+ Generic services were the only kind of service generation supported by
+ early versions of google.protobuf.
+
+ Generic services are now considered deprecated in favor of using plugins
+ that generate code specific to your particular RPC system. Therefore,
+ these default to false. Old code which depends on generic services should
+ explicitly set them to true.
+
+
+
+ Gets whether the "cc_generic_services" field is set
+
+
+ Clears the value of the "cc_generic_services" field
+
+
+ Field number for the "java_generic_services" field.
+
+
+ Gets whether the "java_generic_services" field is set
+
+
+ Clears the value of the "java_generic_services" field
+
+
+ Field number for the "py_generic_services" field.
+
+
+ Gets whether the "py_generic_services" field is set
+
+
+ Clears the value of the "py_generic_services" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this file deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for everything in the file, or it will be completely ignored; in the very
+ least, this is a formalization for deprecating files.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "cc_enable_arenas" field.
+
+
+
+ Enables the use of arenas for the proto messages in this file. This applies
+ only to generated classes for C++.
+
+
+
+ Gets whether the "cc_enable_arenas" field is set
+
+
+ Clears the value of the "cc_enable_arenas" field
+
+
+ Field number for the "objc_class_prefix" field.
+
+
+
+ Sets the objective c class prefix which is prepended to all objective c
+ generated classes from this .proto. There is no default.
+
+
+
+ Gets whether the "objc_class_prefix" field is set
+
+
+ Clears the value of the "objc_class_prefix" field
+
+
+ Field number for the "csharp_namespace" field.
+
+
+
+ Namespace for generated classes; defaults to the package.
+
+
+
+ Gets whether the "csharp_namespace" field is set
+
+
+ Clears the value of the "csharp_namespace" field
+
+
+ Field number for the "swift_prefix" field.
+
+
+
+ By default Swift generators will take the proto package and CamelCase it
+ replacing '.' with underscore and use that to prefix the types/symbols
+ defined. When this options is provided, they will use this value instead
+ to prefix the types/symbols defined.
+
+
+
+ Gets whether the "swift_prefix" field is set
+
+
+ Clears the value of the "swift_prefix" field
+
+
+ Field number for the "php_class_prefix" field.
+
+
+
+ Sets the php class prefix which is prepended to all php generated classes
+ from this .proto. Default is empty.
+
+
+
+ Gets whether the "php_class_prefix" field is set
+
+
+ Clears the value of the "php_class_prefix" field
+
+
+ Field number for the "php_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated classes. Default
+ is empty. When this option is empty, the package name will be used for
+ determining the namespace.
+
+
+
+ Gets whether the "php_namespace" field is set
+
+
+ Clears the value of the "php_namespace" field
+
+
+ Field number for the "php_metadata_namespace" field.
+
+
+
+ Use this option to change the namespace of php generated metadata classes.
+ Default is empty. When this option is empty, the proto file name will be
+ used for determining the namespace.
+
+
+
+ Gets whether the "php_metadata_namespace" field is set
+
+
+ Clears the value of the "php_metadata_namespace" field
+
+
+ Field number for the "ruby_package" field.
+
+
+
+ Use this option to change the package of ruby generated classes. Default
+ is empty. When this option is not set, the package name will be used for
+ determining the ruby package.
+
+
+
+ Gets whether the "ruby_package" field is set
+
+
+ Clears the value of the "ruby_package" field
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here.
+ See the documentation for the "Options" section above.
+
+
+
+ Container for nested types declared in the FileOptions message type.
+
+
+
+ Generated classes can be optimized for speed or code size.
+
+
+
+
+ Generate complete code for parsing, serialization,
+
+
+
+
+ etc.
+
+
+
+
+ Generate code using MessageLite and the lite runtime.
+
+
+
+ Field number for the "message_set_wire_format" field.
+
+
+
+ Set true to use the old proto1 MessageSet wire format for extensions.
+ This is provided for backwards-compatibility with the MessageSet wire
+ format. You should not use this for any other reason: It's less
+ efficient, has fewer features, and is more complicated.
+
+ The message must be defined exactly as follows:
+ message Foo {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+ }
+ Note that the message cannot have any defined fields; MessageSets only
+ have extensions.
+
+ All extensions of your type must be singular messages; e.g. they cannot
+ be int32s, enums, or repeated messages.
+
+ Because this is an option, the above two restrictions are not enforced by
+ the protocol compiler.
+
+
+
+ Gets whether the "message_set_wire_format" field is set
+
+
+ Clears the value of the "message_set_wire_format" field
+
+
+ Field number for the "no_standard_descriptor_accessor" field.
+
+
+
+ Disables the generation of the standard "descriptor()" accessor, which can
+ conflict with a field of the same name. This is meant to make migration
+ from proto1 easier; new code should avoid fields named "descriptor".
+
+
+
+ Gets whether the "no_standard_descriptor_accessor" field is set
+
+
+ Clears the value of the "no_standard_descriptor_accessor" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this message deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the message, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating messages.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "map_entry" field.
+
+
+
+ Whether the message is an automatically generated map entry type for the
+ maps field.
+
+ For maps fields:
+ map<KeyType, ValueType> map_field = 1;
+ The parsed descriptor looks like:
+ message MapFieldEntry {
+ option map_entry = true;
+ optional KeyType key = 1;
+ optional ValueType value = 2;
+ }
+ repeated MapFieldEntry map_field = 1;
+
+ Implementations may choose not to generate the map_entry=true message, but
+ use a native map in the target language to hold the keys and values.
+ The reflection APIs in such implementations still need to work as
+ if the field is a repeated message field.
+
+ NOTE: Do not set the option in .proto files. Always use the maps syntax
+ instead. The option should only be implicitly set by the proto compiler
+ parser.
+
+
+
+ Gets whether the "map_entry" field is set
+
+
+ Clears the value of the "map_entry" field
+
+
+ Field number for the "deprecated_legacy_json_field_conflicts" field.
+
+
+
+ Enable the legacy handling of JSON field name conflicts. This lowercases
+ and strips underscored from the fields before comparison in proto3 only.
+ The new behavior takes `json_name` into account and applies to proto2 as
+ well.
+
+ This should only be used as a temporary measure against broken builds due
+ to the change in behavior for JSON field name conflicts.
+
+ TODO This is legacy behavior we plan to remove once downstream
+ teams have had time to migrate.
+
+
+
+ Gets whether the "deprecated_legacy_json_field_conflicts" field is set
+
+
+ Clears the value of the "deprecated_legacy_json_field_conflicts" field
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "ctype" field.
+
+
+
+ The ctype option instructs the C++ code generator to use a different
+ representation of the field than it normally would. See the specific
+ options below. This option is only implemented to support use of
+ [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of
+ type "bytes" in the open source release -- sorry, we'll try to include
+ other types in a future version!
+
+
+
+ Gets whether the "ctype" field is set
+
+
+ Clears the value of the "ctype" field
+
+
+ Field number for the "packed" field.
+
+
+
+ The packed option can be enabled for repeated primitive fields to enable
+ a more efficient representation on the wire. Rather than repeatedly
+ writing the tag and type for each element, the entire array is encoded as
+ a single length-delimited blob. In proto3, only explicit setting it to
+ false will avoid using packed encoding. This option is prohibited in
+ Editions, but the `repeated_field_encoding` feature can be used to control
+ the behavior.
+
+
+
+ Gets whether the "packed" field is set
+
+
+ Clears the value of the "packed" field
+
+
+ Field number for the "jstype" field.
+
+
+
+ The jstype option determines the JavaScript type used for values of the
+ field. The option is permitted only for 64 bit integral and fixed types
+ (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
+ is represented as JavaScript string, which avoids loss of precision that
+ can happen when a large value is converted to a floating point JavaScript.
+ Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
+ use the JavaScript "number" type. The behavior of the default option
+ JS_NORMAL is implementation dependent.
+
+ This option is an enum to permit additional types to be added, e.g.
+ goog.math.Integer.
+
+
+
+ Gets whether the "jstype" field is set
+
+
+ Clears the value of the "jstype" field
+
+
+ Field number for the "lazy" field.
+
+
+
+ Should this field be parsed lazily? Lazy applies only to message-type
+ fields. It means that when the outer message is initially parsed, the
+ inner message's contents will not be parsed but instead stored in encoded
+ form. The inner message will actually be parsed when it is first accessed.
+
+ This is only a hint. Implementations are free to choose whether to use
+ eager or lazy parsing regardless of the value of this option. However,
+ setting this option true suggests that the protocol author believes that
+ using lazy parsing on this field is worth the additional bookkeeping
+ overhead typically needed to implement it.
+
+ This option does not affect the public interface of any generated code;
+ all method signatures remain the same. Furthermore, thread-safety of the
+ interface is not affected by this option; const methods remain safe to
+ call from multiple threads concurrently, while non-const methods continue
+ to require exclusive access.
+
+ Note that lazy message fields are still eagerly verified to check
+ ill-formed wireformat or missing required fields. Calling IsInitialized()
+ on the outer message would fail if the inner message has missing required
+ fields. Failed verification would result in parsing failure (except when
+ uninitialized messages are acceptable).
+
+
+
+ Gets whether the "lazy" field is set
+
+
+ Clears the value of the "lazy" field
+
+
+ Field number for the "unverified_lazy" field.
+
+
+
+ unverified_lazy does no correctness checks on the byte stream. This should
+ only be used where lazy with verification is prohibitive for performance
+ reasons.
+
+
+
+ Gets whether the "unverified_lazy" field is set
+
+
+ Clears the value of the "unverified_lazy" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this field deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for accessors, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating fields.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "weak" field.
+
+
+
+ For Google-internal migration only. Do not use.
+
+
+
+ Gets whether the "weak" field is set
+
+
+ Clears the value of the "weak" field
+
+
+ Field number for the "debug_redact" field.
+
+
+
+ Indicate that the field value should not be printed out when using debug
+ formats, e.g. when the field contains sensitive credentials.
+
+
+
+ Gets whether the "debug_redact" field is set
+
+
+ Clears the value of the "debug_redact" field
+
+
+ Field number for the "retention" field.
+
+
+ Gets whether the "retention" field is set
+
+
+ Clears the value of the "retention" field
+
+
+ Field number for the "targets" field.
+
+
+ Field number for the "edition_defaults" field.
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the FieldOptions message type.
+
+
+
+ Default mode.
+
+
+
+
+ The option [ctype=CORD] may be applied to a non-repeated field of type
+ "bytes". It indicates that in C++, the data should be stored in a Cord
+ instead of a string. For very large strings, this may reduce memory
+ fragmentation. It may also allow better performance when parsing from a
+ Cord, or when parsing with aliasing enabled, as the parsed Cord may then
+ alias the original buffer.
+
+
+
+
+ Use the default type.
+
+
+
+
+ Use JavaScript strings.
+
+
+
+
+ Use JavaScript numbers.
+
+
+
+
+ If set to RETENTION_SOURCE, the option will be omitted from the binary.
+ Note: as of January 2023, support for this is in progress and does not yet
+ have an effect (b/264593489).
+
+
+
+
+ This indicates the types of entities that the field may apply to when used
+ as an option. If it is unset, then the field may be freely used as an
+ option on any kind of entity. Note: as of January 2023, support for this is
+ in progress and does not yet have an effect (b/264593489).
+
+
+
+ Field number for the "edition" field.
+
+
+ Gets whether the "edition" field is set
+
+
+ Clears the value of the "edition" field
+
+
+ Field number for the "value" field.
+
+
+
+ Textproto value.
+
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "allow_alias" field.
+
+
+
+ Set this option to true to allow mapping different tag names to the same
+ value.
+
+
+
+ Gets whether the "allow_alias" field is set
+
+
+ Clears the value of the "allow_alias" field
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum, or it will be completely ignored; in the very least, this
+ is a formalization for deprecating enums.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "deprecated_legacy_json_field_conflicts" field.
+
+
+
+ Enable the legacy handling of JSON field name conflicts. This lowercases
+ and strips underscored from the fields before comparison in proto3 only.
+ The new behavior takes `json_name` into account and applies to proto2 as
+ well.
+ TODO Remove this legacy behavior once downstream teams have
+ had time to migrate.
+
+
+
+ Gets whether the "deprecated_legacy_json_field_conflicts" field is set
+
+
+ Clears the value of the "deprecated_legacy_json_field_conflicts" field
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this enum value deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the enum value, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating enum values.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "debug_redact" field.
+
+
+
+ Indicate that fields annotated with this enum value should not be printed
+ out when using debug formats, e.g. when the field contains sensitive
+ credentials.
+
+
+
+ Gets whether the "debug_redact" field is set
+
+
+ Clears the value of the "debug_redact" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this service deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the service, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating services.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Field number for the "deprecated" field.
+
+
+
+ Is this method deprecated?
+ Depending on the target platform, this can emit Deprecated annotations
+ for the method, or it will be completely ignored; in the very least,
+ this is a formalization for deprecating methods.
+
+
+
+ Gets whether the "deprecated" field is set
+
+
+ Clears the value of the "deprecated" field
+
+
+ Field number for the "idempotency_level" field.
+
+
+ Gets whether the "idempotency_level" field is set
+
+
+ Clears the value of the "idempotency_level" field
+
+
+ Field number for the "features" field.
+
+
+
+ Any features defined in the specific edition.
+
+
+
+ Field number for the "uninterpreted_option" field.
+
+
+
+ The parser stores options it doesn't recognize here. See above.
+
+
+
+ Container for nested types declared in the MethodOptions message type.
+
+
+
+ Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
+ or neither? HTTP based RPC implementation may choose GET verb for safe
+ methods, and PUT verb for idempotent methods instead of the default POST.
+
+
+
+
+ implies idempotent
+
+
+
+
+ idempotent, but may have side effects
+
+
+
+
+ A message representing a option the parser does not recognize. This only
+ appears in options protos created by the compiler::Parser class.
+ DescriptorPool resolves these when building Descriptor objects. Therefore,
+ options protos in descriptor objects (e.g. returned by Descriptor::options(),
+ or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+ in them.
+
+
+
+ Field number for the "name" field.
+
+
+ Field number for the "identifier_value" field.
+
+
+
+ The value of the uninterpreted option, in whatever type the tokenizer
+ identified it as during parsing. Exactly one of these should be set.
+
+
+
+ Gets whether the "identifier_value" field is set
+
+
+ Clears the value of the "identifier_value" field
+
+
+ Field number for the "positive_int_value" field.
+
+
+ Gets whether the "positive_int_value" field is set
+
+
+ Clears the value of the "positive_int_value" field
+
+
+ Field number for the "negative_int_value" field.
+
+
+ Gets whether the "negative_int_value" field is set
+
+
+ Clears the value of the "negative_int_value" field
+
+
+ Field number for the "double_value" field.
+
+
+ Gets whether the "double_value" field is set
+
+
+ Clears the value of the "double_value" field
+
+
+ Field number for the "string_value" field.
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the "string_value" field
+
+
+ Field number for the "aggregate_value" field.
+
+
+ Gets whether the "aggregate_value" field is set
+
+
+ Clears the value of the "aggregate_value" field
+
+
+ Container for nested types declared in the UninterpretedOption message type.
+
+
+
+ The name of the uninterpreted option. Each string represents a segment in
+ a dot-separated name. is_extension is true iff a segment represents an
+ extension (denoted with parentheses in options specs in .proto files).
+ E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
+ "foo.(bar.baz).moo".
+
+
+
+ Field number for the "name_part" field.
+
+
+ Gets whether the "name_part" field is set
+
+
+ Clears the value of the "name_part" field
+
+
+ Field number for the "is_extension" field.
+
+
+ Gets whether the "is_extension" field is set
+
+
+ Clears the value of the "is_extension" field
+
+
+
+ TODO Enums in C++ gencode (and potentially other languages) are
+ not well scoped. This means that each of the feature enums below can clash
+ with each other. The short names we've chosen maximize call-site
+ readability, but leave us very open to this scenario. A future feature will
+ be designed and implemented to handle this, hopefully before we ever hit a
+ conflict here.
+
+
+
+ Field number for the "field_presence" field.
+
+
+ Gets whether the "field_presence" field is set
+
+
+ Clears the value of the "field_presence" field
+
+
+ Field number for the "enum_type" field.
+
+
+ Gets whether the "enum_type" field is set
+
+
+ Clears the value of the "enum_type" field
+
+
+ Field number for the "repeated_field_encoding" field.
+
+
+ Gets whether the "repeated_field_encoding" field is set
+
+
+ Clears the value of the "repeated_field_encoding" field
+
+
+ Field number for the "utf8_validation" field.
+
+
+ Gets whether the "utf8_validation" field is set
+
+
+ Clears the value of the "utf8_validation" field
+
+
+ Field number for the "message_encoding" field.
+
+
+ Gets whether the "message_encoding" field is set
+
+
+ Clears the value of the "message_encoding" field
+
+
+ Field number for the "json_format" field.
+
+
+ Gets whether the "json_format" field is set
+
+
+ Clears the value of the "json_format" field
+
+
+ Container for nested types declared in the FeatureSet message type.
+
+
+
+ A compiled specification for the defaults of a set of features. These
+ messages are generated from FeatureSet extensions and can be used to seed
+ feature resolution. The resolution with this object becomes a simple search
+ for the closest matching edition, followed by proto merges.
+
+
+
+ Field number for the "defaults" field.
+
+
+ Field number for the "minimum_edition" field.
+
+
+
+ The minimum supported edition (inclusive) when this was constructed.
+ Editions before this will not have defaults.
+
+
+
+ Gets whether the "minimum_edition" field is set
+
+
+ Clears the value of the "minimum_edition" field
+
+
+ Field number for the "maximum_edition" field.
+
+
+
+ The maximum known edition (inclusive) when this was constructed. Editions
+ after this will not have reliable defaults.
+
+
+
+ Gets whether the "maximum_edition" field is set
+
+
+ Clears the value of the "maximum_edition" field
+
+
+ Container for nested types declared in the FeatureSetDefaults message type.
+
+
+
+ A map from every known edition with a unique set of defaults to its
+ defaults. Not all editions may be contained here. For a given edition,
+ the defaults at the closest matching edition ordered at or before it should
+ be used. This field must be in strict ascending order by edition.
+
+
+
+ Field number for the "edition" field.
+
+
+ Gets whether the "edition" field is set
+
+
+ Clears the value of the "edition" field
+
+
+ Field number for the "features" field.
+
+
+
+ Encapsulates information about the original source file from which a
+ FileDescriptorProto was generated.
+
+
+
+ Field number for the "location" field.
+
+
+
+ A Location identifies a piece of source code in a .proto file which
+ corresponds to a particular definition. This information is intended
+ to be useful to IDEs, code indexers, documentation generators, and similar
+ tools.
+
+ For example, say we have a file like:
+ message Foo {
+ optional string foo = 1;
+ }
+ Let's look at just the field definition:
+ optional string foo = 1;
+ ^ ^^ ^^ ^ ^^^
+ a bc de f ghi
+ We have the following locations:
+ span path represents
+ [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+
+ Notes:
+ - A location may refer to a repeated field itself (i.e. not to any
+ particular index within it). This is used whenever a set of elements are
+ logically enclosed in a single code segment. For example, an entire
+ extend block (possibly containing multiple extension definitions) will
+ have an outer location whose path refers to the "extensions" repeated
+ field without an index.
+ - Multiple locations may have the same path. This happens when a single
+ logical declaration is spread out across multiple places. The most
+ obvious example is the "extend" block again -- there may be multiple
+ extend blocks in the same scope, each of which will have the same path.
+ - A location's span is not always a subset of its parent's span. For
+ example, the "extendee" of an extension declaration appears at the
+ beginning of the "extend" block and is shared by all extensions within
+ the block.
+ - Just because a location's span is a subset of some other location's span
+ does not mean that it is a descendant. For example, a "group" defines
+ both a type and a field in a single declaration. Thus, the locations
+ corresponding to the type and field and their components will overlap.
+ - Code which tries to interpret locations should probably be designed to
+ ignore those that it doesn't understand, as more types of locations could
+ be recorded in the future.
+
+
+
+ Container for nested types declared in the SourceCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies which part of the FileDescriptorProto was defined at this
+ location.
+
+ Each element is a field number or an index. They form a path from
+ the root FileDescriptorProto to the place where the definition appears.
+ For example, this path:
+ [ 4, 3, 2, 7, 1 ]
+ refers to:
+ file.message_type(3) // 4, 3
+ .field(7) // 2, 7
+ .name() // 1
+ This is because FileDescriptorProto.message_type has field number 4:
+ repeated DescriptorProto message_type = 4;
+ and DescriptorProto.field has field number 2:
+ repeated FieldDescriptorProto field = 2;
+ and FieldDescriptorProto.name has field number 1:
+ optional string name = 1;
+
+ Thus, the above path gives the location of a field name. If we removed
+ the last element:
+ [ 4, 3, 2, 7 ]
+ this path refers to the whole field declaration (from the beginning
+ of the label to the terminating semicolon).
+
+
+
+ Field number for the "span" field.
+
+
+
+ Always has exactly three or four elements: start line, start column,
+ end line (optional, otherwise assumed same as start line), end column.
+ These are packed into a single field for efficiency. Note that line
+ and column numbers are zero-based -- typically you will want to add
+ 1 to each before displaying to a user.
+
+
+
+ Field number for the "leading_comments" field.
+
+
+
+ If this SourceCodeInfo represents a complete declaration, these are any
+ comments appearing before and after the declaration which appear to be
+ attached to the declaration.
+
+ A series of line comments appearing on consecutive lines, with no other
+ tokens appearing on those lines, will be treated as a single comment.
+
+ leading_detached_comments will keep paragraphs of comments that appear
+ before (but not connected to) the current element. Each paragraph,
+ separated by empty lines, will be one comment element in the repeated
+ field.
+
+ Only the comment content is provided; comment markers (e.g. //) are
+ stripped out. For block comments, leading whitespace and an asterisk
+ will be stripped from the beginning of each line other than the first.
+ Newlines are included in the output.
+
+ Examples:
+
+ optional int32 foo = 1; // Comment attached to foo.
+ // Comment attached to bar.
+ optional int32 bar = 2;
+
+ optional string baz = 3;
+ // Comment attached to baz.
+ // Another line attached to baz.
+
+ // Comment attached to moo.
+ //
+ // Another line attached to moo.
+ optional double moo = 4;
+
+ // Detached comment for corge. This is not leading or trailing comments
+ // to moo or corge because there are blank lines separating it from
+ // both.
+
+ // Detached comment for corge paragraph 2.
+
+ optional string corge = 5;
+ /* Block comment attached
+ * to corge. Leading asterisks
+ * will be removed. */
+ /* Block comment attached to
+ * grault. */
+ optional int32 grault = 6;
+
+ // ignored detached comments.
+
+
+
+ Gets whether the "leading_comments" field is set
+
+
+ Clears the value of the "leading_comments" field
+
+
+ Field number for the "trailing_comments" field.
+
+
+ Gets whether the "trailing_comments" field is set
+
+
+ Clears the value of the "trailing_comments" field
+
+
+ Field number for the "leading_detached_comments" field.
+
+
+
+ Describes the relationship between generated code and its original source
+ file. A GeneratedCodeInfo message is associated with only one generated
+ source file, but may contain references to different source .proto files.
+
+
+
+ Field number for the "annotation" field.
+
+
+
+ An Annotation connects some span of text in generated code to an element
+ of its generating .proto file.
+
+
+
+ Container for nested types declared in the GeneratedCodeInfo message type.
+
+
+ Field number for the "path" field.
+
+
+
+ Identifies the element in the original source .proto file. This field
+ is formatted the same as SourceCodeInfo.Location.path.
+
+
+
+ Field number for the "source_file" field.
+
+
+
+ Identifies the filesystem path to the original source .proto.
+
+
+
+ Gets whether the "source_file" field is set
+
+
+ Clears the value of the "source_file" field
+
+
+ Field number for the "begin" field.
+
+
+
+ Identifies the starting offset in bytes in the generated code
+ that relates to the identified object.
+
+
+
+ Gets whether the "begin" field is set
+
+
+ Clears the value of the "begin" field
+
+
+ Field number for the "end" field.
+
+
+
+ Identifies the ending offset in bytes in the generated code that
+ relates to the identified object. The end offset should be one past
+ the last relevant byte (so the length of the text = end - begin).
+
+
+
+ Gets whether the "end" field is set
+
+
+ Clears the value of the "end" field
+
+
+ Field number for the "semantic" field.
+
+
+ Gets whether the "semantic" field is set
+
+
+ Clears the value of the "semantic" field
+
+
+ Container for nested types declared in the Annotation message type.
+
+
+
+ Represents the identified object's effect on the element in the original
+ .proto file.
+
+
+
+
+ There is no effect or the effect is indescribable.
+
+
+
+
+ The element is set or otherwise mutated.
+
+
+
+
+ An alias to the element is returned.
+
+
+
+
+ Base class for nearly all descriptors, providing common functionality.
+
+
+
+
+ The index of this descriptor within its parent descriptor.
+
+
+ This returns the index of this descriptor within its parent, for
+ this descriptor's type. (There can be duplicate values for different
+ types, e.g. one enum type with index 0 and one message type with index 0.)
+
+
+
+
+ Returns the name of the entity (field, message etc) being described.
+
+
+
+
+ The fully qualified name of the descriptor's target.
+
+
+
+
+ The file this descriptor was declared in.
+
+
+
+
+ The declaration information about the descriptor, or null if no declaration information
+ is available for this descriptor.
+
+
+ This information is typically only available for dynamically loaded descriptors,
+ for example within a protoc plugin where the full descriptors, including source info,
+ are passed to the code by protoc.
+
+
+
+
+ Retrieves the list of nested descriptors corresponding to the given field number, if any.
+ If the field is unknown or not a nested descriptor list, return null to terminate the search.
+ The default implementation returns null.
+
+
+
+
+ Provides additional information about the declaration of a descriptor,
+ such as source location and comments.
+
+
+
+
+ The descriptor this declaration relates to.
+
+
+
+
+ The start line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The start column of the declaration within the source file. This value is 1-based.
+
+
+
+
+ // The end line of the declaration within the source file. This value is 1-based.
+
+
+
+
+ The end column of the declaration within the source file. This value is 1-based, and
+ exclusive. (The final character of the declaration is on the column before this value.)
+
+
+
+
+ Comments appearing before the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing after the declaration. Never null, but may be empty. Multi-line comments
+ are represented as a newline-separated string. Leading whitespace and the comment marker ("//")
+ are removed from each line.
+
+
+
+
+ Comments appearing before the declaration, but separated from it by blank
+ lines. Each string represents a newline-separated paragraph of comments.
+ Leading whitespace and the comment marker ("//") are removed from each line.
+ The list is never null, but may be empty. Likewise each element is never null, but may be empty.
+
+
+
+
+ Contains lookup tables containing all the descriptors defined in a particular file.
+
+
+
+
+ Finds a symbol of the given name within the pool.
+
+ The type of symbol to look for
+ Fully-qualified name to look up
+ The symbol with the given name and type,
+ or null if the symbol doesn't exist or has the wrong type
+
+
+
+ Adds a package to the symbol tables. If a package by the same name
+ already exists, that is fine, but if some other kind of symbol
+ exists under the same name, an exception is thrown. If the package
+ has multiple components, this also adds the parent package(s).
+
+
+
+
+ Adds a symbol to the symbol table.
+
+ The symbol already existed
+ in the symbol table.
+
+
+
+ Verifies that the descriptor's name is valid (i.e. it contains
+ only letters, digits and underscores, and does not start with a digit).
+
+
+
+
+
+ Returns the field with the given number in the given descriptor,
+ or null if it can't be found.
+
+
+
+
+ Adds a field to the fieldsByNumber table.
+
+ A field with the same
+ containing type and number already exists.
+
+
+
+ Adds an enum value to the enumValuesByNumber table. If an enum value
+ with the same type and number already exists, this method does nothing.
+ (This is allowed; the first value defined with the number takes precedence.)
+
+
+
+
+ Looks up a descriptor by name, relative to some other descriptor.
+ The name may be fully-qualified (with a leading '.'), partially-qualified,
+ or unqualified. C++-like name lookup semantics are used to search for the
+ matching descriptor.
+
+
+ This isn't heavily optimized, but it's only used during cross linking anyway.
+ If it starts being used more widely, we should look at performance more carefully.
+
+
+
+
+ Internal class containing utility methods when working with descriptors.
+
+
+
+
+ Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ arrays.
+
+
+
+
+ Converts the given array into a read-only list, applying the specified conversion to
+ each input element.
+
+
+
+
+ Thrown when building descriptors fails because the source DescriptorProtos
+ are not valid.
+
+
+
+
+ The full name of the descriptor where the error occurred.
+
+
+
+
+ A human-readable description of the error. (The Message property
+ is made up of the descriptor's name and this description.)
+
+
+
+
+ Descriptor for an enum type in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ The CLR type for this enum. For generated code, this will be a CLR enum type.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ An unmodifiable list of defined value descriptors for this enum.
+
+
+
+
+ Finds an enum value by number. If multiple enum values have the
+ same number, this returns the first defined value with that number.
+ If there is no value for the given number, this returns null.
+
+
+
+
+ Finds an enum value by name.
+
+ The unqualified name of the value (e.g. "FOO").
+ The value's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this enum.
+
+
+
+
+ The EnumOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum option for this descriptor
+
+
+
+
+ Gets a repeated value enum option for this descriptor
+
+
+
+
+ Descriptor for a single enum value within an enum in a .proto file.
+
+
+
+
+ Returns a clone of the underlying describing this enum value.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this enum value descriptor.
+
+
+
+ Returns the name of the enum value described by this object.
+
+
+
+
+ Returns the number associated with this enum value.
+
+
+
+
+ Returns the enum descriptor that this value is part of.
+
+
+
+
+ The (possibly empty) set of custom options for this enum value.
+
+
+
+
+ The EnumValueOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value enum value option for this descriptor
+
+
+
+
+ Gets a repeated value enum value option for this descriptor
+
+
+
+
+ A collection to simplify retrieving the descriptors of extensions in a descriptor for a message
+
+
+
+
+ Returns a readonly list of all the extensions defined in this type in
+ the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in the order they were defined in the source .proto file
+
+
+
+
+ Returns a readonly list of all the extensions define in this type that extend
+ the provided descriptor type in ascending field order
+
+
+
+
+ Base class for field accessors.
+
+
+
+
+ Descriptor for a field or extension within a message in a .proto file.
+
+
+
+
+ Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension.
+
+
+
+
+ Returns the oneof containing this field, or null if it is not part of a oneof.
+
+
+
+
+ Returns the oneof containing this field if it's a "real" oneof, or null if either this
+ field is not part of a oneof, or the oneof is synthetic.
+
+
+
+
+ The effective JSON name for this field. This is usually the lower-camel-cased form of the field name,
+ but can be overridden using the json_name option in the .proto file.
+
+
+
+
+ The name of the property in the ContainingType.ClrType class.
+
+
+
+
+ Indicates whether this field supports presence, either implicitly (e.g. due to it being a message
+ type field) or explicitly via Has/Clear members. If this returns true, it is safe to call
+ and
+ on this field's accessor with a suitable message.
+
+
+
+
+ Returns a clone of the underlying describing this field.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this field descriptor.
+
+
+
+ An extension identifier for this field, or null if this field isn't an extension.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns the accessor for this field.
+
+
+
+ While a describes the field, it does not provide
+ any way of obtaining or changing the value of the field within a specific message;
+ that is the responsibility of the accessor.
+
+
+ In descriptors for generated code, the value returned by this property will be non-null for all
+ regular fields. However, if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, and the value of the map field itself is represented by a dictionary in the
+ reflection API. There are never instances of those "hidden" messages, so no accessor is provided
+ and this property will return null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+
+
+ Maps a field type as included in the .proto file to a FieldType.
+
+
+
+
+ Returns true if this field is a repeated field; false otherwise.
+
+
+
+
+ Returns true if this field is a required field; false otherwise.
+
+
+
+
+ Returns true if this field is a map field; false otherwise.
+
+
+
+
+ Returns true if this field is a packed, repeated field; false otherwise.
+
+
+
+
+ Returns true if this field extends another message type; false otherwise.
+
+
+
+
+ Returns the type of the field.
+
+
+
+
+ Returns the field number declared in the proto file.
+
+
+
+
+ Compares this descriptor with another one, ordering in "canonical" order
+ which simply means ascending order by field number.
+ must be a field of the same type, i.e. the of
+ both fields must be the same.
+
+
+
+
+ For enum fields, returns the field's type.
+
+
+
+
+ For embedded message and group fields, returns the field's type.
+
+
+
+
+ For extension fields, returns the extended type
+
+
+
+
+ The (possibly empty) set of custom options for this field.
+
+
+
+
+ The FieldOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value field option for this descriptor
+
+
+
+
+ Gets a repeated value field option for this descriptor
+
+
+
+
+ Look up and cross-link all field types etc.
+
+
+
+
+ Enumeration of all the possible field types.
+
+
+
+
+ The double field type.
+
+
+
+
+ The float field type.
+
+
+
+
+ The int64 field type.
+
+
+
+
+ The uint64 field type.
+
+
+
+
+ The int32 field type.
+
+
+
+
+ The fixed64 field type.
+
+
+
+
+ The fixed32 field type.
+
+
+
+
+ The bool field type.
+
+
+
+
+ The string field type.
+
+
+
+
+ The field type used for groups.
+
+
+
+
+ The field type used for message fields.
+
+
+
+
+ The bytes field type.
+
+
+
+
+ The uint32 field type.
+
+
+
+
+ The sfixed32 field type.
+
+
+
+
+ The sfixed64 field type.
+
+
+
+
+ The sint32 field type.
+
+
+
+
+ The sint64 field type.
+
+
+
+
+ The field type used for enum fields.
+
+
+
+
+ The syntax of a .proto file
+
+
+
+
+ Proto2 syntax
+
+
+
+
+ Proto3 syntax
+
+
+
+
+ An unknown declared syntax
+
+
+
+
+ Describes a .proto file, including everything defined within.
+ IDescriptor is implemented such that the File property returns this descriptor,
+ and the FullName is the same as the Name.
+
+
+
+
+ Computes the full name of a descriptor within this file, with an optional parent message.
+
+
+
+
+ Extracts public dependencies from direct dependencies. This is a static method despite its
+ first parameter, as the value we're in the middle of constructing is only used for exceptions.
+
+
+
+
+ The descriptor in its protocol message representation.
+
+
+
+
+ Returns a clone of the underlying describing this file.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this file descriptor.
+
+
+
+ The syntax of the file
+
+
+
+
+ The file name.
+
+
+
+
+ The package as declared in the .proto file. This may or may not
+ be equivalent to the .NET namespace of the generated classes.
+
+
+
+
+ Unmodifiable list of top-level message types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level enum types declared in this file.
+
+
+
+
+ Unmodifiable list of top-level services declared in this file.
+
+
+
+
+ Unmodifiable list of top-level extensions declared in this file.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if this descriptor was generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ Unmodifiable list of this file's dependencies (imports).
+
+
+
+
+ Unmodifiable list of this file's public dependencies (public imports).
+
+
+
+
+ The original serialized binary form of this descriptor.
+
+
+
+
+ Implementation of IDescriptor.FullName - just returns the same as Name.
+
+
+
+
+ Implementation of IDescriptor.File - just returns this descriptor.
+
+
+
+
+ Pool containing symbol descriptors.
+
+
+
+
+ Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+
+ The unqualified type name to look for.
+ The type of descriptor to look for
+ The type's descriptor, or null if not found.
+
+
+
+ Builds a FileDescriptor from its protocol buffer representation.
+
+ The original serialized descriptor data.
+ We have only limited proto2 support, so serializing FileDescriptorProto
+ would not necessarily give us this.
+ The protocol message form of the FileDescriptor.
+ FileDescriptors corresponding to all of the
+ file's dependencies, in the exact order listed in the .proto file. May be null,
+ in which case it is treated as an empty array.
+ Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).
+ Details about generated code, for the purposes of reflection.
+ If is not
+ a valid descriptor. This can occur for a number of reasons, such as a field
+ having an undefined type or because two messages were defined with the same name.
+
+
+
+ Creates a descriptor for generated code.
+
+
+ This method is only designed to be used by the results of generating code with protoc,
+ which creates the appropriate dependencies etc. It has to be public because the generated
+ code is "external", but should not be called directly by end users.
+
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The extension registry to use when parsing, or null if no extensions are required.
+ The file descriptors corresponding to .
+
+
+
+ Converts the given descriptor binary data into FileDescriptor objects.
+ Note: reflection using the returned FileDescriptors is not currently supported.
+
+ The binary file descriptor proto data. Must not be null, and any
+ dependencies must come before the descriptor which depends on them. (If A depends on B, and B
+ depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible
+ with the order in which protoc provides descriptors to plugins.
+ The file descriptors corresponding to .
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns the file descriptor for descriptor.proto.
+
+
+ This is used for protos which take a direct dependency on descriptor.proto, typically for
+ annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf
+ runtime for reflection purposes. The messages are internal to the runtime as they would require
+ proto2 semantics for full support, but the file descriptor is available via this property. The
+ C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto.
+
+
+ The file descriptor for descriptor.proto.
+
+
+
+
+ The (possibly empty) set of custom options for this file.
+
+
+
+
+ The FileOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value file option for this descriptor
+
+
+
+
+ Gets a repeated value file option for this descriptor
+
+
+
+
+ Performs initialization for the given generic type argument.
+
+
+ This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated)
+ to make calls into the reflection machinery of this library to express an intention to use that type
+ reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers
+ attempting to determine which generic type arguments need to be handled will spot the code path and act
+ accordingly.
+
+ The type to force initialization for.
+
+
+
+ Extra information provided by generated code when initializing a message or file descriptor.
+ These are constructed as required, and are not long-lived. Hand-written code should
+ never need to use this type.
+
+
+
+
+ Irrelevant for file descriptors; the CLR type for the message for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the parser for message descriptors.
+
+
+
+
+ Irrelevant for file descriptors; the CLR property names (in message descriptor field order)
+ for fields in the message for message descriptors.
+
+
+
+
+ The extensions defined within this file/message descriptor
+
+
+
+
+ Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order)
+ for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo",
+ there will be a "FooCase" property and a "ClearFoo" method.
+
+
+
+
+ The reflection information for types within this file/message descriptor. Elements may be null
+ if there is no corresponding generated type, e.g. for map entry types.
+
+
+
+
+ The CLR types for enums within this file/message descriptor.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names.
+ Each array parameter may be null, to indicate a lack of values.
+ The parameter order is designed to make it feasible to format the generated code readably.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions.
+
+
+
+
+ Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums.
+
+
+
+
+ Interface implemented by all descriptor types.
+
+
+
+
+ Returns the name of the entity (message, field etc) being described.
+
+
+
+
+ Returns the fully-qualified name of the entity being described.
+
+
+
+
+ Returns the descriptor for the .proto file that this entity is part of.
+
+
+
+
+ Allows fields to be reflectively accessed.
+
+
+
+
+ Returns the descriptor associated with this field.
+
+
+
+
+ Clears the field in the specified message. (For repeated fields,
+ this clears the list.)
+
+
+
+
+ Fetches the field value. For repeated values, this will be an
+ implementation. For map values, this will be an
+ implementation.
+
+
+
+
+ Indicates whether the field in the specified message is set.
+ For proto3 fields that aren't explicitly optional, this throws an
+
+
+
+
+ Mutator for single "simple" fields only.
+
+
+ Repeated fields are mutated by fetching the value and manipulating it as a list.
+ Map fields are mutated by fetching the value and manipulating it as a dictionary.
+
+ The field is not a "simple" field.
+
+
+
+ Accessor for map fields.
+
+
+
+
+ Describes a message type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this message.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this message descriptor.
+
+
+
+ The CLR type used to represent message instances from this descriptor.
+
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. This is not represented in any
+ generated type, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the type returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ A parser for this message type.
+
+
+
+ As is not generic, this cannot be statically
+ typed to the relevant type, but it should produce objects of a type compatible with .
+
+
+ The value returned by this property will be non-null for all regular fields. However,
+ if a message containing a map field is introspected, the list of nested messages will include
+ an auto-generated nested key/value pair message for the field. No message parser object is created for
+ such messages, so this property will return null in such cases.
+
+
+ For wrapper types ( and the like), the parser returned here
+ will be the generated message type, not the native type used by reflection for fields of those types. Code
+ using reflection should call to determine whether a message descriptor represents
+ a wrapper type, and handle the result appropriately.
+
+
+
+
+
+ Returns whether this message is one of the "well known types" which may have runtime/protoc support.
+
+
+
+
+ Returns whether this message is one of the "wrapper types" used for fields which represent primitive values
+ with the addition of presence.
+
+
+
+
+ If this is a nested type, get the outer descriptor, otherwise null.
+
+
+
+
+ A collection of fields, which can be retrieved by name or field number.
+
+
+
+
+ An unmodifiable list of extensions defined in this message's scope.
+ Note that some extensions may be incomplete (FieldDescriptor.Extension may be null)
+ if they are declared in a file generated using a version of protoc that did not fully
+ support extensions in C#.
+
+
+
+
+ An unmodifiable list of this message type's nested types.
+
+
+
+
+ An unmodifiable list of this message type's enum types.
+
+
+
+
+ An unmodifiable list of the "oneof" field collections in this message type.
+ All "real" oneofs (where returns false)
+ come before synthetic ones.
+
+
+
+
+ The number of real "oneof" descriptors in this message type. Every element in
+ with an index less than this will have a property value
+ of false; every element with an index greater than or equal to this will have a
+ property value of true.
+
+
+
+
+ Finds a field by field name.
+
+ The unqualified name of the field (e.g. "foo").
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a field by field number.
+
+ The field number within this message type.
+ The field's descriptor, or null if not found.
+
+
+
+ Finds a nested descriptor by name. The is valid for fields, nested
+ message types, oneofs and enums.
+
+ The unqualified name of the descriptor, e.g. "Foo"
+ The descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this message.
+
+
+
+
+ The MessageOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value message option for this descriptor
+
+
+
+
+ Gets a repeated value message option for this descriptor
+
+
+
+
+ Looks up and cross-links all fields and nested types.
+
+
+
+
+ A collection to simplify retrieving the field accessor for a particular field.
+
+
+
+
+ Returns the fields in the message as an immutable list, in the order in which they
+ are declared in the source .proto file.
+
+
+
+
+ Returns the fields in the message as an immutable list, in ascending field number
+ order. Field numbers need not be contiguous, so there is no direct mapping from the
+ index in the list to the field number; to retrieve a field by field number, it is better
+ to use the indexer.
+
+
+
+
+ Returns a read-only dictionary mapping the field names in this message as they're available
+ in the JSON representation to the field descriptors. For example, a field foo_bar
+ in the message would result two entries, one with a key fooBar and one with a key
+ foo_bar, both referring to the same field.
+
+
+
+
+ Retrieves the descriptor for the field with the given number.
+
+ Number of the field to retrieve the descriptor for
+ The accessor for the given field
+ The message descriptor does not contain a field
+ with the given number
+
+
+
+ Retrieves the descriptor for the field with the given name.
+
+ Name of the field to retrieve the descriptor for
+ The descriptor for the given field
+ The message descriptor does not contain a field
+ with the given name
+
+
+
+ Describes a single method in a service.
+
+
+
+
+ The service this method belongs to.
+
+
+
+
+ The method's input type.
+
+
+
+
+ The method's input type.
+
+
+
+
+ Indicates if client streams multiple requests.
+
+
+
+
+ Indicates if server streams multiple responses.
+
+
+
+
+ The (possibly empty) set of custom options for this method.
+
+
+
+
+ The MethodOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value method option for this descriptor
+
+
+
+
+ Gets a repeated value method option for this descriptor
+
+
+
+
+ Returns a clone of the underlying describing this method.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this method descriptor.
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Reflection access for a oneof, allowing clear and "get case" actions.
+
+
+
+
+ Gets the descriptor for this oneof.
+
+
+ The descriptor of the oneof.
+
+
+
+
+ Clears the oneof in the specified message.
+
+
+
+
+ Indicates which field in the oneof is set for specified message
+
+
+
+
+ Describes a "oneof" field collection in a message type: a set of
+ fields of which at most one can be set in any particular message.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this oneof.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this oneof descriptor.
+
+
+
+ Gets the message type containing this oneof.
+
+
+ The message type containing this oneof.
+
+
+
+
+ Gets the fields within this oneof, in declaration order.
+
+
+ The fields within this oneof, in declaration order.
+
+
+
+
+ Returns true if this oneof is a synthetic oneof containing a proto3 optional field;
+ false otherwise.
+
+
+
+
+ Gets an accessor for reflective access to the values associated with the oneof
+ in a particular message.
+
+
+
+ In descriptors for generated code, the value returned by this property will always be non-null.
+
+
+ In dynamically loaded descriptors, the value returned by this property will current be null;
+ if and when dynamic messages are supported, it will return a suitable accessor to work with
+ them.
+
+
+
+ The accessor used for reflective access.
+
+
+
+
+ The (possibly empty) set of custom options for this oneof.
+
+
+
+
+ The OneofOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value oneof option for this descriptor
+
+
+
+
+ Gets a repeated value oneof option for this descriptor
+
+
+
+
+ Specifies the original name (in the .proto file) of a named element,
+ such as an enum value.
+
+
+
+
+ The name of the element in the .proto file.
+
+
+
+
+ If the name is preferred in the .proto file.
+
+
+
+
+ Constructs a new attribute instance for the given name.
+
+ The name of the element in the .proto file.
+
+
+
+ Represents a package in the symbol table. We use PackageDescriptors
+ just as placeholders so that someone cannot define, say, a message type
+ that has the same name as an existing package.
+
+
+
+
+ The methods in this class are somewhat evil, and should not be tampered with lightly.
+ Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ which are more strongly typed. They do this by creating an appropriate strongly typed
+ delegate from the MethodInfo, and then calling that within an anonymous method.
+ Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ very fast compared with calling Invoke later on.
+
+
+
+
+ Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to object.
+
+ The method to create a delegate for, which must be declared in an
+ IMessage implementation.
+
+
+
+ Creates a delegate which will cast the argument to the type that declares the method,
+ call the method on it, then convert the result to the specified type. The method is expected
+ to actually return an enum (because of where we're calling it - for oneof cases). Sometimes
+ that means we need some extra work to perform conversions.
+
+ The method to create a delegate for, which must be declared in an
+ IMessage implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of
+ the method.
+
+ The method to create a delegate for, which must be declared in an
+ IMessage implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ type that declares the method.
+
+ The method to create a delegate for, which must be declared in an
+ IMessage implementation.
+
+
+
+ Creates a delegate which will execute the given method after casting the first argument to
+ the type that declares the method, and the second argument to the first parameter type of
+ the method.
+
+
+
+
+ Creates a reflection helper for the given type arguments. Currently these are created on
+ demand rather than cached; this will be "busy" when initially loading a message's
+ descriptor, but after that they can be garbage collected. We could cache them by type if
+ that proves to be important, but creating an object is pretty cheap.
+
+
+
+
+ Accessor for repeated fields.
+
+
+
+
+ Describes a service type.
+
+
+
+
+ The brief name of the descriptor's target.
+
+
+
+
+ Returns a clone of the underlying describing this service.
+ Note that a copy is taken every time this method is called, so clients using it frequently
+ (and not modifying it) may want to cache the returned value.
+
+ A protobuf representation of this service descriptor.
+
+
+
+ An unmodifiable list of methods in this service.
+
+
+
+
+ Finds a method by name.
+
+ The unqualified name of the method (e.g. "Foo").
+ The method's descriptor, or null if not found.
+
+
+
+ The (possibly empty) set of custom options for this service.
+
+
+
+
+ The ServiceOptions, defined in descriptor.proto.
+ If the options message is not present (i.e. there are no options), null is returned.
+ Custom options can be retrieved as extensions of the returned message.
+ NOTE: A defensive copy is created each time this property is retrieved.
+
+
+
+
+ Gets a single value service option for this descriptor
+
+
+
+
+ Gets a repeated value service option for this descriptor
+
+
+
+
+ Accessor for single fields.
+
+
+
+
+ An immutable registry of types which can be looked up by their full name.
+
+
+
+
+ An empty type registry, containing no types.
+
+
+
+
+ Attempts to find a message descriptor by its full name.
+
+ The full name of the message, which is the dot-separated
+ combination of package, containing messages and message name
+ The message descriptor corresponding to or null
+ if there is no such message descriptor.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the specified set of file descriptors.
+
+
+ All message types within all the specified files are added to the registry, and
+ the dependencies of the specified files are also added, recursively.
+
+ The set of files to include in the registry. Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ This is a convenience overload for
+ to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2).
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Creates a type registry from the file descriptor parents of the specified set of message descriptors.
+
+
+ The specified message descriptors are only used to identify their file descriptors; the returned registry
+ contains all the types within the file descriptors which contain the specified message descriptors (and
+ the dependencies of those files), not just the specified messages.
+
+ The set of message descriptors to use to identify file descriptors to include in the registry.
+ Must not contain null values.
+ A type registry for the given files.
+
+
+
+ Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls.
+
+
+
+
+ Abstraction for reading from a stream / read only sequence.
+ Parsing from the buffer is a loop of reading from current buffer / refreshing the buffer once done.
+
+
+
+
+ Initialize an instance with a coded input stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a read only sequence.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Sets currentLimit to (current position) + byteLimit. This is called
+ when descending into a length-delimited embedded message. The previous
+ limit is returned.
+
+ The old limit.
+
+
+
+ Discards the current limit, returning the previous limit.
+
+
+
+
+ Returns whether or not all the data before the limit has been read.
+
+
+
+
+
+ Returns true if the stream has reached the end of the input. This is the
+ case if either the end of the underlying input source has been reached or
+ the stream has reached a limit created using PushLimit.
+
+
+
+
+ Represents a single field in an UnknownFieldSet.
+
+ An UnknownField consists of four lists of values. The lists correspond
+ to the four "wire types" used in the protocol buffer binary format.
+ Normally, only one of the four lists will contain any values, since it
+ is impossible to define a valid message type that declares two different
+ types for the same field number. However, the code is designed to allow
+ for the case where the same unknown field number is encountered using
+ multiple different wire types.
+
+
+
+
+
+ Creates a new UnknownField.
+
+
+
+
+ Checks if two unknown field are equal.
+
+
+
+
+ Get the hash code of the unknown field.
+
+
+
+
+ Serializes the field, including the field number, and writes it to
+
+
+ The unknown field number.
+ The write context to write to.
+
+
+
+ Computes the number of bytes required to encode this field, including field
+ number.
+
+
+
+
+ Merge the values in into this field. For each list
+ of values, 's values are append to the ones in this
+ field.
+
+
+
+
+ Returns a new list containing all of the given specified values from
+ both the and lists.
+ If is null and is null or empty,
+ null is returned. Otherwise, either a new list is created (if
+ is null) or the elements of are added to .
+
+
+
+
+ Adds a varint value.
+
+
+
+
+ Adds a fixed32 value.
+
+
+
+
+ Adds a fixed64 value.
+
+
+
+
+ Adds a length-delimited value.
+
+
+
+
+ Adds to the , creating
+ a new list if is null. The list is returned - either
+ the original reference or the new list.
+
+
+
+
+ Used to keep track of fields which were seen when parsing a protocol message
+ but whose field numbers or types are unrecognized. This most frequently
+ occurs when new fields are added to a message type and then messages containing
+ those fields are read by old software that was built before the new types were
+ added.
+
+ Most users will never need to use this class directly.
+
+
+
+
+ Creates a new UnknownFieldSet.
+
+
+
+
+ Checks whether or not the given field number is present in the set.
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Serializes the set and writes it to .
+
+
+
+
+ Gets the number of bytes required to encode this set.
+
+
+
+
+ Checks if two unknown field sets are equal.
+
+
+
+
+ Gets the unknown field set's hash code.
+
+
+
+
+ Adds a field to the set. If a field with the same number already exists, it
+ is replaced.
+
+
+
+
+ Parse a single field from and merge it
+ into this set.
+
+ The parse context from which to read the field
+ false if the tag is an "end group" tag, true otherwise
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The coded input stream containing the field
+ The merged UnknownFieldSet
+
+
+
+ Create a new UnknownFieldSet if unknownFields is null.
+ Parse a single field from and merge it
+ into unknownFields. If is configured to discard unknown fields,
+ will be returned as-is and the field will be skipped.
+
+ The UnknownFieldSet which need to be merged
+ The parse context from which to read the field
+ The merged UnknownFieldSet
+
+
+
+ Merges the fields from into this set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Created a new UnknownFieldSet to if
+ needed and merges the fields from into the first set.
+ If a field number exists in both sets, the values in
+ will be appended to the values in this set.
+
+
+
+
+ Adds a field to the unknown field set. If a field with the same
+ number already exists, the two are merged.
+
+
+
+
+ Clone an unknown field set from .
+
+
+
+
+ Provides a number of unsafe byte operations to be used by advanced applications with high performance
+ requirements. These methods are referred to as "unsafe" due to the fact that they potentially expose
+ the backing buffer of a to the application.
+
+
+
+ The methods in this class should only be called if it is guaranteed that the buffer backing the
+ will never change! Mutation of a can lead to unexpected
+ and undesirable consequences in your application, and will likely be difficult to debug. Proceed with caution!
+
+
+ This can have a number of significant side affects that have spooky-action-at-a-distance-like behavior. In
+ particular, if the bytes value changes out from under a Protocol Buffer:
+
+
+ -
+ serialization may throw
+
+ -
+ serialization may succeed but the wrong bytes may be written out
+
+ -
+ objects that are normally immutable (such as ByteString) are no longer immutable
+
+ -
+ hashCode may be incorrect
+
+
+
+
+
+
+ Constructs a new from the given bytes. The bytes are not copied,
+ and must not be modified while the is in use.
+ This API is experimental and subject to change.
+
+
+
+ Holder for reflection information generated from google/protobuf/any.proto
+
+
+ File descriptor for google/protobuf/any.proto
+
+
+
+ `Any` contains an arbitrary serialized protocol buffer message along with a
+ URL that describes the type of the serialized message.
+
+ Protobuf library provides support to pack/unpack Any values in the form
+ of utility functions or additional generated methods of the Any type.
+
+ Example 1: Pack and unpack a message in C++.
+
+ Foo foo = ...;
+ Any any;
+ any.PackFrom(foo);
+ ...
+ if (any.UnpackTo(&foo)) {
+ ...
+ }
+
+ Example 2: Pack and unpack a message in Java.
+
+ Foo foo = ...;
+ Any any = Any.pack(foo);
+ ...
+ if (any.is(Foo.class)) {
+ foo = any.unpack(Foo.class);
+ }
+ // or ...
+ if (any.isSameTypeAs(Foo.getDefaultInstance())) {
+ foo = any.unpack(Foo.getDefaultInstance());
+ }
+
+ Example 3: Pack and unpack a message in Python.
+
+ foo = Foo(...)
+ any = Any()
+ any.Pack(foo)
+ ...
+ if any.Is(Foo.DESCRIPTOR):
+ any.Unpack(foo)
+ ...
+
+ Example 4: Pack and unpack a message in Go
+
+ foo := &pb.Foo{...}
+ any, err := anypb.New(foo)
+ if err != nil {
+ ...
+ }
+ ...
+ foo := &pb.Foo{}
+ if err := any.UnmarshalTo(foo); err != nil {
+ ...
+ }
+
+ The pack methods provided by protobuf library will by default use
+ 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ methods only use the fully qualified type name after the last '/'
+ in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ name "y.z".
+
+ JSON
+ ====
+ The JSON representation of an `Any` value uses the regular
+ representation of the deserialized, embedded message, with an
+ additional field `@type` which contains the type URL. Example:
+
+ package google.profile;
+ message Person {
+ string first_name = 1;
+ string last_name = 2;
+ }
+
+ {
+ "@type": "type.googleapis.com/google.profile.Person",
+ "firstName": <string>,
+ "lastName": <string>
+ }
+
+ If the embedded message type is well-known and has a custom JSON
+ representation, that representation will be embedded adding a field
+ `value` which holds the custom JSON in addition to the `@type`
+ field. Example (for message [google.protobuf.Duration][]):
+
+ {
+ "@type": "type.googleapis.com/google.protobuf.Duration",
+ "value": "1.212s"
+ }
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ A URL/resource name that uniquely identifies the type of the serialized
+ protocol buffer message. This string must contain at least
+ one "/" character. The last segment of the URL's path must represent
+ the fully qualified name of the type (as in
+ `path/google.protobuf.Duration`). The name should be in a canonical form
+ (e.g., leading "." is not accepted).
+
+ In practice, teams usually precompile into the binary all types that they
+ expect it to use in the context of Any. However, for URLs which use the
+ scheme `http`, `https`, or no scheme, one can optionally set up a type
+ server that maps type URLs to message definitions as follows:
+
+ * If no scheme is provided, `https` is assumed.
+ * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ value in binary format, or produce an error.
+ * Applications are allowed to cache lookup results based on the
+ URL, or have them precompiled into a binary to avoid any
+ lookup. Therefore, binary compatibility needs to be preserved
+ on changes to types. (Use versioned type names to manage
+ breaking changes.)
+
+ Note: this functionality is not currently available in the official
+ protobuf release, and it is not used for type URLs beginning with
+ type.googleapis.com. As of May 2023, there are no widely used type server
+ implementations and no plans to implement one.
+
+ Schemes other than `http`, `https` (or the empty scheme) might be
+ used with implementation specific semantics.
+
+
+
+ Field number for the "value" field.
+
+
+
+ Must be a valid serialized protocol buffer of the above specified type.
+
+
+
+
+ Retrieves the type name for a type URL, matching the
+ of the packed message type.
+
+
+
+ This is always just the last part of the URL, after the final slash. No validation of
+ anything before the trailing slash is performed. If the type URL does not include a slash,
+ an empty string is returned rather than an exception being thrown; this won't match any types,
+ and the calling code is probably in a better position to give a meaningful error.
+
+
+ There is no handling of fragments or queries at the moment.
+
+
+ The URL to extract the type name from
+ The type name
+
+
+
+ Returns a bool indictating whether this Any message is of the target message type
+
+ The descriptor of the message type
+ true if the type name matches the descriptor's full name or false otherwise
+
+
+
+ Unpacks the content of this Any message into the target message type,
+ which must match the type URL within this Any message.
+
+ The type of message to unpack the content into.
+ The unpacked message.
+ The target message type doesn't match the type URL in this message
+
+
+
+ Attempts to unpack the content of this Any message into the target message type,
+ if it matches the type URL within this Any message.
+
+ The type of message to attempt to unpack the content into.
+ true if the message was successfully unpacked; false if the type name didn't match
+
+
+
+ Attempts to unpack the content of this Any message into one of the message types
+ in the given type registry, based on the type URL.
+
+ The type registry to consult for messages.
+ The unpacked message, or null if no matching message was found.
+
+
+
+ Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com".
+
+ The message to pack.
+ An Any message with the content and type URL of .
+
+
+
+ Packs the specified message into an Any message using the specified type URL prefix.
+
+ The message to pack.
+ The prefix for the type URL.
+ An Any message with the content and type URL of .
+
+
+ Holder for reflection information generated from google/protobuf/api.proto
+
+
+ File descriptor for google/protobuf/api.proto
+
+
+
+ Api is a light-weight descriptor for an API Interface.
+
+ Interfaces are also described as "protocol buffer services" in some contexts,
+ such as by the "service" keyword in a .proto file, but they are different
+ from API Services, which represent a concrete implementation of an interface
+ as opposed to simply a description of methods and bindings. They are also
+ sometimes simply referred to as "APIs" in other contexts, such as the name of
+ this message itself. See https://cloud.google.com/apis/design/glossary for
+ detailed terminology.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of this interface, including package name
+ followed by the interface's simple name.
+
+
+
+ Field number for the "methods" field.
+
+
+
+ The methods of this interface, in unspecified order.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the interface.
+
+
+
+ Field number for the "version" field.
+
+
+
+ A version string for this interface. If specified, must have the form
+ `major-version.minor-version`, as in `1.10`. If the minor version is
+ omitted, it defaults to zero. If the entire version field is empty, the
+ major version is derived from the package name, as outlined below. If the
+ field is not empty, the version in the package name will be verified to be
+ consistent with what is provided here.
+
+ The versioning schema uses [semantic
+ versioning](http://semver.org) where the major version number
+ indicates a breaking change and the minor version an additive,
+ non-breaking change. Both version numbers are signals to users
+ what to expect from different versions, and should be carefully
+ chosen based on the product plan.
+
+ The major version is also reflected in the package name of the
+ interface, which must end in `v<major-version>`, as in
+ `google.feature.v1`. For major versions 0 and 1, the suffix can
+ be omitted. Zero major versions must only be used for
+ experimental, non-GA interfaces.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ Source context for the protocol buffer service represented by this
+ message.
+
+
+
+ Field number for the "mixins" field.
+
+
+
+ Included interfaces. See [Mixin][].
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of the service.
+
+
+
+
+ Method represents a method of an API interface.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The simple name of this method.
+
+
+
+ Field number for the "request_type_url" field.
+
+
+
+ A URL of the input message type.
+
+
+
+ Field number for the "request_streaming" field.
+
+
+
+ If true, the request is streamed.
+
+
+
+ Field number for the "response_type_url" field.
+
+
+
+ The URL of the output message type.
+
+
+
+ Field number for the "response_streaming" field.
+
+
+
+ If true, the response is streamed.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Any metadata attached to the method.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax of this method.
+
+
+
+
+ Declares an API Interface to be included in this interface. The including
+ interface must redeclare all the methods from the included interface, but
+ documentation and options are inherited as follows:
+
+ - If after comment and whitespace stripping, the documentation
+ string of the redeclared method is empty, it will be inherited
+ from the original method.
+
+ - Each annotation belonging to the service config (http,
+ visibility) which is not set in the redeclared method will be
+ inherited.
+
+ - If an http annotation is inherited, the path pattern will be
+ modified as follows. Any version prefix will be replaced by the
+ version of the including interface plus the [root][] path if
+ specified.
+
+ Example of a simple mixin:
+
+ package google.acl.v1;
+ service AccessControl {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v1/{resource=**}:getAcl";
+ }
+ }
+
+ package google.storage.v2;
+ service Storage {
+ rpc GetAcl(GetAclRequest) returns (Acl);
+
+ // Get a data record.
+ rpc GetData(GetDataRequest) returns (Data) {
+ option (google.api.http).get = "/v2/{resource=**}";
+ }
+ }
+
+ Example of a mixin configuration:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+
+ The mixin construct implies that all methods in `AccessControl` are
+ also declared with same name and request/response types in
+ `Storage`. A documentation generator or annotation processor will
+ see the effective `Storage.GetAcl` method after inherting
+ documentation and annotations as follows:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+ Note how the version in the path pattern changed from `v1` to `v2`.
+
+ If the `root` field in the mixin is specified, it should be a
+ relative path under which inherited HTTP paths are placed. Example:
+
+ apis:
+ - name: google.storage.v2.Storage
+ mixins:
+ - name: google.acl.v1.AccessControl
+ root: acls
+
+ This implies the following inherited HTTP annotation:
+
+ service Storage {
+ // Get the underlying ACL object.
+ rpc GetAcl(GetAclRequest) returns (Acl) {
+ option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+ }
+ ...
+ }
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified name of the interface which is included.
+
+
+
+ Field number for the "root" field.
+
+
+
+ If non-empty specifies a path under which inherited HTTP paths
+ are rooted.
+
+
+
+ Holder for reflection information generated from google/protobuf/duration.proto
+
+
+ File descriptor for google/protobuf/duration.proto
+
+
+
+ A Duration represents a signed, fixed-length span of time represented
+ as a count of seconds and fractions of seconds at nanosecond
+ resolution. It is independent of any calendar and concepts like "day"
+ or "month". It is related to Timestamp in that the difference between
+ two Timestamp values is a Duration and it can be added or subtracted
+ from a Timestamp. Range is approximately +-10,000 years.
+
+ # Examples
+
+ Example 1: Compute Duration from two Timestamps in pseudo code.
+
+ Timestamp start = ...;
+ Timestamp end = ...;
+ Duration duration = ...;
+
+ duration.seconds = end.seconds - start.seconds;
+ duration.nanos = end.nanos - start.nanos;
+
+ if (duration.seconds < 0 && duration.nanos > 0) {
+ duration.seconds += 1;
+ duration.nanos -= 1000000000;
+ } else if (duration.seconds > 0 && duration.nanos < 0) {
+ duration.seconds -= 1;
+ duration.nanos += 1000000000;
+ }
+
+ Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+
+ Timestamp start = ...;
+ Duration duration = ...;
+ Timestamp end = ...;
+
+ end.seconds = start.seconds + duration.seconds;
+ end.nanos = start.nanos + duration.nanos;
+
+ if (end.nanos < 0) {
+ end.seconds -= 1;
+ end.nanos += 1000000000;
+ } else if (end.nanos >= 1000000000) {
+ end.seconds += 1;
+ end.nanos -= 1000000000;
+ }
+
+ Example 3: Compute Duration from datetime.timedelta in Python.
+
+ td = datetime.timedelta(days=3, minutes=10)
+ duration = Duration()
+ duration.FromTimedelta(td)
+
+ # JSON Mapping
+
+ In JSON format, the Duration type is encoded as a string rather than an
+ object, where the string ends in the suffix "s" (indicating seconds) and
+ is preceded by the number of seconds, with nanoseconds expressed as
+ fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+ encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+ be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+ microsecond should be expressed in JSON format as "3.000001s".
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Signed seconds of the span of time. Must be from -315,576,000,000
+ to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Signed fractions of a second at nanosecond resolution of the span
+ of time. Durations less than one second are represented with a 0
+ `seconds` field and a positive or negative `nanos` field. For durations
+ of one second or more, a non-zero value for the `nanos` field must be
+ of the same sign as the `seconds` field. Must be from -999,999,999
+ to +999,999,999 inclusive.
+
+
+
+
+ The number of nanoseconds in a second.
+
+
+
+
+ The number of nanoseconds in a BCL tick (as used by and ).
+
+
+
+
+ The maximum permitted number of seconds.
+
+
+
+
+ The minimum permitted number of seconds.
+
+
+
+
+ Converts this to a .
+
+ If the duration is not a precise number of ticks, it is truncated towards 0.
+ The value of this duration, as a TimeSpan.
+ This value isn't a valid normalized duration, as
+ described in the documentation.
+
+
+
+ Converts the given to a .
+
+ The TimeSpan to convert.
+ The value of the given TimeSpan, as a Duration.
+
+
+
+ Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes.
+
+ The duration to negate. Must not be null.
+ The negated value of this duration.
+
+
+
+ Adds the two specified values together.
+
+ The first value to add. Must not be null.
+ The second value to add. Must not be null.
+
+
+
+
+ Subtracts one from another.
+
+ The duration to subtract from. Must not be null.
+ The duration to subtract. Must not be null.
+ The difference between the two specified durations.
+
+
+
+ Creates a duration with the normalized values from the given number of seconds and
+ nanoseconds, conforming with the description in the proto file.
+
+
+
+
+ Converts a duration specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in duration.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which
+ case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well
+ as Duration.
+
+
+
+
+ Given another duration, returns 0 if the durations are equivalent, -1 if this duration is shorter than the other, and 1 otherwise.
+
+
+ This method expects that both durations are normalized; that is, that the values of
+ and are within the documented bounds.
+ If either value is not normalized, the results of this method are unspecified.
+
+ The duration to compare with this object.
+ An integer indicating whether this duration is shorter or longer than .
+
+
+ Holder for reflection information generated from google/protobuf/empty.proto
+
+
+ File descriptor for google/protobuf/empty.proto
+
+
+
+ A generic empty message that you can re-use to avoid defining duplicated
+ empty messages in your APIs. A typical example is to use it as the request
+ or the response type of an API method. For instance:
+
+ service Foo {
+ rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+ }
+
+
+
+ Holder for reflection information generated from google/protobuf/field_mask.proto
+
+
+ File descriptor for google/protobuf/field_mask.proto
+
+
+
+ `FieldMask` represents a set of symbolic field paths, for example:
+
+ paths: "f.a"
+ paths: "f.b.d"
+
+ Here `f` represents a field in some root message, `a` and `b`
+ fields in the message found in `f`, and `d` a field found in the
+ message in `f.b`.
+
+ Field masks are used to specify a subset of fields that should be
+ returned by a get operation or modified by an update operation.
+ Field masks also have a custom JSON encoding (see below).
+
+ # Field Masks in Projections
+
+ When used in the context of a projection, a response message or
+ sub-message is filtered by the API to only contain those fields as
+ specified in the mask. For example, if the mask in the previous
+ example is applied to a response message as follows:
+
+ f {
+ a : 22
+ b {
+ d : 1
+ x : 2
+ }
+ y : 13
+ }
+ z: 8
+
+ The result will not contain specific values for fields x,y and z
+ (their value will be set to the default, and omitted in proto text
+ output):
+
+ f {
+ a : 22
+ b {
+ d : 1
+ }
+ }
+
+ A repeated field is not allowed except at the last position of a
+ paths string.
+
+ If a FieldMask object is not present in a get operation, the
+ operation applies to all fields (as if a FieldMask of all fields
+ had been specified).
+
+ Note that a field mask does not necessarily apply to the
+ top-level response message. In case of a REST get operation, the
+ field mask applies directly to the response, but in case of a REST
+ list operation, the mask instead applies to each individual message
+ in the returned resource list. In case of a REST custom method,
+ other definitions may be used. Where the mask applies will be
+ clearly documented together with its declaration in the API. In
+ any case, the effect on the returned resource/resources is required
+ behavior for APIs.
+
+ # Field Masks in Update Operations
+
+ A field mask in update operations specifies which fields of the
+ targeted resource are going to be updated. The API is required
+ to only change the values of the fields as specified in the mask
+ and leave the others untouched. If a resource is passed in to
+ describe the updated values, the API ignores the values of all
+ fields not covered by the mask.
+
+ If a repeated field is specified for an update operation, new values will
+ be appended to the existing repeated field in the target resource. Note that
+ a repeated field is only allowed in the last position of a `paths` string.
+
+ If a sub-message is specified in the last position of the field mask for an
+ update operation, then new value will be merged into the existing sub-message
+ in the target resource.
+
+ For example, given the target message:
+
+ f {
+ b {
+ d: 1
+ x: 2
+ }
+ c: [1]
+ }
+
+ And an update message:
+
+ f {
+ b {
+ d: 10
+ }
+ c: [2]
+ }
+
+ then if the field mask is:
+
+ paths: ["f.b", "f.c"]
+
+ then the result will be:
+
+ f {
+ b {
+ d: 10
+ x: 2
+ }
+ c: [1, 2]
+ }
+
+ An implementation may provide options to override this default behavior for
+ repeated and message fields.
+
+ In order to reset a field's value to the default, the field must
+ be in the mask and set to the default value in the provided resource.
+ Hence, in order to reset all fields of a resource, provide a default
+ instance of the resource and set all fields in the mask, or do
+ not provide a mask as described below.
+
+ If a field mask is not present on update, the operation applies to
+ all fields (as if a field mask of all fields has been specified).
+ Note that in the presence of schema evolution, this may mean that
+ fields the client does not know and has therefore not filled into
+ the request will be reset to their default. If this is unwanted
+ behavior, a specific service may require a client to always specify
+ a field mask, producing an error if not.
+
+ As with get operations, the location of the resource which
+ describes the updated values in the request message depends on the
+ operation kind. In any case, the effect of the field mask is
+ required to be honored by the API.
+
+ ## Considerations for HTTP REST
+
+ The HTTP kind of an update operation which uses a field mask must
+ be set to PATCH instead of PUT in order to satisfy HTTP semantics
+ (PUT must only be used for full updates).
+
+ # JSON Encoding of Field Masks
+
+ In JSON, a field mask is encoded as a single string where paths are
+ separated by a comma. Fields name in each path are converted
+ to/from lower-camel naming conventions.
+
+ As an example, consider the following message declarations:
+
+ message Profile {
+ User user = 1;
+ Photo photo = 2;
+ }
+ message User {
+ string display_name = 1;
+ string address = 2;
+ }
+
+ In proto a field mask for `Profile` may look as such:
+
+ mask {
+ paths: "user.display_name"
+ paths: "photo"
+ }
+
+ In JSON, the same mask is represented as below:
+
+ {
+ mask: "user.displayName,photo"
+ }
+
+ # Field Masks and Oneof Fields
+
+ Field masks treat fields in oneofs just as regular fields. Consider the
+ following message:
+
+ message SampleMessage {
+ oneof test_oneof {
+ string name = 4;
+ SubMessage sub_message = 9;
+ }
+ }
+
+ The field mask can be:
+
+ mask {
+ paths: "name"
+ }
+
+ Or:
+
+ mask {
+ paths: "sub_message"
+ }
+
+ Note that oneof type names ("test_oneof" in this case) cannot be used in
+ paths.
+
+ ## Field Mask Verification
+
+ The implementation of any API method which has a FieldMask type field in the
+ request should verify the included field paths, and return an
+ `INVALID_ARGUMENT` error if any path is unmappable.
+
+
+
+ Field number for the "paths" field.
+
+
+
+ The set of field mask paths.
+
+
+
+
+ Converts a field mask specified by paths to a string.
+
+
+ If the value is a normalized duration in the range described in field_mask.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Paths in the field mask
+ Determines the handling of non-normalized values
+ The represented field mask is invalid, and is false.
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+
+ Parses from a string to a FieldMask.
+
+
+
+
+ Parses from a string to a FieldMask and validates all field paths.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask for a list of field paths in a certain type.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Constructs a FieldMask from the passed field numbers.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether the given path is valid for a field mask.
+
+ true if the path is valid; false otherwise
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Checks whether a given field path is valid.
+
+ The type to validate the field paths against.
+
+
+
+ Checks whether paths in a given fields mask are valid.
+
+
+
+
+ Converts this FieldMask to its canonical form. In the canonical form of a
+ FieldMask, all field paths are sorted alphabetically and redundant field
+ paths are removed.
+
+
+
+
+ Creates a union of two or more FieldMasks.
+
+
+
+
+ Calculates the intersection of two FieldMasks.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another with the
+ specified merge options.
+
+
+
+
+ Merges fields specified by this FieldMask from one message to another.
+
+
+
+
+ Options to customize merging behavior.
+
+
+
+
+ Whether to replace message fields(i.e., discard existing content in
+ destination message fields) when merging.
+ Default behavior is to merge the source message field into the
+ destination message field.
+
+
+
+
+ Whether to replace repeated fields (i.e., discard existing content in
+ destination repeated fields) when merging.
+ Default behavior is to append elements from source repeated field to the
+ destination repeated field.
+
+
+
+
+ Whether to replace primitive (non-repeated and non-message) fields in
+ destination message fields with the source primitive fields (i.e., if the
+ field is set in the source, the value is copied to the
+ destination; if the field is unset in the source, the field is cleared
+ from the destination) when merging.
+
+ Default behavior is to always set the value of the source primitive
+ field to the destination primitive field, and if the source field is
+ unset, the default value of the source field is copied to the
+ destination.
+
+
+
+ Holder for reflection information generated from google/protobuf/source_context.proto
+
+
+ File descriptor for google/protobuf/source_context.proto
+
+
+
+ `SourceContext` represents information about the source of a
+ protobuf element, like the file in which it is defined.
+
+
+
+ Field number for the "file_name" field.
+
+
+
+ The path-qualified name of the .proto file that contained the associated
+ protobuf element. For example: `"google/protobuf/source_context.proto"`.
+
+
+
+ Holder for reflection information generated from google/protobuf/struct.proto
+
+
+ File descriptor for google/protobuf/struct.proto
+
+
+
+ `NullValue` is a singleton enumeration to represent the null value for the
+ `Value` type union.
+
+ The JSON representation for `NullValue` is JSON `null`.
+
+
+
+
+ Null value.
+
+
+
+
+ `Struct` represents a structured data value, consisting of fields
+ which map to dynamically typed values. In some languages, `Struct`
+ might be supported by a native representation. For example, in
+ scripting languages like JS a struct is represented as an
+ object. The details of that representation are described together
+ with the proto support for the language.
+
+ The JSON representation for `Struct` is JSON object.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ Unordered map of dynamically typed values.
+
+
+
+
+ `Value` represents a dynamically typed value which can be either
+ null, a number, a string, a boolean, a recursive struct value, or a
+ list of values. A producer of value is expected to set one of these
+ variants. Absence of any variant indicates an error.
+
+ The JSON representation for `Value` is JSON value.
+
+
+
+ Field number for the "null_value" field.
+
+
+
+ Represents a null value.
+
+
+
+ Gets whether the "null_value" field is set
+
+
+ Clears the value of the oneof if it's currently set to "null_value"
+
+
+ Field number for the "number_value" field.
+
+
+
+ Represents a double value.
+
+
+
+ Gets whether the "number_value" field is set
+
+
+ Clears the value of the oneof if it's currently set to "number_value"
+
+
+ Field number for the "string_value" field.
+
+
+
+ Represents a string value.
+
+
+
+ Gets whether the "string_value" field is set
+
+
+ Clears the value of the oneof if it's currently set to "string_value"
+
+
+ Field number for the "bool_value" field.
+
+
+
+ Represents a boolean value.
+
+
+
+ Gets whether the "bool_value" field is set
+
+
+ Clears the value of the oneof if it's currently set to "bool_value"
+
+
+ Field number for the "struct_value" field.
+
+
+
+ Represents a structured value.
+
+
+
+ Field number for the "list_value" field.
+
+
+
+ Represents a repeated `Value`.
+
+
+
+ Enum of possible cases for the "kind" oneof.
+
+
+
+ Convenience method to create a Value message with a string value.
+
+ Value to set for the StringValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a number value.
+
+ Value to set for the NumberValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a Boolean value.
+
+ Value to set for the BoolValue property.
+ A newly-created Value message with the given value.
+
+
+
+ Convenience method to create a Value message with a null initial value.
+
+ A newly-created Value message a null initial value.
+
+
+
+ Convenience method to create a Value message with an initial list of values.
+
+ The values provided are not cloned; the references are copied directly.
+ A newly-created Value message an initial list value.
+
+
+
+ Convenience method to create a Value message with an initial struct value
+
+ The value provided is not cloned; the reference is copied directly.
+ A newly-created Value message an initial struct value.
+
+
+
+ `ListValue` is a wrapper around a repeated field of values.
+
+ The JSON representation for `ListValue` is JSON array.
+
+
+
+ Field number for the "values" field.
+
+
+
+ Repeated field of dynamically typed values.
+
+
+
+
+ Extension methods on BCL time-related types, converting to protobuf types.
+
+
+
+
+ Converts the given to a .
+
+ The date and time to convert to a timestamp.
+ The value has a other than Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts the given to a .
+
+ The time span to convert.
+ The converted duration.
+
+
+ Holder for reflection information generated from google/protobuf/timestamp.proto
+
+
+ File descriptor for google/protobuf/timestamp.proto
+
+
+
+ A Timestamp represents a point in time independent of any time zone or local
+ calendar, encoded as a count of seconds and fractions of seconds at
+ nanosecond resolution. The count is relative to an epoch at UTC midnight on
+ January 1, 1970, in the proleptic Gregorian calendar which extends the
+ Gregorian calendar backwards to year one.
+
+ All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+ second table is needed for interpretation, using a [24-hour linear
+ smear](https://developers.google.com/time/smear).
+
+ The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+ restricting to that range, we ensure that we can convert to and from [RFC
+ 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+
+ # Examples
+
+ Example 1: Compute Timestamp from POSIX `time()`.
+
+ Timestamp timestamp;
+ timestamp.set_seconds(time(NULL));
+ timestamp.set_nanos(0);
+
+ Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+
+ Timestamp timestamp;
+ timestamp.set_seconds(tv.tv_sec);
+ timestamp.set_nanos(tv.tv_usec * 1000);
+
+ Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+
+ // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+ // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+ Timestamp timestamp;
+ timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+ timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+
+ Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+
+ long millis = System.currentTimeMillis();
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+ .setNanos((int) ((millis % 1000) * 1000000)).build();
+
+ Example 5: Compute Timestamp from Java `Instant.now()`.
+
+ Instant now = Instant.now();
+
+ Timestamp timestamp =
+ Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+ .setNanos(now.getNano()).build();
+
+ Example 6: Compute Timestamp from current time in Python.
+
+ timestamp = Timestamp()
+ timestamp.GetCurrentTime()
+
+ # JSON Mapping
+
+ In JSON format, the Timestamp type is encoded as a string in the
+ [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+ format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+ where {year} is always expressed using four digits while {month}, {day},
+ {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+ seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+ are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+ is required. A proto3 JSON serializer should always use UTC (as indicated by
+ "Z") when printing the Timestamp type and a proto3 JSON parser should be
+ able to accept both UTC and other timezones (as indicated by an offset).
+
+ For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+ 01:30 UTC on January 15, 2017.
+
+ In JavaScript, one can convert a Date object to this format using the
+ standard
+ [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+ method. In Python, a standard `datetime.datetime` object can be converted
+ to this format using
+ [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+ the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+ the Joda Time's [`ISODateTimeFormat.dateTime()`](
+ http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
+ ) to obtain a formatter capable of generating timestamps in this format.
+
+
+
+ Field number for the "seconds" field.
+
+
+
+ Represents seconds of UTC time since Unix epoch
+ 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ 9999-12-31T23:59:59Z inclusive.
+
+
+
+ Field number for the "nanos" field.
+
+
+
+ Non-negative fractions of a second at nanosecond resolution. Negative
+ second values with fractions must still have non-negative nanos values
+ that count forward in time. Must be from 0 to 999,999,999
+ inclusive.
+
+
+
+
+ Returns the difference between one and another, as a .
+
+ The timestamp to subtract from. Must not be null.
+ The timestamp to subtract. Must not be null.
+ The difference between the two specified timestamps.
+
+
+
+ Adds a to a , to obtain another Timestamp.
+
+ The timestamp to add the duration to. Must not be null.
+ The duration to add. Must not be null.
+ The result of adding the duration to the timestamp.
+
+
+
+ Subtracts a from a , to obtain another Timestamp.
+
+ The timestamp to subtract the duration from. Must not be null.
+ The duration to subtract.
+ The result of subtracting the duration from the timestamp.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTime will always have a Kind of Utc.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTime.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts this timestamp into a .
+
+
+ The resulting DateTimeOffset will always have an Offset of zero.
+ If the timestamp is not a precise number of ticks, it will be truncated towards the start
+ of time. For example, a timestamp with a value of 99 will result in a
+ value precisely on a second.
+
+ This timestamp as a DateTimeOffset.
+ The timestamp contains invalid values; either it is
+ incorrectly normalized or is outside the valid range.
+
+
+
+ Converts the specified to a .
+
+
+ The Kind of is not DateTimeKind.Utc.
+ The converted timestamp.
+
+
+
+ Converts the given to a
+
+ The offset is taken into consideration when converting the value (so the same instant in time
+ is represented) but is not a separate part of the resulting value. In other words, there is no
+ roundtrip operation to retrieve the original DateTimeOffset.
+ The date and time (with UTC offset) to convert to a timestamp.
+ The converted timestamp.
+
+
+
+ Converts a timestamp specified in seconds/nanoseconds to a string.
+
+
+ If the value is a normalized duration in the range described in timestamp.proto,
+ is ignored. Otherwise, if the parameter is true,
+ a JSON object with a warning is returned; if it is false, an is thrown.
+
+ Seconds portion of the duration.
+ Nanoseconds portion of the duration.
+ Determines the handling of non-normalized values
+ The represented duration is invalid, and is false.
+
+
+
+ Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+ Timestamp to compare
+ an integer indicating whether this timestamp precedes or follows the other
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Compares two timestamps and returns whether the first is less than (chronologically precedes) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a precedes b
+
+
+
+ Compares two timestamps and returns whether the first is greater than (chronologically follows) the second
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if a follows b
+
+
+
+ Returns whether two timestamps are equivalent
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps refer to the same nanosecond
+
+
+
+ Returns whether two timestamps differ
+
+
+ Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results.
+
+
+
+ true if the two timestamps differ
+
+
+
+ Returns a string representation of this for diagnostic purposes.
+
+
+ Normally the returned value will be a JSON string value (including leading and trailing quotes) but
+ when the value is non-normalized or out of range, a JSON object representation will be returned
+ instead, including a warning. This is to avoid exceptions being thrown when trying to
+ diagnose problems - the regular JSON formatter will still throw an exception for non-normalized
+ values.
+
+ A string representation of this value.
+
+
+ Holder for reflection information generated from google/protobuf/type.proto
+
+
+ File descriptor for google/protobuf/type.proto
+
+
+
+ The syntax in which a protocol buffer element is defined.
+
+
+
+
+ Syntax `proto2`.
+
+
+
+
+ Syntax `proto3`.
+
+
+
+
+ Syntax `editions`.
+
+
+
+
+ A protocol buffer message type.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The fully qualified message name.
+
+
+
+ Field number for the "fields" field.
+
+
+
+ The list of fields.
+
+
+
+ Field number for the "oneofs" field.
+
+
+
+ The list of types appearing in `oneof` definitions in this type.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+ Field number for the "edition" field.
+
+
+
+ The source edition string, only valid when syntax is SYNTAX_EDITIONS.
+
+
+
+
+ A single field of a message type.
+
+
+
+ Field number for the "kind" field.
+
+
+
+ The field type.
+
+
+
+ Field number for the "cardinality" field.
+
+
+
+ The field cardinality.
+
+
+
+ Field number for the "number" field.
+
+
+
+ The field number.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The field name.
+
+
+
+ Field number for the "type_url" field.
+
+
+
+ The field type URL, without the scheme, for message or enumeration
+ types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+
+
+
+ Field number for the "oneof_index" field.
+
+
+
+ The index of the field type in `Type.oneofs`, for message or enumeration
+ types. The first type has index 1; zero means the type is not in the list.
+
+
+
+ Field number for the "packed" field.
+
+
+
+ Whether to use alternative packed wire representation.
+
+
+
+ Field number for the "options" field.
+
+
+
+ The protocol buffer options.
+
+
+
+ Field number for the "json_name" field.
+
+
+
+ The field JSON name.
+
+
+
+ Field number for the "default_value" field.
+
+
+
+ The string value of the default value of this field. Proto2 syntax only.
+
+
+
+ Container for nested types declared in the Field message type.
+
+
+
+ Basic field types.
+
+
+
+
+ Field type unknown.
+
+
+
+
+ Field type double.
+
+
+
+
+ Field type float.
+
+
+
+
+ Field type int64.
+
+
+
+
+ Field type uint64.
+
+
+
+
+ Field type int32.
+
+
+
+
+ Field type fixed64.
+
+
+
+
+ Field type fixed32.
+
+
+
+
+ Field type bool.
+
+
+
+
+ Field type string.
+
+
+
+
+ Field type group. Proto2 syntax only, and deprecated.
+
+
+
+
+ Field type message.
+
+
+
+
+ Field type bytes.
+
+
+
+
+ Field type uint32.
+
+
+
+
+ Field type enum.
+
+
+
+
+ Field type sfixed32.
+
+
+
+
+ Field type sfixed64.
+
+
+
+
+ Field type sint32.
+
+
+
+
+ Field type sint64.
+
+
+
+
+ Whether a field is optional, required, or repeated.
+
+
+
+
+ For fields with unknown cardinality.
+
+
+
+
+ For optional fields.
+
+
+
+
+ For required fields. Proto2 syntax only.
+
+
+
+
+ For repeated fields.
+
+
+
+
+ Enum type definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum type name.
+
+
+
+ Field number for the "enumvalue" field.
+
+
+
+ Enum value definitions.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+ Field number for the "source_context" field.
+
+
+
+ The source context.
+
+
+
+ Field number for the "syntax" field.
+
+
+
+ The source syntax.
+
+
+
+ Field number for the "edition" field.
+
+
+
+ The source edition string, only valid when syntax is SYNTAX_EDITIONS.
+
+
+
+
+ Enum value definition.
+
+
+
+ Field number for the "name" field.
+
+
+
+ Enum value name.
+
+
+
+ Field number for the "number" field.
+
+
+
+ Enum value number.
+
+
+
+ Field number for the "options" field.
+
+
+
+ Protocol buffer options.
+
+
+
+
+ A protocol buffer option, which can be attached to a message, field,
+ enumeration, etc.
+
+
+
+ Field number for the "name" field.
+
+
+
+ The option's name. For protobuf built-in options (options defined in
+ descriptor.proto), this is the short name. For example, `"map_entry"`.
+ For custom options, it should be the fully-qualified name. For example,
+ `"google.api.http"`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The option's value packed in an Any message. If the value is a primitive,
+ the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ should be used. If the value is an enum, it should be stored as an int32
+ value using the google.protobuf.Int32Value type.
+
+
+
+ Holder for reflection information generated from google/protobuf/wrappers.proto
+
+
+ File descriptor for google/protobuf/wrappers.proto
+
+
+
+ Field number for the single "value" field in all wrapper types.
+
+
+
+
+ Wrapper message for `double`.
+
+ The JSON representation for `DoubleValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The double value.
+
+
+
+
+ Wrapper message for `float`.
+
+ The JSON representation for `FloatValue` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The float value.
+
+
+
+
+ Wrapper message for `int64`.
+
+ The JSON representation for `Int64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int64 value.
+
+
+
+
+ Wrapper message for `uint64`.
+
+ The JSON representation for `UInt64Value` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint64 value.
+
+
+
+
+ Wrapper message for `int32`.
+
+ The JSON representation for `Int32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The int32 value.
+
+
+
+
+ Wrapper message for `uint32`.
+
+ The JSON representation for `UInt32Value` is JSON number.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The uint32 value.
+
+
+
+
+ Wrapper message for `bool`.
+
+ The JSON representation for `BoolValue` is JSON `true` and `false`.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bool value.
+
+
+
+
+ Wrapper message for `string`.
+
+ The JSON representation for `StringValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The string value.
+
+
+
+
+ Wrapper message for `bytes`.
+
+ The JSON representation for `BytesValue` is JSON string.
+
+
+
+ Field number for the "value" field.
+
+
+
+ The bytes value.
+
+
+
+
+ This class is used internally by the Protocol Buffer Library and generated
+ message implementations. It is public only for the sake of those generated
+ messages. Others should not use this class directly.
+
+ This class contains constants and helper functions useful for dealing with
+ the Protocol Buffer wire format.
+
+
+
+
+
+ Wire types within protobuf encoding.
+
+
+
+
+ Variable-length integer.
+
+
+
+
+ A fixed-length 64-bit value.
+
+
+
+
+ A length-delimited value, i.e. a length followed by that many bytes of data.
+
+
+
+
+ A "start group" value
+
+
+
+
+ An "end group" value
+
+
+
+
+ A fixed-length 32-bit value.
+
+
+
+
+ Given a tag value, determines the wire type (lower 3 bits).
+
+
+
+
+ Given a tag value, determines the field number (the upper 29 bits).
+
+
+
+
+ Makes a tag value given a field number and wire type.
+
+
+
+
+ Abstraction for writing to a steam / IBufferWriter
+
+
+
+
+ Initialize an instance with a coded output stream.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer writer.
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Initialize an instance with a buffer represented by a single span (i.e. buffer cannot be refreshed)
+ This approach is faster than using a constructor because the instance to initialize is passed by reference
+ and we can write directly into it without copying.
+
+
+
+
+ Verifies that SpaceLeft returns zero.
+
+
+
+
+ If writing to a flat array, returns the space left in the array. Otherwise,
+ throws an InvalidOperationException.
+
+
+
+
+ An opaque struct that represents the current serialization state and is passed along
+ as the serialization proceeds.
+ All the public methods are intended to be invoked only by the generated code,
+ users should never invoke them directly.
+
+
+
+
+ Creates a WriteContext instance from CodedOutputStream.
+ WARNING: internally this copies the CodedOutputStream's state, so after done with the WriteContext,
+ the CodedOutputStream's state needs to be updated.
+
+
+
+
+ Writes a double field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a float field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a uint64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes an int32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed64 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a fixed32 field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a bool field value, without a tag.
+
+ The value to write
+
+
+
+ Writes a string field value, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a group, without a tag, to the stream.
+
+ The value to write
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+ The value to write
+
+
+
+ Writes a uint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an enum value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sfixed32 value, without a tag.
+
+ The value to write.
+
+
+
+ Writes an sfixed64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint32 value, without a tag.
+
+ The value to write
+
+
+
+ Writes an sint64 value, without a tag.
+
+ The value to write
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+ Length value, in bytes.
+
+
+
+ Encodes and writes a tag.
+
+ The number of the field to write the tag for
+ The wire format type of the tag to write
+
+
+
+ Writes an already-encoded tag.
+
+ The encoded tag
+
+
+
+ Writes the given single-byte tag.
+
+ The encoded tag
+
+
+
+ Writes the given two-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+
+
+
+ Writes the given three-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+
+
+
+ Writes the given four-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+
+
+
+ Writes the given five-byte tag.
+
+ The first byte of the encoded tag
+ The second byte of the encoded tag
+ The third byte of the encoded tag
+ The fourth byte of the encoded tag
+ The fifth byte of the encoded tag
+
+
+
+ Primitives for encoding protobuf wire format.
+
+
+
+
+ Writes a double field value, without a tag, to the stream.
+
+
+
+
+ Writes a float field value, without a tag, to the stream.
+
+
+
+
+ Writes a uint64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int64 field value, without a tag, to the stream.
+
+
+
+
+ Writes an int32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed64 field value, without a tag, to the stream.
+
+
+
+
+ Writes a fixed32 field value, without a tag, to the stream.
+
+
+
+
+ Writes a bool field value, without a tag, to the stream.
+
+
+
+
+ Writes a string field value, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Given a QWORD which represents a buffer of 4 ASCII chars in machine-endian order,
+ narrows each WORD to a BYTE, then writes the 4-byte result to the output buffer
+ also in machine-endian order.
+
+
+
+
+ Write a byte string, without a tag, to the stream.
+ The data is length-prefixed.
+
+
+
+
+ Writes a uint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an enum value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sfixed64 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint32 value, without a tag, to the stream.
+
+
+
+
+ Writes an sint64 value, without a tag, to the stream.
+
+
+
+
+ Writes a length (in bytes) for length-delimited data.
+
+
+ This method simply writes a rawint, but exists for clarity in calling code.
+
+
+
+
+ Writes a 32 bit value as a varint. The fast route is taken when
+ there's enough buffer space left to whizz through without checking
+ for each byte; otherwise, we resort to calling WriteRawByte each time.
+
+
+
+
+ Writes out an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Writes out part of an array of bytes.
+
+
+
+
+ Encodes and writes a tag.
+
+
+
+
+ Writes an already-encoded tag.
+
+
+
+
+ Writes the given single-byte tag directly to the stream.
+
+
+
+
+ Writes the given two-byte tag directly to the stream.
+
+
+
+
+ Writes the given three-byte tag directly to the stream.
+
+
+
+
+ Writes the given four-byte tag directly to the stream.
+
+
+
+
+ Writes the given five-byte tag directly to the stream.
+
+
+
+
+ Encode a 32-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Encode a 64-bit value with ZigZag encoding.
+
+
+ ZigZag encodes signed integers into values that can be efficiently
+ encoded with varint. (Otherwise, negative values must be
+ sign-extended to 64 bits to be varint encoded, thus always taking
+ 10 bytes on the wire.)
+
+
+
+
+ Writing messages / groups.
+
+
+
+
+ Writes a message, without a tag.
+ The data is length-prefixed.
+
+
+
+
+ Writes a group, without a tag.
+
+
+
+
+ Writes a message, without a tag.
+ Message will be written without a length prefix.
+
+
+
+
+ Indicates that certain members on a specified are accessed dynamically,
+ for example through .
+
+
+ This allows tools to understand which members are being accessed during the execution
+ of a program.
+
+ This attribute is valid on members whose type is or .
+
+ When this attribute is applied to a location of type , the assumption is
+ that the string represents a fully qualified type name.
+
+ When this attribute is applied to a class, interface, or struct, the members specified
+ can be accessed dynamically on instances returned from calling
+ on instances of that class, interface, or struct.
+
+ If the attribute is applied to a method it's treated as a special case and it implies
+ the attribute should be applied to the "this" parameter of the method. As such the attribute
+ should only be used on instance methods of types assignable to System.Type (or string, but no methods
+ will use it there).
+
+
+
+
+ Initializes a new instance of the class
+ with the specified member types.
+
+ The types of members dynamically accessed.
+
+
+
+ Gets the which specifies the type
+ of members dynamically accessed.
+
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+
+ Specifies no members.
+
+
+
+
+ Specifies the default, parameterless public constructor.
+
+
+
+
+ Specifies all public constructors.
+
+
+
+
+ Specifies all non-public constructors.
+
+
+
+
+ Specifies all public methods.
+
+
+
+
+ Specifies all non-public methods.
+
+
+
+
+ Specifies all public fields.
+
+
+
+
+ Specifies all non-public fields.
+
+
+
+
+ Specifies all public nested types.
+
+
+
+
+ Specifies all non-public nested types.
+
+
+
+
+ Specifies all public properties.
+
+
+
+
+ Specifies all non-public properties.
+
+
+
+
+ Specifies all public events.
+
+
+
+
+ Specifies all non-public events.
+
+
+
+
+ Specifies all interfaces implemented by the type.
+
+
+
+
+ Specifies all members.
+
+
+
+
+ Indicates that the specified method requires dynamic access to code that is not referenced
+ statically, for example through .
+
+
+ This allows tools to understand which methods are unsafe to call when removing unreferenced
+ code from an application.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified message.
+
+
+ A message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets a message that contains information about the usage of unreferenced code.
+
+
+
+
+ Gets or sets an optional URL that contains more information about the method,
+ why it requires unreferenced code, and what options a consumer has to deal with it.
+
+
+
+
+ Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
+ single code artifact.
+
+
+ is different than
+ in that it doesn't have a
+ . So it is always preserved in the compiled assembly.
+
+
+
+
+ Initializes a new instance of the
+ class, specifying the category of the tool and the identifier for an analysis rule.
+
+ The category for the attribute.
+ The identifier of the analysis rule the attribute applies to.
+
+
+
+ Gets the category identifying the classification of the attribute.
+
+
+ The property describes the tool or tool analysis category
+ for which a message suppression attribute applies.
+
+
+
+
+ Gets the identifier of the analysis tool rule to be suppressed.
+
+
+ Concatenated together, the and
+ properties form a unique check identifier.
+
+
+
+
+ Gets or sets the scope of the code that is relevant for the attribute.
+
+
+ The Scope property is an optional argument that specifies the metadata scope for which
+ the attribute is relevant.
+
+
+
+
+ Gets or sets a fully qualified path that represents the target of the attribute.
+
+
+ The property is an optional argument identifying the analysis target
+ of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
+ Because it is fully qualified, it can be long, particularly for targets such as parameters.
+ The analysis tool user interface should be capable of automatically formatting the parameter.
+
+
+
+
+ Gets or sets an optional argument expanding on exclusion criteria.
+
+
+ The property is an optional argument that specifies additional
+ exclusion where the literal metadata target is not sufficiently precise. For example,
+ the cannot be applied within a method,
+ and it may be desirable to suppress a violation against a statement in the method that will
+ give a rule violation, but not against all statements in the method.
+
+
+
+
+ Gets or sets the justification for suppressing the code analysis message.
+
+
+
+
diff --git a/bin/Debug/K4os.Compression.LZ4.Streams.dll b/bin/Debug/K4os.Compression.LZ4.Streams.dll
new file mode 100644
index 0000000..a628697
Binary files /dev/null and b/bin/Debug/K4os.Compression.LZ4.Streams.dll differ
diff --git a/bin/Debug/K4os.Compression.LZ4.Streams.xml b/bin/Debug/K4os.Compression.LZ4.Streams.xml
new file mode 100644
index 0000000..ac560d2
--- /dev/null
+++ b/bin/Debug/K4os.Compression.LZ4.Streams.xml
@@ -0,0 +1,2072 @@
+
+
+
+ K4os.Compression.LZ4.Streams
+
+
+
+
+ Generic interface for frame/stream decoder for LZ4.
+
+
+
+
+ Opens frame for reading. Please note, this method is not needed as it will be
+ called automatically, but it can be used to quickly check if frame is valid.
+
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Cancellation token.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Gets the length of the frame content if it was provided when content was encoded.
+ Frame length, or null
+
+
+ Async version of .
+ Cancellation token.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ A byte, or -1 if end of stream.
+
+
+ Reads one byte from LZ4 stream.
+ Cancellation token.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Cancellation token.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+ Returns how many bytes in has been read from stream so far.
+ Number of bytes read in total.
+
+
+ Closes the stream, releases allocated memory.
+
+
+
+ Generic interface for LZ4 frame/stream writer.
+
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Cancellation token.
+ true if frame has been opened,
+ or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Byte to be written.
+
+
+ Writes one byte to stream.
+ Cancellation token.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Byte buffer.
+
+
+ Writes multiple bytes to stream.
+ Cancellation token.
+ Byte buffer.
+
+
+ Gets number of bytes written.
+ Total number of bytes (before compression).
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Cancellation token.
+
+
+
+ Stream reader interface. It is an adapter for all stream-like structures.
+
+ Stream state.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Number of bytes actually read.
+
+
+
+ Reads at-most bytes from given .
+
+ Stream state.
+ Buffer to read bytes into.
+ Offset in buffer.
+ Maximum number of bytes to read.
+ Cancellation token.
+ containing new stream state,
+ and number of bytes actually read..
+
+
+
+ Generic stream writer interface.
+ When implementing custom compression target or decompression source you need to implement
+ this adapter. Please note, that this adapter can be implemented as class or
+ readonly struct. If implemented as struct it cannot have mutable state
+ as it will be lost. Immutable state is allowed but strongly discouraged.
+ Use instead.
+
+ Mutable part of stream state.
+
+
+ Indicates that writer can and should flush after frame.
+ Please note, flushing may have negative performance effect but may also lead to
+ better interactivity between writer and reader, as reader will get new block
+ available as soon as possible.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+
+
+ Writes byte buffer to underlying stream.
+ Stream state.
+ Byte buffer.
+ Offset within buffer.
+ Number of bytes.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+
+
+ Flushes buffers to underlying storage. Called only when
+ Stream state.
+ Cancellation token.
+ New stream state (mutable part).
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+
+ Result of async read operation. Returns new state of the stream and number of bytes read.
+
+ New stream state.
+ Number of bytes read.
+ Stream state.
+
+
+ New stream state.
+
+
+ Number of bytes read.
+
+
+
+ Helper methods to create
+
+
+
+
+ Creates read result, composed of new stream state and bytes read.
+
+ Stream state.
+ Bytes read.
+ Stream state.
+ Read result.
+
+
+
+ Stream adapter for any class implementing .
+ It takes actual class, not interface, so it can use struct implementations
+ of for performance reasons.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+ Type implementing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ Copies bytes from span to buffer. Performs all length checks.
+
+ Head offset of .
+ Target buffer.
+ Offset in target buffer.
+ Number of bytes to copy.
+ Number of bytes actually copied.
+
+
+
+
+
+
+
+
+
+ Stream adapter for and .
+ This class implements for
+ but should be used only in some niche situations, as it is not easy to find out
+ how many bytes has been written, use
+ instead.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Memory buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Naive and simplistic implementation of adapter for .
+ It might be improved in many ways I believe, but it gives some starting point.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+
+
+
+
+ Creates new instance of .
+
+ Memory span.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Empty record equivalent to Unit/Void.
+ Works as placeholder type used when working with generic interfaces which do require type,
+ but implementation needs none.
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe reader.
+
+
+
+
+
+
+
+
+
+ LZ4 stream adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream reader/writer adapter for .
+ Please note, whole K4os.Compression.LZ4.Streams.Adapters namespace should be considered
+ pubternal - exposed as public but still very likely to change.
+
+
+
+
+ Creates new stream adapter for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unsafe version of . It is unsafe as it stores raw memory pointer
+ so memory it points to must be pinned. It allows reading and writing straight to
+ unmanaged memory but must be used carefully.
+ NOTE: If you don't understand what has been said above - don't use it. Misuse of this
+ struct may lead to unpredictable errors and memory corruption.
+
+
+
+ Pointer to the first byte of the span.
+
+
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from given pointer and length.
+
+ Pointer to the first byte of the span.
+ Length of the span in bytes.
+
+
+
+ Creates new instance of from raw pointer.
+
+ Pointer block of bytes.
+ Length of the block.
+ New .
+
+
+
+ Converted to .
+
+
+
+
+ Utility methods for LZ4 streams.
+
+
+
+
+ Creates using .
+
+ LZ4 descriptor.
+ Compression level.
+ Additional memory for encoder.
+ Encoder.
+
+
+
+ Creates using and .
+
+ LZ4 descriptor.
+ Encoder settings.
+ Encoder.
+
+
+
+ Create using .
+
+ Descriptor.
+ Extra memory (may improves speed, but creates memory pressure).
+ .
+
+
+
+ Create using and .
+
+ Descriptor.
+ Settings.
+ .
+
+
+
+ Creates from .
+
+ Settings.
+ LZ4 Descriptor.
+
+
+ Async version of .
+ Decoder.
+ true if frame was just opened,
+ false if it was opened before.
+
+
+ Async version of .
+ Decoder.
+ Frame length, or null
+
+
+ Reads one byte from LZ4 stream.
+ Decoder.
+ A byte, or -1 if end of stream.
+
+
+ Reads many bytes from LZ4 stream. Return number of bytes actually read.
+ Decoder.
+ Byte buffer to read into.
+ if true then returns as soon as some bytes are read,
+ if false then waits for all bytes being read or end of stream.
+ Number of bytes actually read.
+ 0 means that end of stream has been reached.
+
+
+
+ Opens a stream by reading frame header. Please note, this methods can be called explicitly
+ but does not need to be called, it will be called automatically if needed.
+
+ Encoder.
+ true if frame has been opened, or false if it was opened before.
+
+
+ Writes one byte to stream.
+ Encoder.
+ Byte to be written.
+
+
+ Writes multiple bytes to stream.
+ Encoder.
+ Byte buffer.
+
+
+
+ Closes frame. Frame needs to be closed for stream to by valid, although
+ this methods does not need to be called explicitly if stream is properly dispose.
+
+ Encoder.
+
+
+
+ Copies all bytes from into .
+
+ Frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ LZ4 frame reader.
+ Buffer writer.
+ Chunk size.
+ Type of buffer writer.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Copies all bytes from into .
+
+ Frame writer.
+ Sequence of bytes.
+
+
+
+ Wraps as .
+
+ LZ4 frame reader.
+ Indicates that frame reader should be left open even if stream is
+ disposed.
+ Indicates that data should be provided to reader as quick as
+ possible, instead of waiting for whole block to be read.
+ stream wrapper.
+
+
+
+ Wraps as .
+
+ LZ4 frame writer.
+ Indicates that frame writer should be left open even if stream is
+ disposed.
+ stream wrapper.
+
+
+
+ LZ4 Decompression stream handling.
+
+
+
+ Creates new instance .
+ Inner stream.
+ Inner stream initial state.
+ Decoder factory.
+
+
+
+ Exposes internal stream state. Existence of this property is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the decoder. Consecutive attempts to read will fail.
+
+ true is stream is being disposed by user,
+ true is by garbage collector.
+
+
+
+ Releases unmanaged resources.
+
+
+
+
+ Releases unmanaged resources.
+
+ Task indicating operation is finished.
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Bytes span.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Memory buffer.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Byte sequence.
+ LZ4 decoder factory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to read from.
+ Leave stream open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+ Disposes the reader.
+
+ true if user is disposing it; false if it has been triggered by garbage collector
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe to be read.
+ Leave pipe open after reader is disposed.
+ LZ4 decoder factory.
+
+
+
+
+
+
+
+
+
+ wrapper for .
+
+
+
+
+ Creates new instance of .
+
+ LZ4 frame reader.
+ Indicates to not dispose after disposing this stream.
+ Use interactive mode; return bytes as soon as they available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+ LZ4 stream encoder.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ Inner stream initial state.
+ LZ4 Encoder factory.
+ LZ4 settings.
+
+
+
+ Exposes internal stream state. Existence of this field is a hack,
+ and it really shouldn't be here but it is needed for relatively low
+ level operations (like writing directly to unmanaged memory).
+ Please, do not use it directly, if don't know what you are doing.
+
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Allocated buffer.
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Disposes the stream and releases all resources.
+
+ true if called by user; false when called by garbage collector.
+
+
+
+
+
+
+ Releases all unmanaged resources.
+
+
+
+
+ Releases all unmanaged resources.
+
+ Task indicating completion of the operation.
+
+
+
+ implementation for
+
+ Type of buffer writer.
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Current state of buffer writer.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Buffer writer to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+ implementation for
+
+
+
+
+ Creates new instance of .
+
+ Memory block where data will be written.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+ is a wrapper around that
+ can be stored in a field. Please note: it makes it unsafe and address needs to be pinned,
+ one way or another.
+
+
+
+
+ Creates new instance of .
+
+ Span to write to.
+ Encoder factory.
+ Frame descriptor.
+
+
+ Number of bytes written to the memory.
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Stream to write to.
+ Leave stream open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ implementation for .
+
+
+
+
+ Creates new instance of .
+
+ Pipe writer to write to.
+ Leave pipe open after disposing this writer.
+ Encoder factory.
+ Frame descriptor.
+
+
+
+
+
+
+
+
+
+ Adapter to make look like .
+
+
+
+ Creates new instance of .
+ Underlying frame encoder.
+ Indicates should be left
+ open after disposing this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 Frame descriptor.
+
+
+
+ Content length. Not always known.
+
+
+ Indicates if content checksum is provided.
+
+
+ Indicates if blocks are chained (dependent) or not (independent).
+
+
+ Indicates if block checksums are provided.
+
+
+ Dictionary id. May be null.
+
+
+ Block size.
+
+
+
+ Completely empty class to do nothing.
+ It is used internally instead of CancellationToken to make sure
+ blocking operations are easily distinguishable from async ones
+ (you cannot call blocking operation by accident as they *require* EmptyToken).
+
+
+
+
+ Asserts that given argument is not null. As it is designed to be used only in
+ situations when we 100% ure that value is not null, it actually does anything
+ only in DEBUG builds and has no effect in RELEASE. Mostly used to ensure
+ static analysis tools that we know what we are doing.
+
+ Argument value.
+ Name of argument.
+ Type of argument.
+
+
+
+ Base class for all compatible adapters.
+
+ Type of resource stream adapter if for.
+
+
+
+ Creates new instance of .
+
+ Wrapped resource.
+ Do not dispose inner resource after stream is disposed.
+
+
+ Wrapped resource.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 stream essentials when wrapping another stream.
+ You most likely should not use it but it needs to be public as it is inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Decoder settings.
+
+
+
+ Extra memory for decompression.
+
+
+
+ LZ4 frame decoder stream.
+
+
+
+
+ Creates LZ4 decoder stream.
+
+ Inner stream, the stream compressed data is coming from..
+ Decoder factory.
+ Leave inner stream open after this stream is disposed.
+ Interactive mode, provide bytes as soon as they are available; don't wait for full block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of stream. Please note, this will only work if original LZ4 stream has
+ ContentLength field set in descriptor. Otherwise returned value will be -1.
+ It will also require synchronous stream access, so it wont work if AllowSynchronousIO
+ is false.
+
+
+
+
+ Position within the stream. Position can be read, but cannot be set as LZ4 stream does
+ not have Seek capability.
+
+
+
+
+
+
+
+ LZ4 frame descriptor.
+
+
+
+ Content length (if available).
+
+
+ Indicates if content checksum if present.
+
+
+ Indicates if blocks are chained.
+
+
+ Indicates if block checksums are present.
+
+
+ Dictionary id (or null).
+
+
+ Block size.
+
+
+ Creates new instance of .
+ Content length.
+ Content checksum flag.
+ Chaining flag.
+ Block checksum flag.
+ Dictionary id.
+ Block size.
+
+
+ Creates new instance of .
+ Descriptor to copy.
+
+
+
+ LZ4 encoder settings.
+
+
+
+
+ Content length. It is not enforced, it can be set to any value, but it will be
+ written to the stream so it can be used while decoding. If you don't know the length
+ just leave default value.
+
+
+
+
+ Indicates if blocks should be chained (dependent) or not (independent). Dependent blocks
+ (with chaining) provide better compression ratio but are a little but slower and take
+ more memory.
+
+
+
+
+ Block size. You can use any block size, but default values for LZ4 are 64k, 256k, 1m,
+ and 4m. 64k is good enough for dependent blocks, but for independent blocks bigger is
+ better.
+
+
+
+ Indicates is content checksum should be included.
+
+
+ Indicates if block checksum should be included.
+
+
+ Dictionary id. Not implemented yet.
+
+
+ Compression level.
+
+
+ Extra memory (for the process, more is usually better).
+
+
+
+ LZ4 frame encoder stream.
+
+
+
+ Creates new instance of .
+ Inner stream.
+ LZ4 Descriptor.
+ Function which will take descriptor and return
+ appropriate encoder.
+ Indicates if stream should be left
+ open after disposing.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Length of the stream and number of bytes written so far.
+
+
+ Read-only position in the stream. Trying to set it will throw
+ .
+
+
+
+ LZ4 factory methods to encode/decode anything which can be represented as a stream-like object.
+ Please note, to avoid all the complexity of dealing with streams, it uses
+ and as stream abstractions.
+
+
+
+ Creates decompression stream on top of inner stream.
+ Span to read from.
+ Buffer to write to.
+ Extra memory used for decompression.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Stream to be decoded.
+ Extra memory used for decompression.
+ Indicates if stream should stay open after disposing decoder.
+ Decompression stream.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Writes bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression settings.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source bytes.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Compresses source bytes into target buffer. Returns number of bytes actually written.
+
+ Source of bytes, a function which write to LZ4 encoder.
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Number of bytes actually written.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+ Please note, target buffer needs to be pinned for the whole time encoder is used.
+ This is definitely very unsafe method, and if you don't understand what it does,
+ don't use it.
+
+ Pointer to target buffer.
+ Length of target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ Byte of buffer writer implementing .
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Encoder settings.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target buffer.
+
+ Target buffer.
+ Compression level.
+ Extra memory for encoder.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Encoder settings.
+ Leave target stream open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target stream.
+
+ Target stream.
+ Compression level.
+ Extra memory for encoder.
+ Leave target stream open after encoder is disposed.
+
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Encoder settings.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Create LZ4 encoder that writes compressed data into target pipe.
+
+ Target pipe.
+ Compression level.
+ Extra memory for encoder.
+ Leave target pipe open after encoder is disposed.
+ LZ4 frame writer.
+
+
+
+ Utility class with factory methods to create LZ4 compression and decompression streams.
+
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression settings.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Created compression stream on top of inner stream.
+ Inner stream.
+ Compression level.
+ Extra memory used for compression.
+ Leave inner stream open after disposing.
+ Compression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Decompression settings.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+ Creates decompression stream on top of inner stream.
+ Inner stream.
+ Extra memory used for decompression.
+ Leave inner stream open after disposing.
+ If true reading from stream will be "interactive" allowing
+ to read bytes as soon as possible, even if more data is expected.
+ Decompression stream.
+
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+
+
+ Specifies that null is disallowed as an input even if the corresponding type allows it.
+
+
+
+
+ Applied to a method that will never return under any circumstance.
+
+
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+
+
+ Initializes the attribute with the specified parameter value.
+
+
+ The condition parameter value. Code after the method will be considered unreachable
+ by diagnostics if the argument to the associated parameter matches this value.
+
+
+
+
+ Gets the condition parameter value.
+
+
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+
+
+ Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it.
+
+
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter may be null.
+
+
+
+ Gets the return value condition.
+
+
+
+
+ Specifies that the method or property will ensure that the listed field and property members have not-null values.
+
+
+
+
+ Initializes the attribute with a field or property member.
+
+ The field or property member that is promised to be not-null.
+
+
+
+ Initializes the attribute with the list of field and property members.
+
+ The list of field and property members that are promised to be not-null.
+
+
+
+ Gets field or property member names.
+
+
+
+
+ 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.
+
+
+
+
+ Initializes the attribute with the specified return value condition and a field or property member.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+ The field or property member that is promised to be not-null.
+
+
+
+ Initializes the attribute with the specified return value condition and list of field and property members.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+ The list of field and property members that are promised to be not-null.
+
+
+
+ Gets the return value condition.
+
+
+
+
+ Gets field or property member names.
+
+
+
+
+ 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.
+
+
+
+
+ Specifies that the output will be non-null if the named parameter is non-null.
+
+
+
+
+ Initializes the attribute with the associated parameter name.
+
+ The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
+
+
+
+ Gets the associated parameter name.
+
+
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+ Gets the return value condition.
+
+
+
+ Specifies that this constructor sets all required members for the current type,
+ and callers do not need to set any required members themselves.
+
+
+
+
+ Specifies the syntax used in a string.
+
+
+
+
+ Initializes the with the identifier of the syntax used.
+
+ The syntax identifier.
+
+
+ Initializes the with the identifier of the syntax used.
+ The syntax identifier.
+ Optional arguments associated with the specific syntax employed.
+
+
+ Gets the identifier of the syntax used.
+
+
+ Optional arguments associated with the specific syntax employed.
+
+
+ The syntax identifier for strings containing composite formats for string formatting.
+
+
+ The syntax identifier for strings containing date format specifiers.
+
+
+ The syntax identifier for strings containing date and time format specifiers.
+
+
+ The syntax identifier for strings containing format specifiers.
+
+
+ The syntax identifier for strings containing format specifiers.
+
+
+ The syntax identifier for strings containing JavaScript Object Notation (JSON).
+
+
+ The syntax identifier for strings containing numeric format specifiers.
+
+
+ The syntax identifier for strings containing regular expressions.
+
+
+ The syntax identifier for strings containing time format specifiers.
+
+
+ The syntax identifier for strings containing format specifiers.
+
+
+ The syntax identifier for strings containing URIs.
+
+
+ The syntax identifier for strings containing XML.
+
+
+
+ Used to indicate a byref escapes and is not scoped.
+
+
+
+ There are several cases where the C# compiler treats a as implicitly
+ - where the compiler does not allow the to escape the method.
+
+
+ For example:
+
+ - for instance methods.
+ - parameters that refer to types.
+ - parameters.
+
+
+
+ This attribute is used in those instances where the should be allowed to escape.
+
+
+ Applying this attribute, in any form, has impact on consumers of the applicable API. It is necessary for
+ API authors to understand the lifetime implications of applying this attribute and how it may impact their users.
+
+
+
+
+ Represent a type can be used to index a collection either from the start or the end.
+
+ Index is used by the C# compiler to support the new index syntax
+
+ int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ;
+ int lastElement = someArray[^1]; // lastElement = 5
+
+
+
+
+ Construct an Index using a value and indicating if the index is from the start or from the end.
+ The index value. it has to be zero or positive number.
+ Indicating if the index is from the start or from the end.
+
+ If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
+
+
+
+ Create an Index pointing at first element.
+
+
+ Create an Index pointing at beyond last element.
+
+
+ Create an Index from the start at the position indicated by the value.
+ The index value from the start.
+
+
+ Create an Index from the end at the position indicated by the value.
+ The index value from the end.
+
+
+ Returns the index value.
+
+
+ Indicates whether the index is from the start or the end.
+
+
+ Calculate the offset from the start using the giving collection length.
+ The length of the collection that the Index will be used with. length has to be a positive value
+
+ For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
+ we don't validate either the returned offset is greater than the input length.
+ It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
+ then used to index a collection will get out of range exception which will be same affect as the validation.
+
+
+
+ Indicates whether the current Index object is equal to another object of the same type.
+ An object to compare with this object
+
+
+ Indicates whether the current Index object is equal to another Index object.
+ An object to compare with this object
+
+
+ Returns the hash code for this instance.
+
+
+ Converts integer number to an Index.
+
+
+ Converts the value of the current Index object to its equivalent string representation.
+
+
+
+ An attribute that allows parameters to receive the expression of other parameters.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The condition parameter value.
+
+
+
+ Gets the parameter name the expression is retrieved from.
+
+
+
+
+ Indicates that compiler support for a particular feature is required for the location where this attribute is applied.
+
+
+
+
+ Creates a new instance of the type.
+
+ The name of the feature to indicate.
+
+
+
+ The name of the compiler feature.
+
+
+
+
+ If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand .
+
+
+
+
+ The used for the ref structs C# feature.
+
+
+
+
+ The used for the required members C# feature.
+
+
+
+
+ Indicates which arguments to a method involving an interpolated string handler should be passed to that handler.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the argument that should be passed to the handler.
+ may be used as the name of the receiver in an instance method.
+
+
+
+ Initializes a new instance of the class.
+
+ The names of the arguments that should be passed to the handler.
+ may be used as the name of the receiver in an instance method.
+
+
+
+ Gets the names of the arguments that should be passed to the handler.
+
+ may be used as the name of the receiver in an instance method.
+
+
+
+ Indicates the attributed type is to be used as an interpolated string handler.
+
+
+
+
+ Reserved to be used by the compiler for tracking metadata.
+ This class should not be used by developers in source code.
+
+
+
+
+ Used to indicate to the compiler that a method should be called
+ in its containing module's initializer.
+
+
+ When one or more valid methods
+ with this attribute are found in a compilation, the compiler will
+ emit a module initializer which calls each of the attributed methods.
+
+ Certain requirements are imposed on any method targeted with this attribute:
+ - The method must be `static`.
+ - The method must be an ordinary member method, as opposed to a property accessor, constructor, local function, etc.
+ - The method must be parameterless.
+ - The method must return `void`.
+ - The method must not be generic or be contained in a generic type.
+ - The method's effective accessibility must be `internal` or `public`.
+
+ The specification for module initializers in the .NET runtime can be found here:
+ https://github.com/dotnet/runtime/blob/main/docs/design/specs/Ecma-335-Augments.md#module-initializer
+
+
+
+
+ Specifies that a type has required members or that a member is required.
+
+
+
+
+ Used to indicate to the compiler that the .locals init flag should not be set in method headers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified message.
+
+ An optional message associated with this attribute instance.
+
+
+
+ Returns the optional message associated with this attribute instance.
+
+
+
+
+ Returns the optional URL associated with this attribute instance.
+
+
+
+
diff --git a/bin/Debug/K4os.Compression.LZ4.dll b/bin/Debug/K4os.Compression.LZ4.dll
new file mode 100644
index 0000000..9a841c8
Binary files /dev/null and b/bin/Debug/K4os.Compression.LZ4.dll differ
diff --git a/bin/Debug/K4os.Compression.LZ4.xml b/bin/Debug/K4os.Compression.LZ4.xml
new file mode 100644
index 0000000..3a1501a
--- /dev/null
+++ b/bin/Debug/K4os.Compression.LZ4.xml
@@ -0,0 +1,1673 @@
+
+
+
+ K4os.Compression.LZ4
+
+
+
+
+ Action performed by encoder using FlushAndEncode method.
+
+
+
+ Nothing has happened, most likely loading 0 bytes.
+
+
+ Some bytes has been loaded into encoder.
+
+
+ Compression was not possible so bytes has been copied.
+
+
+ Compression succeeded.
+
+
+
+ Interface of LZ4 decoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Bytes already decoded and available to be read.
+ Always smaller than
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded. These bytes can be read with .
+
+ Points to compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ These bytes can be read with .
+
+ Points to uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Reads previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Buffer to write to.
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+ Number of bytes to read.
+
+
+
+ Peeks at previously decoded bytes. Please note, should be
+ negative number, pointing to bytes before current head.
+
+ Offset in source buffer relatively to current head.
+ Please note, it should be negative value.
+
+
+
+ Interface of LZ4 encoder used by LZ4 streams.
+
+
+
+ Block size.
+
+
+ Number of bytes read for compression.
+ Always smaller than
+
+
+ Adds bytes to internal buffer. Increases
+ Source buffer.
+ Source buffer length.
+ Number of bytes topped up. If this function returns 0 it means that buffer
+ is full ( equals ) and
+ should be called to flush it.
+
+
+
+ Encodes bytes in internal buffer (see: , ).
+ If is true then if encoded buffer is bigger than
+ source buffer source bytes are copied instead. In such case returned length is negative.
+
+ Target buffer.
+ Target buffer length.
+ Indicates if copying is allowed.
+ Length of encoded buffer. Negative if bytes are just copied.
+
+
+
+ LZ4 decoder used with independent blocks mode. Please note, that it will fail
+ if input data has been compressed with chained blocks
+ ( and )
+
+
+
+ Creates new instance of block decoder.
+ Block size. Must be equal or greater to one used for compression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Independent block encoder. Produces larger files but uses less memory and
+ gives better performance.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+
+
+
+
+
+
+
+
+ LZ4 decoder handling dependent blocks.
+
+
+ Creates new instance of .
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Static class with factory methods to create LZ4 decoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Block size.
+ Number of extra blocks.
+ LZ4 decoder.
+
+
+
+ Static class with factory method to create LZ4 encoders.
+
+
+
+ Creates appropriate decoder for given parameters.
+ Dependent blocks.
+ Compression level.
+ Block size.
+ Number of extra blocks.
+ LZ4 encoder.
+
+
+
+ Base class for LZ4 encoders. Provides basic functionality shared by
+ , ,
+ and encoders. Do not used directly.
+
+
+
+ Creates new instance of encoder.
+ Needs to be true if using dependent blocks.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Encodes single block using appropriate algorithm.
+ Source buffer.
+ Source buffer length.
+ Target buffer.
+ Target buffer length.
+ Number of bytes actually written to target buffer.
+
+
+ Copies current dictionary.
+ Target buffer.
+ Dictionary length.
+ Dictionary length.
+
+
+
+
+
+
+ Functionality of encoders added on top of fixed interface.
+
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer pointer, will be shifted after operation by the number of
+ bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset.
+ Length of buffer.
+ Number of bytes actually loaded.
+
+
+ Tops encoder up with some data.
+ Encoder.
+ Buffer.
+ Buffer offset, will be increased after operation by the number
+ of bytes actually loaded.
+ Length of buffer.
+ true if buffer was topped up, false if no bytes were loaded.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Number of bytes encoder. If bytes were copied than this value is negative.
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer.
+ Offset in target buffer. Will be updated after operation.
+ Length of target buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Encodes all bytes currently stored in encoder into target buffer.
+ Encoder.
+ Target buffer. Will be updated after operation.
+ Length of buffer.
+ if true copying bytes is allowed.
+ Result of this action. Bytes can be Copied (),
+ Encoded () or nothing could have
+ happened ().
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Source buffer length.
+ Target buffer (used to encode into)
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (used to encode into)
+ Offset within target buffer.
+ Target buffer length.
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Tops encoder and encodes content.
+ Encoder.
+ Source buffer (used to top up from).
+ Target buffer (used to encode into)
+ Forces encoding even if encoder is not full.
+ Allows to copy bytes if compression was not possible.
+ Number of bytes loaded (topped up)
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Offset within target buffer.
+ Target buffer length.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Encoded remaining bytes in encoder.
+ Encoder.
+ Target buffer.
+ Allows to copy bytes if compression was not possible.
+ Number if bytes encoded or copied.
+ Value is 0 if no encoding was done.
+ Action performed.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset within target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Drains decoder by reading all bytes which are ready.
+ Decoder.
+ Target buffer.
+ Offset in decoder relatively to decoder's head.
+ Please note, it should be negative value.
+ Number of bytes.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Source buffer length.
+ Target buffer (to drained into).
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Offset within source buffer.
+ Source buffer length.
+ Target buffer (to drained into).
+ Offset within target buffer.
+ Target buffer length.
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+ Decodes data and immediately drains it into target buffer.
+ Decoder.
+ Source buffer (with compressed data, to be decoded).
+ Target buffer (to drained into).
+ Number of bytes actually decoded.
+ true decoder was drained, false otherwise.
+
+
+
+ Inject already decompressed block and caches it in decoder.
+ Used with uncompressed-yet-chained blocks and pre-made dictionaries.
+ See .
+
+ Decoder.
+ Uncompressed block.
+ Offset in uncompressed block.
+ Length of uncompressed block.
+ Number of decoded bytes.
+
+
+
+ Decodes previously compressed block and caches decompressed block in decoder.
+ Returns number of bytes decoded.
+ See .
+
+ Decoder.
+ Compressed block.
+ Offset in compressed block.
+ Length of compressed block.
+ Size of the block. Value 0 indicates default block size.
+ Number of decoded bytes.
+
+
+
+ LZ4 encoder using dependent blocks with fast compression.
+
+
+
+ Creates new instance of
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+
+ LZ4 encoder using dependent blocks with high compression.
+
+
+
+ Creates new instance of
+ Compression level.
+ Block size.
+ Number of extra blocks.
+
+
+
+
+
+
+
+
+
+
+
+ Algorithm selection.
+
+
+ Intel and ARMv7 version of 32 bit algorithm.
+
+
+ Intel version of 64 bit algorithm.
+
+
+ Checks what algorithm should be used (32 vs 64 bit).
+
+
+
+ Existence of this class is an admission of failure.
+ I failed to export internals to test assemblies.
+ Using InternalsVisibleTo work, of course, but with signing (which was requested
+ in https://github.com/MiloszKrajewski/K4os.Compression.LZ4/issues/9) it is
+ absolute PITA. So no, I'm not using InternalsVisibleTo I will just expose this
+ little class with some "redirects" to real internals.
+
+
+
+ Pubternal wrapper for LZ4_stream_t.
+
+
+ Creates new instance of wrapper for LZ4_stream_t.
+
+
+
+
+
+
+ Compresses chunk of data using LZ4_compress_fast_continue.
+
+ Wrapper for LZ4_stream_t
+ Source block address.
+ Target block address.
+ Source block length.
+ Target block length.
+ Acceleration.
+ Number of bytes actually written to target.
+
+
+
+ Naive wrapper around ArrayPool. Makes calls if something should be pooled.
+
+
+
+ Minimum size of the buffer that can be pooled.
+
+
+ Allocate temporary buffer to store decompressed data.
+ Minimum size of the buffer.
+ Clear all data.
+ Allocated buffer.
+
+
+
+ Determines if buffer was pooled or not.
+ The logic is quite simple: if buffer is smaller than 512 bytes are pooled.
+
+ Buffer.
+ true if buffer was pooled; false otherwise
+
+
+ Releases allocated buffer.
+ Previously allocated buffer.
+
+
+ Utility class with memory related functions.
+
+
+ 1 KiB
+
+
+ 2 KiB
+
+
+ 4 KiB
+
+
+ 8 KiB
+
+
+ 16 KiB
+
+
+ 32 KiB
+
+
+ 64 KiB
+
+
+ 128 KiB
+
+
+ 256 KiB
+
+
+ 512 KiB
+
+
+ 1 MiB
+
+
+ 4 MiB
+
+
+ Empty byte array.
+
+
+ Checks if process is ran in 32-bit mode.
+
+
+ Rounds integer value up to nearest multiple of step.
+ A value.
+ A step.
+ Value rounded up.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Fills memory block with predefined .
+
+ The target block address.
+ Value to be used.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+
+ Copies memory block for to .
+ It handle "move" semantic properly handling overlapping blocks properly.
+
+ The target block address.
+ The source block address.
+ Length in bytes.
+
+
+ Allocated block of memory. It is NOT initialized with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Fill block of memory with zeroes.
+ Address.
+ Length.
+ Original pointer.
+
+
+ Fills memory block with repeating pattern of a single byte.
+ Address.
+ A pattern.
+ Length.
+ Original pointer.
+
+
+ Allocates block of memory and fills it with zeroes.
+ Size in bytes.
+ Pointer to allocated block.
+
+
+ Free memory allocated previously with .
+ Pointer to allocated block.
+
+
+ Clones managed array to unmanaged one.
+ Allows quicker yet less safe unchecked access.
+ Input array.
+ Cloned array.
+
+
+ Reads exactly 1 byte from given address.
+ Address.
+ Byte at given address.
+
+
+ Writes exactly 1 byte to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Represents pinned memory.
+ It either points to unmanaged memory or block of memory from shared array pool.
+ When disposed, it handles it appropriately.
+
+
+
+
+ Maximum size of the buffer that can be pooled from shared array pool.
+
+
+
+ Pointer to block of bytes.
+
+
+ Pointer to block of bytes as span.
+
+
+ Pointer to block of bytes.
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory, depending on the size it tries to use shared array pool.
+
+ Pinned memory pointer.
+ Size in bytes.
+ Indicates if block should be zeroed.
+ Allocated .
+
+
+
+
+ Allocates pinned block of memory for one item from shared array pool.
+
+ PinnedMemory pointer.
+ Indicates if block should be zeroed.
+ Type of item.
+
+
+ Fill allocated block of memory with zeros.
+
+
+
+ Releases the memory.
+
+
+
+
+ Skeleton for class with unmanaged resources.
+ Implements but also handles proper release in
+ case was not called.
+
+
+
+ Determines if object was already disposed.
+
+
+ Throws exception is object has been disposed already. Convenience method.
+ Thrown if object is already disposed.
+
+
+ Method releasing unmanaged resources.
+
+
+ Method releasing managed resources.
+
+
+
+ Disposed resources.
+
+ true if dispose was explicitly called,
+ false if called from GC.
+
+
+
+
+
+ Destructor.
+
+
+ Unsafe memory operations.
+
+
+ Reads 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes 4 or 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+ Unsafe memory operations.
+
+
+ Reads exactly 2 bytes from given address.
+ Address.
+ 2 bytes at given address.
+
+
+ Writes exactly 2 bytes to given address.
+ Address.
+ Value.
+
+
+ Reads exactly 4 bytes from given address.
+ Address.
+ 4 bytes at given address.
+
+
+ Writes exactly 4 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 1 byte from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 2 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 4 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads exactly 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes exactly 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 8 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Reads 8 bytes from given address.
+ Address.
+ 8 bytes at given address.
+
+
+ Writes 8 bytes to given address.
+ Address.
+ Value.
+
+
+ Copies exactly 16 bytes from source to target.
+ Target address.
+ Source address.
+
+
+ Copies exactly 18 bytes from source to target.
+ Target address.
+ Source address.
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 8 bytes more than expected.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Copies memory block for to
+ up to (around) .
+ It does not handle overlapping blocks and may copy up to 32 bytes more than expected.
+ This version copies two times 16 bytes (instead of one time 32 bytes)
+ because it must be compatible with offsets >= 16.
+
+ The target block address.
+ The source block address.
+ The limit (in target block).
+
+
+
+ Static class exposing LZ4 block compression methods.
+
+
+
+ Version of LZ4 implementation.
+
+
+
+ Enforces 32-bit compression/decompression algorithm even on 64-bit systems.
+ Please note, this property should not be used on regular basis, it just allows
+ to workaround some problems on platforms which do not support 64-bit the same was
+ as Intel (for example: unaligned read/writes).
+
+
+
+ Maximum size after compression.
+ Length of input buffer.
+ Maximum length after compression.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Length of input buffer.
+ Output buffer.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Output buffer.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compresses data from one buffer into another.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Compression level.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer, stopping at .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length. Decoding stops at this amount.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer, stopping at buffer length.
+ Input buffer.
+ Output buffer. Decoding stops at end of buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Output buffer.
+ Dictionary buffer.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Decompresses data from given buffer.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+ Output buffer offset.
+ Output buffer length.
+ Dictionary buffer.
+ Dictionary buffer offset.
+ Dictionary buffer length.
+ Number of bytes written, or negative value if output buffer is too small.
+
+
+ Compression level.
+
+
+ Fast compression.
+
+
+ High compression, level 3.
+
+
+ High compression, level 4.
+
+
+ High compression, level 5.
+
+
+ High compression, level 6.
+
+
+ High compression, level 7.
+
+
+ High compression, level 8.
+
+
+ High compression, level 9.
+
+
+ Optimal compression, level 10.
+
+
+ Optimal compression, level 11.
+
+
+ Maximum compression, level 12.
+
+
+
+ Pickling support with LZ4 compression.
+
+
+ Pickling support with LZ4 compression.
+
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Length of input data.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Compresses input buffer into self-contained package.
+ Input buffer.
+ Where the compressed data is written.
+ Compression level.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer offset.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Input buffer length.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Output buffer.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ The data to inspect.
+ The size in bytes of the data once unpickled.
+
+
+
+ Returns the uncompressed size of a chunk of compressed data.
+
+ Decoded header.
+ The size in bytes of the data once unpickled.
+
+
+ Decompresses previously pickled buffer (see: .
+ Input buffer.
+ Where the decompressed data is written.
+
+ You obtain the size of the output buffer by calling .
+
+
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+
+
+ Specifies that null is disallowed as an input even if the corresponding type allows it.
+
+
+
+
+ Applied to a method that will never return under any circumstance.
+
+
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+
+
+ Initializes the attribute with the specified parameter value.
+
+
+ The condition parameter value. Code after the method will be considered unreachable
+ by diagnostics if the argument to the associated parameter matches this value.
+
+
+
+
+ Gets the condition parameter value.
+
+
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+
+
+ Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it.
+
+
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter may be null.
+
+
+
+ Gets the return value condition.
+
+
+
+
+ Specifies that the method or property will ensure that the listed field and property members have not-null values.
+
+
+
+
+ Initializes the attribute with a field or property member.
+
+ The field or property member that is promised to be not-null.
+
+
+
+ Initializes the attribute with the list of field and property members.
+
+ The list of field and property members that are promised to be not-null.
+
+
+
+ Gets field or property member names.
+
+
+
+
+ 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.
+
+
+
+
+ Initializes the attribute with the specified return value condition and a field or property member.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+ The field or property member that is promised to be not-null.
+
+
+
+ Initializes the attribute with the specified return value condition and list of field and property members.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+ The list of field and property members that are promised to be not-null.
+
+
+
+ Gets the return value condition.
+
+
+
+
+ Gets field or property member names.
+
+
+
+
+ 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.
+
+
+
+
+ Specifies that the output will be non-null if the named parameter is non-null.
+
+
+
+
+ Initializes the attribute with the associated parameter name.
+
+ The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
+
+
+
+ Gets the associated parameter name.
+
+
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+ Gets the return value condition.
+
+
+
+ Specifies that this constructor sets all required members for the current type,
+ and callers do not need to set any required members themselves.
+
+
+
+
+ Specifies the syntax used in a string.
+
+
+
+
+ Initializes the with the identifier of the syntax used.
+
+ The syntax identifier.
+
+
+ Initializes the with the identifier of the syntax used.
+ The syntax identifier.
+ Optional arguments associated with the specific syntax employed.
+
+
+ Gets the identifier of the syntax used.
+
+
+ Optional arguments associated with the specific syntax employed.
+
+
+ The syntax identifier for strings containing composite formats for string formatting.
+
+
+ The syntax identifier for strings containing date format specifiers.
+
+
+ The syntax identifier for strings containing date and time format specifiers.
+
+
+ The syntax identifier for strings containing format specifiers.
+
+
+ The syntax identifier for strings containing format specifiers.
+
+
+ The syntax identifier for strings containing JavaScript Object Notation (JSON).
+
+
+ The syntax identifier for strings containing numeric format specifiers.
+
+
+ The syntax identifier for strings containing regular expressions.
+
+
+ The syntax identifier for strings containing time format specifiers.
+
+
+ The syntax identifier for strings containing format specifiers.
+
+
+ The syntax identifier for strings containing URIs.
+
+
+ The syntax identifier for strings containing XML.
+
+
+
+ Used to indicate a byref escapes and is not scoped.
+
+
+
+ There are several cases where the C# compiler treats a as implicitly
+ - where the compiler does not allow the to escape the method.
+
+
+ For example:
+
+ - for instance methods.
+ - parameters that refer to types.
+ - parameters.
+
+
+
+ This attribute is used in those instances where the should be allowed to escape.
+
+
+ Applying this attribute, in any form, has impact on consumers of the applicable API. It is necessary for
+ API authors to understand the lifetime implications of applying this attribute and how it may impact their users.
+
+
+
+
+ Represent a type can be used to index a collection either from the start or the end.
+
+ Index is used by the C# compiler to support the new index syntax
+
+ int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ;
+ int lastElement = someArray[^1]; // lastElement = 5
+
+
+
+
+ Construct an Index using a value and indicating if the index is from the start or from the end.
+ The index value. it has to be zero or positive number.
+ Indicating if the index is from the start or from the end.
+
+ If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
+
+
+
+ Create an Index pointing at first element.
+
+
+ Create an Index pointing at beyond last element.
+
+
+ Create an Index from the start at the position indicated by the value.
+ The index value from the start.
+
+
+ Create an Index from the end at the position indicated by the value.
+ The index value from the end.
+
+
+ Returns the index value.
+
+
+ Indicates whether the index is from the start or the end.
+
+
+ Calculate the offset from the start using the giving collection length.
+ The length of the collection that the Index will be used with. length has to be a positive value
+
+ For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
+ we don't validate either the returned offset is greater than the input length.
+ It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
+ then used to index a collection will get out of range exception which will be same affect as the validation.
+
+
+
+ Indicates whether the current Index object is equal to another object of the same type.
+ An object to compare with this object
+
+
+ Indicates whether the current Index object is equal to another Index object.
+ An object to compare with this object
+
+
+ Returns the hash code for this instance.
+
+
+ Converts integer number to an Index.
+
+
+ Converts the value of the current Index object to its equivalent string representation.
+
+
+
+ Indicates the type of the async method builder that should be used by a language compiler to
+ build the attributed async method or to build the attributed type when used as the return type
+ of an async method.
+
+
+
+ Initializes the .
+ The of the associated builder.
+
+
+ Gets the of the associated builder.
+
+
+
+ An attribute that allows parameters to receive the expression of other parameters.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The condition parameter value.
+
+
+
+ Gets the parameter name the expression is retrieved from.
+
+
+
+
+ Indicates that compiler support for a particular feature is required for the location where this attribute is applied.
+
+
+
+
+ Creates a new instance of the type.
+
+ The name of the feature to indicate.
+
+
+
+ The name of the compiler feature.
+
+
+
+
+ If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand .
+
+
+
+
+ The used for the ref structs C# feature.
+
+
+
+
+ The used for the required members C# feature.
+
+
+
+
+ Indicates which arguments to a method involving an interpolated string handler should be passed to that handler.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the argument that should be passed to the handler.
+ may be used as the name of the receiver in an instance method.
+
+
+
+ Initializes a new instance of the class.
+
+ The names of the arguments that should be passed to the handler.
+ may be used as the name of the receiver in an instance method.
+
+
+
+ Gets the names of the arguments that should be passed to the handler.
+
+ may be used as the name of the receiver in an instance method.
+
+
+
+ Indicates the attributed type is to be used as an interpolated string handler.
+
+
+
+
+ Reserved to be used by the compiler for tracking metadata.
+ This class should not be used by developers in source code.
+
+
+
+
+ Used to indicate to the compiler that a method should be called
+ in its containing module's initializer.
+
+
+ When one or more valid methods
+ with this attribute are found in a compilation, the compiler will
+ emit a module initializer which calls each of the attributed methods.
+
+ Certain requirements are imposed on any method targeted with this attribute:
+ - The method must be `static`.
+ - The method must be an ordinary member method, as opposed to a property accessor, constructor, local function, etc.
+ - The method must be parameterless.
+ - The method must return `void`.
+ - The method must not be generic or be contained in a generic type.
+ - The method's effective accessibility must be `internal` or `public`.
+
+ The specification for module initializers in the .NET runtime can be found here:
+ https://github.com/dotnet/runtime/blob/main/docs/design/specs/Ecma-335-Augments.md#module-initializer
+
+
+
+
+ Specifies that a type has required members or that a member is required.
+
+
+
+
+ Used to indicate to the compiler that the .locals init flag should not be set in method headers.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified message.
+
+ An optional message associated with this attribute instance.
+
+
+
+ Returns the optional message associated with this attribute instance.
+
+
+
+
+ Returns the optional URL associated with this attribute instance.
+
+
+
+
diff --git a/bin/Debug/K4os.Hash.xxHash.dll b/bin/Debug/K4os.Hash.xxHash.dll
new file mode 100644
index 0000000..581a9d2
Binary files /dev/null and b/bin/Debug/K4os.Hash.xxHash.dll differ
diff --git a/bin/Debug/K4os.Hash.xxHash.xml b/bin/Debug/K4os.Hash.xxHash.xml
new file mode 100644
index 0000000..920c77d
--- /dev/null
+++ b/bin/Debug/K4os.Hash.xxHash.xml
@@ -0,0 +1,245 @@
+
+
+
+ K4os.Hash.xxHash
+
+
+
+
+ Adapter implementing
+
+
+
+
+ Creates new .
+
+ Hash size (in bytes)
+ Reset function.
+ Update function.
+ Digest function.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for both and . Do not use directly.
+
+
+
+ Protected constructor to prevent instantiation.
+
+
+
+ xxHash 32-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
+ xxHash 64-bit.
+
+
+
+ Internal state of the algorithm.
+
+
+ Hash of empty buffer.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Length of buffer.
+ Seed.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Digest.
+
+
+ Hash of provided buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+ Digest.
+
+
+ Creates xxHash instance.
+
+
+ Creates xxHash instance.
+
+
+ Resets hash calculation.
+
+
+ Resets hash calculation.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the hash using given buffer.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+
+
+ Updates the has using given buffer.
+ Buffer.
+ Starting offset.
+ Length of buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+ Hash so far, as byte array.
+ Hash so far.
+
+
+ Converts this class to
+
+
+
+ Resets hash calculation.
+ Hash state.
+ Hash seed.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+ Length of buffer.
+
+
+ Updates the has using given buffer.
+ Hash state.
+ Buffer.
+
+
+ Hash so far.
+ Hash so far.
+
+
+
diff --git a/bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll b/bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000..abe9406
Binary files /dev/null and b/bin/Debug/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml b/bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml
new file mode 100644
index 0000000..cb1744f
--- /dev/null
+++ b/bin/Debug/Microsoft.Bcl.AsyncInterfaces.xml
@@ -0,0 +1,223 @@
+
+
+
+ Microsoft.Bcl.AsyncInterfaces
+
+
+
+ Provides the core logic for implementing a manual-reset or .
+
+
+
+
+ The callback to invoke when the operation completes if was called before the operation completed,
+ or 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.
+
+
+
+ State to pass to .
+
+
+ to flow to the callback, or null if no flowing is required.
+
+
+
+ A "captured" or with which to invoke the callback,
+ or null if no special context is required.
+
+
+
+ Whether the current operation has completed.
+
+
+ The result with which the operation succeeded, or the default value if it hasn't yet completed or failed.
+
+
+ The exception with which the operation failed, or null if it hasn't yet completed or completed successfully.
+
+
+ The current version of this value, used to help prevent misuse.
+
+
+ Gets or sets whether to force continuations to run asynchronously.
+ Continuations may run asynchronously if this is false, but they'll never run synchronously if this is true.
+
+
+ Resets to prepare for the next operation.
+
+
+ Completes with a successful result.
+ The result.
+
+
+ Complets with an error.
+
+
+
+ Gets the operation version.
+
+
+ Gets the status of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Gets the result of the operation.
+ Opaque value that was provided to the 's constructor.
+
+
+ Schedules the continuation action for this operation.
+ The continuation to invoke when the operation has completed.
+ The state object to pass to when it's invoked.
+ Opaque value that was provided to the 's constructor.
+ The flags describing the behavior of the continuation.
+
+
+ Ensures that the specified token matches the current version.
+ The token supplied by .
+
+
+ Signals that the operation has completed. Invoked after the result or error has been set.
+
+
+
+ Invokes the continuation with the appropriate captured context / scheduler.
+ This assumes that if is not null we're already
+ running within that .
+
+
+
+ Provides a set of static methods for configuring -related behaviors on asynchronous enumerables and disposables.
+
+
+ Configures how awaits on the tasks returned from an async disposable will be performed.
+ The source async disposable.
+ Whether to capture and marshal back to the current context.
+ The configured async disposable.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+
+
+ Sets the to be passed to when iterating.
+ The type of the objects being iterated.
+ The source enumerable being iterated.
+ The to use.
+ The configured enumerable.
+
+
+ Represents a builder for asynchronous iterators.
+
+
+ Creates an instance of the struct.
+ The initialized instance.
+
+
+ Invokes on the state machine while guarding the .
+ The type of the state machine.
+ The state machine instance, passed by reference.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Schedules the state machine to proceed to the next action when the specified awaiter completes.
+ The type of the awaiter.
+ The type of the state machine.
+ The awaiter.
+ The state machine.
+
+
+ Marks iteration as being completed, whether successfully or otherwise.
+
+
+ Gets an object that may be used to uniquely identify this builder to the debugger.
+
+
+ Indicates whether a method is an asynchronous iterator.
+
+
+ Initializes a new instance of the class.
+ The type object for the underlying state machine type that's used to implement a state machine method.
+
+
+ Provides a type that can be used to configure how awaits on an are performed.
+
+
+ Provides an awaitable async enumerable that enables cancelable iteration and configured awaits.
+
+
+ Configures how awaits on the tasks returned from an async iteration will be performed.
+ Whether to capture and marshal back to the current context.
+ The configured enumerable.
+ This will replace any previous value set by for this iteration.
+
+
+ Sets the to be passed to when iterating.
+ The to use.
+ The configured enumerable.
+ This will replace any previous set by for this iteration.
+
+
+ Provides an awaitable async enumerator that enables cancelable iteration and configured awaits.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true
+ if the enumerator was successfully advanced to the next element, or false if the enumerator has
+ passed the end of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+ Exposes an enumerator that provides asynchronous iteration over values of a specified type.
+ The type of values to enumerate.
+
+
+ Returns an enumerator that iterates asynchronously through the collection.
+ A that may be used to cancel the asynchronous iteration.
+ An enumerator that can be used to iterate asynchronously through the collection.
+
+
+ Supports a simple asynchronous iteration over a generic collection.
+ The type of objects to enumerate.
+
+
+ Advances the enumerator asynchronously to the next element of the collection.
+
+ A that will complete with a result of true if the enumerator
+ was successfully advanced to the next element, or false if the enumerator has passed the end
+ of the collection.
+
+
+
+ Gets the element in the collection at the current position of the enumerator.
+
+
+ Provides a mechanism for releasing unmanaged resources asynchronously.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or
+ resetting unmanaged resources asynchronously.
+
+
+
+
diff --git a/bin/Debug/Microsoft.QualityTools.Testing.Fakes.dll b/bin/Debug/Microsoft.QualityTools.Testing.Fakes.dll
new file mode 100644
index 0000000..17e6d61
Binary files /dev/null and b/bin/Debug/Microsoft.QualityTools.Testing.Fakes.dll differ
diff --git a/bin/Debug/MySql.Data.dll b/bin/Debug/MySql.Data.dll
new file mode 100644
index 0000000..1c01f16
Binary files /dev/null and b/bin/Debug/MySql.Data.dll differ
diff --git a/bin/Debug/MySql.Data.xml b/bin/Debug/MySql.Data.xml
new file mode 100644
index 0000000..71798c2
--- /dev/null
+++ b/bin/Debug/MySql.Data.xml
@@ -0,0 +1,18595 @@
+
+
+
+ MySql.Data
+
+
+
+
+ The implementation of the caching_sha2_password authentication plugin.
+
+
+
+
+ Generates a byte array set with the password of the user in the expected format based on the
+ SSL settings of the current connection.
+
+ A byte array that contains the password of the user in the expected format.
+
+
+
+ Defines the stage of the authentication.
+
+
+
+
+ Allows connections to a user account set with the mysql_clear_password authentication plugin.
+
+
+
+
+ Enables connections to a user account set with the authentication_kerberos authentication plugin.
+
+
+
+
+ Defines the default behavior for an authentication plugin.
+
+
+
+
+ Handles the iteration of the multifactor authentication.
+
+
+
+
+ Gets the AuthPlugin name of the AuthSwitchRequest.
+
+
+
+
+ Gets or sets the authentication data returned by the server.
+
+
+
+
+ This is a factory method that is used only internally. It creates an auth plugin based on the method type
+
+ Authentication method.
+ The driver.
+ The authentication data.
+ Boolean that indicates if the function will be executed asynchronously.
+ MultiFactorAuthentication iteration.
+
+
+
+
+ Gets the connection option settings.
+
+
+
+
+ Gets the server version associated with this authentication plugin.
+
+
+
+
+ Gets the encoding assigned to the native driver.
+
+
+
+
+ Sets the authentication data required to encode, encrypt, or convert the password of the user.
+
+ A byte array containing the authentication data provided by the server.
+ This method may be overriden based on the requirements by the implementing authentication plugin.
+
+
+
+ Defines the behavior when checking for constraints.
+
+ This method is intended to be overriden.
+
+
+
+ Throws a that encapsulates the original exception.
+
+ The exception to encapsulate.
+
+
+
+ Defines the behavior when authentication is successful.
+
+ This method is intended to be overriden.
+
+
+
+ Defines the behavior when more data is required from the server.
+
+ The data returned by the server.
+ Boolean that indicates if the function will be executed asynchronously.
+ The data to return to the server.
+ This method is intended to be overriden.
+
+
+
+ Gets the password for the iteration of the multifactor authentication
+
+ A password
+
+
+
+ Gets the plugin name based on the authentication plugin type defined during the creation of this object.
+
+
+
+
+ Gets the user name associated to the connection settings.
+
+ The user name associated to the connection settings.
+
+
+
+ Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object.
+ This method is intended to be overriden.
+
+ An object containing the encoded, encrypted, or converted password.
+
+
+
+ Provides functionality to read, decode and convert PEM files to objects supported in .NET.
+
+
+
+
+ Converts the binary data of a PEM file to an object.
+
+ A binary representation of the public key provided by the server.
+ An object containing the data found in the public key.
+
+
+
+ Allows connections to a user account set with the authentication_ldap_sasl authentication plugin.
+
+
+
+
+ Determines if the character is a non-ASCII space.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.1.2
+
+ true if the character is a non-ASCII space; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is commonly mapped to nothing.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-B.1
+
+ true if the character is commonly mapped to nothing; otherwise, false.
+ The character.
+
+
+
+ Determines if the character is prohibited.
+
+
+ This list was obtained from http://tools.ietf.org/html/rfc3454#appendix-C.3
+
+ true if the character is prohibited; otherwise, false.
+ The string.
+ The character index.
+
+
+
+ Prepares the user name or password string.
+
+ The string to prepare.
+ The prepared string.
+
+
+
+ Allows connections to a user account set with the mysql_native_password authentication plugin.
+
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Enables connections from a user account set with the authentication_iam authentication plugin.
+
+
+
+
+ Verify that OCI .NET SDK is referenced.
+
+
+
+
+ Loads the profiles from the OCI config file.
+
+
+
+
+ Get the values for the key_file, fingerprint and security_token_file entries.
+
+
+
+
+ Sign nonce sent by server using SHA256 algorithm and the private key provided by the user.
+
+
+
+
+ Reads the security token file and verify it does not exceed the maximum value of 10KB.
+
+ The path to the security token.
+
+
+
+ Wraps up the fingerprint, signature and the token into a JSON format and encode it to a byte array.
+
+ The response packet that will be sent to the server.
+
+
+
+ Base class to handle SCRAM authentication methods
+
+
+
+
+ Defines the state of the authentication process.
+
+
+
+
+ Gets the name of the method.
+
+
+
+
+ Parses the server's challenge token and returns the next challenge response.
+
+ The next challenge response.
+
+
+
+ Builds up the client-first message.
+
+ An array of bytes containig the client-first message.
+
+
+
+ Processes the server response from the client-first message and
+ builds up the client-final message.
+
+ Response from the server.
+ An array of bytes containing the client-final message.
+
+
+
+ Validates the server response.
+
+ Server-final message
+
+
+
+ Creates the HMAC SHA1 context.
+
+ The HMAC context.
+ The secret key.
+
+
+
+ Apply the HMAC keyed algorithm.
+
+ The results of the HMAC keyed algorithm.
+ The key.
+ The string.
+
+
+
+ Applies the cryptographic hash function.
+
+ The results of the hash.
+ The string.
+
+
+
+ Applies the exclusive-or operation to combine two octet strings.
+
+ The alpha component.
+ The blue component.
+
+
+
+ The SCRAM-SHA-1 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-1 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-1 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The SCRAM-SHA-256 SASL mechanism.
+
+
+ A salted challenge/response SASL mechanism that uses the HMAC SHA-256 algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new SCRAM-SHA-256 SASL context.
+
+ The user name.
+ The password.
+ The host.
+
+
+
+ Gets the name of the method.
+
+
+
+
+ The implementation of the sha256_password authentication plugin.
+
+
+
+
+ The byte array representation of the public key provided by the server.
+
+
+
+
+ Applies XOR to the byte arrays provided as input.
+
+ A byte array that contains the results of the XOR operation.
+
+
+
+ Method that parse the challenge received from server during authentication process.
+ This method extracts salt and relying party name.
+
+ Buffer holding the server challenge.
+ Thrown if an error occurs while parsing the challenge.
+
+
+
+ Sets the ClientDataHash for the assertion
+
+
+
+
+ Method to obtains an assertion from a FIDO device.
+
+ The assertion.
+ Thrown if an error occurs while getting the assertion.
+
+
+
+ Allows connections to a user account set with the authentication_windows authentication plugin.
+
+
+
+
+ Allows importing large amounts of data into a database with bulk loading.
+
+
+
+
+ Initializes a new instance of the class using the specified instance of .
+
+ The that will be used to perform the bulk operation.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the field terminator.
+
+ The field terminator.
+
+
+
+ Gets or sets the line terminator.
+
+ The line terminator.
+
+
+
+ Gets or sets the name of the table.
+
+ The name of the table.
+
+
+
+ Gets or sets the character set.
+
+ The character set.
+
+
+
+ Gets or sets the name of the file.
+
+ The name of the file.
+
+
+
+ Gets or sets the timeout.
+
+ The timeout.
+
+
+
+ Gets or sets a value indicating whether the file name that is to be loaded
+ is local to the client or not. The default value is false.
+
+ true if local; otherwise, false.
+
+
+
+ Gets or sets the number of lines to skip.
+
+ The number of lines to skip.
+
+
+
+ Gets or sets the line prefix.
+
+ The line prefix.
+
+
+
+ Gets or sets the field quotation character.
+
+ The field quotation character.
+
+
+
+ Gets or sets a value indicating whether [field quotation optional].
+
+
+ true if [field quotation optional]; otherwise, false.
+
+
+
+
+ Gets or sets the escape character.
+
+ The escape character.
+
+
+
+ Gets or sets the conflict option.
+
+ The conflict option.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Gets the columns.
+
+ The columns.
+
+
+
+ Gets the expressions.
+
+ The expressions.
+
+
+
+ Executes the load operation.
+
+ The number of rows inserted.
+
+
+
+ Executes the load operation.
+
+ A object containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation.
+
+ The number of rows inserted.
+
+
+
+ Asynchronous version of the load operation that accepts a data stream.
+
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Executes the load operation asynchronously while the cancellation isn't requested.
+
+ The cancellation token.
+ A containing the data to be loaded.
+ The number of rows inserted.
+
+
+
+ Represents the priority set for bulk loading operations.
+
+
+
+
+ This is the default and indicates normal priority
+
+
+
+
+ Low priority will cause the load operation to wait until all readers of the table
+ have finished. This only affects storage engines that use only table-level locking
+ such as MyISAM, Memory, and Merge.
+
+
+
+
+ Concurrent priority is only relevant for MyISAM tables and signals that if the table
+ has no free blocks in the middle that other readers can retrieve data from the table
+ while the load operation is happening.
+
+
+
+
+ Represents the behavior when conflicts arise during bulk loading operations.
+
+
+
+
+ This is the default and indicates normal operation. In the event of a LOCAL load, this
+ is the same as ignore. When the data file is on the server, then a key conflict will
+ cause an error to be thrown and the rest of the data file ignored.
+
+
+
+
+ Replace column values when a key conflict occurs.
+
+
+
+
+ Ignore any rows where the primary key conflicts.
+
+
+
+
+ Summary description for CharSetMap.
+
+
+
+
+ Returns the text encoding for a given MySQL character set name
+
+ Name of the character set to get the encoding for
+ Encoding object for the given character set name
+
+
+
+ Initializes the mapping.
+
+
+
+
+ Represents a character set object.
+
+
+
+
+ Summary description for API.
+
+
+
+
+ Summary description for CompressedStream.
+
+
+
+
+ Summary description for Crypt.
+
+
+
+
+ Simple XOR scramble
+
+ Source array
+ Index inside source array
+ Destination array
+ Index inside destination array
+ Password used to xor the bits
+ Number of bytes to scramble
+
+
+
+ Returns a byte array containing the proper encryption of the
+ given password/seed according to the new 4.1.1 authentication scheme.
+
+
+
+
+
+
+
+ Encrypts a password using the MySql encryption scheme
+
+ The password to encrypt
+ The encryption seed the server gave us
+ Indicates if we should use the old or new encryption scheme
+
+
+
+
+ Hashes a password using the algorithm from Monty's code.
+ The first element in the return is the result of the "old" hash.
+ The second element is the rest of the "new" hash.
+
+ Password to be hashed
+ Two element array containing the hashed values
+
+
+
+ Summary description for BaseDriver.
+
+
+
+
+ For pooled connections, time when the driver was
+ put into idle queue
+
+
+
+
+ Loads the properties from the connected server into a hashtable
+
+ The connection to be used.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+
+ Loads all the current character set names and ids for this server
+ into the charSets hashtable
+
+
+
+
+ The exception that is thrown when MySQL returns an error. This class cannot be inherited.
+
+
+
+ This class is created whenever the MySQL Data Provider encounters an error generated from the server.
+
+
+ Any open connections are not automatically closed when an exception is thrown. If
+ the client application determines that the exception is fatal, it should close any open
+ objects or objects.
+
+
+
+
+
+ Gets a number that identifies the type of error.
+
+
+
+
+ True if this exception was fatal and cause the closing of the connection, false otherwise.
+
+
+
+
+ Gets the SQL state.
+
+
+
+
+ Gets an integer that representes the MySQL error code.
+
+
+
+
+ Summary description for Field.
+
+
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated MySQL database.
+ This class cannot be inherited.
+
+
+
+ The does not automatically generate the SQL statements required to
+ reconcile changes made to a with the associated instance of MySQL.
+ However, you can create a object to automatically generate SQL statements for
+ single-table updates if you set the property
+ of the . Then, any additional SQL statements that you do not set are generated by the
+ .
+
+
+ The registers itself as a listener for RowUpdating
+ events whenever you set the property. You can only associate one
+ or object with each other at one time.
+
+
+ To generate INSERT, UPDATE, or DELETE statements, the uses the
+ property to retrieve a required set of metadata automatically. If you change
+ the after the metadata has is retrieved (for example, after the first update), you
+ should call the method to update the metadata.
+
+
+ The must also return at least one primary key or unique
+ column. If none are present, an exception is generated,
+ and the commands are not generated.
+
+
+ The also uses the ,
+ , and
+ properties referenced by the . The user should call
+ if any of these properties are modified, or if the
+ itself is replaced. Otherwise the ,
+ , and properties retain
+ their previous values.
+
+
+ If you call , the is disassociated
+ from the , and the generated commands are no longer used.
+
+
+
+ The following example uses the , along
+ and , to
+ select rows from a data source. The example is passed an initialized
+ , a connection string, a
+ query string that is a SQL SELECT statement, and a string that is the
+ name of the database table. The example then creates a .
+
+ public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName)
+ {
+ MySqlConnection myConn = new MySqlConnection(myConnection);
+ MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
+ myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn);
+ MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
+
+ myConn.Open();
+
+ DataSet ds = new DataSet();
+ myDataAdapter.Fill(ds, myTableName);
+
+ ///code to modify data in DataSet here
+ ///Without the MySqlCommandBuilder this line would fail
+ myDataAdapter.Update(ds, myTableName);
+ myConn.Close();
+ return ds;
+ }
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the associated object.
+
+ The to use.
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this is released.
+
+
+
+
+
+ Gets or sets a object for which SQL statements are automatically generated.
+
+
+ A object.
+
+
+
+ The registers itself as a listener for
+ events that are generated by the
+ specified in this property.
+
+
+ When you create a new instance , any existing
+ associated with this
+ is released.
+
+
+
+
+
+ Retrieves parameter information from the stored procedure specified in the
+ and populates the Parameters collection of the specified object.
+ This method is not currently supported since stored procedures are not available in MySQL.
+
+ The referencing the stored
+ procedure from which the parameter information is to be derived. The derived parameters are added to the Parameters collection of the
+ .
+ The command text is not a valid stored procedure name.
+
+
+
+ Gets the delete command.
+
+ The object required to perform deletions.
+
+
+
+ Gets the update command.
+
+ The object required to perform updates.
+
+
+
+ Gets the insert command.
+
+ The object required to perform inserts.
+
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier,
+ including properly escaping any embedded quotes in the identifier.
+
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+ If the unquotedIdentifier is null.
+
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier,
+ including properly un-escaping any embedded quotes in the identifier.
+
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+ If the quotedIdentifier is null.
+
+
+
+ Returns the schema table for the
+
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+
+ Returns the full parameter name, given the partial parameter name.
+
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+ true if the parameter is part of the update or delete WHERE clause,
+ false if it is part of the insert or update values.
+
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+
+ Registers the to handle the
+ event for a .
+
+
+
+
+
+ Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database.
+ This class cannot be inherited.
+
+
+
+ The , serves as a bridge between a
+ and MySQL for retrieving and saving data. The provides this
+ bridge by mapping , which changes the data in the
+ to match the data in the data source, and ,
+ which changes the data in the data source to match the data in the ,
+ using the appropriate SQL statements against the data source.
+
+
+ When the fills a , it will create the necessary
+ tables and columns for the returned data if they do not already exist. However, primary
+ key information will not be included in the implicitly created schema unless the
+ property is set to .
+ You may also have the create the schema of the ,
+ including primary key information, before filling it with data using .
+
+
+ is used in conjunction with
+ and to increase performance when connecting to a MySQL database.
+
+
+ The also includes the ,
+ , ,
+ , and
+ properties to facilitate the loading and updating of data.
+
+
+ When an instance of is created, the read/write properties
+ are set to initial values. For a list of these values, see the
+ constructor.
+
+
+ Please be aware that the class allows only
+ Int16, Int32, and Int64 to have the AutoIncrement property set.
+ If you plan to use autoincremement columns with MySQL, you should consider
+ using signed integer columns.
+
+
+
+ The following example creates a and a .
+ The is opened and set as the for the
+ . The example then calls , and closes
+ the connection. To accomplish this, the is
+ passed a connection string and a query string that is a SQL INSERT
+ statement.
+
+ public DataSet SelectRows(DataSet dataset,string connection,string query)
+ {
+ MySqlConnection conn = new MySqlConnection(connection);
+ MySqlDataAdapter adapter = new MySqlDataAdapter();
+ adapter.SelectCommand = new MySqlCommand(query, conn);
+ adapter.Fill(dataset);
+ return dataset;
+ }
+
+
+
+
+
+ Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ When an instance of is created,
+ the following read/write properties are set to the following initial
+ values.
+
+
+
+ Properties
+ Initial Value
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+ You can change the value of any of these properties through a separate call to the property.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified as the
+ property.
+
+
+ that is a SQL SELECT statement or stored procedure and is set
+ as the property of the .
+
+
+
+
+ Initializes a new instance of the class with
+ a and a object.
+
+
+ A String that is a SQL SELECT statement or stored procedure to be used by
+ the property of the .
+
+
+ A that represents the connection.
+
+
+
+ This implementation of the opens and closes a
+ if it is not already open. This can be useful in a an application that must call the
+ method for two or more MySqlDataAdapter objects.
+ If the MySqlConnection is already open, you must explicitly call
+ or to close it.
+
+
+
+
+
+ Initializes a new instance of the class with
+ a and a connection string.
+
+
+ A that is a SQL SELECT statement or stored procedure to
+ be used by the property of the .
+
+ The connection string
+
+
+
+ Gets or sets a SQL statement or stored procedure used to delete records from the data set.
+
+
+ A used during to delete records in the
+ database that correspond to deleted rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the .
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to insert records into the data set.
+
+
+ A used during to insert records into the
+ database that correspond to new rows in the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the InsertCommand can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the MySqlCommandBuilder. This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When InsertCommand is assigned to a previously created ,
+ the is not cloned. The InsertCommand maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be added to the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to select records in the data source.
+
+
+ A used during to select records from the
+ database for placement in the .
+
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference to the
+ previously created object.
+
+
+ If the does not return any rows, no tables are added to the
+ , and no exception is raised.
+
+
+
+
+
+ Gets or sets a SQL statement or stored procedure used to updated records in the data source.
+
+
+ A used during to update records in the
+ database with data from the .
+
+
+
+ During , if this property is not set and primary key information
+ is present in the , the can be generated
+ automatically if you set the property and use the
+ . Then, any additional commands that you do not set are
+ generated by the . This generation logic requires key column
+ information to be present in the DataSet.
+
+
+ When is assigned to a previously created ,
+ the is not cloned. The maintains a reference
+ to the previously created object.
+
+
+ If execution of this command returns rows, these rows may be merged with the DataSet
+ depending on how you set the property of the object.
+
+
+
+
+
+ Open connection if it was closed.
+ Necessary to workaround "connection must be open and valid" error
+ with batched updates.
+
+ Row state
+ list of opened connections
+ If connection is opened by this function, the list is updated
+
+ true if connection was opened
+
+
+
+ Gets or sets a value that enables or disables batch processing support,
+ and specifies the number of commands that can be executed in a batch.
+
+
+ Returns the number of rows to process for each batch.
+
+
+ Value is
+ Effect
+
+ -
+
+ 0
+
+
+ There is no limit on the batch size.
+
+
+ -
+
+ 1
+
+
+ Disables batch updating.
+
+
+ -
+
+ > 1
+
+
+ Changes are sent using batches of operations at a time.
+
+
+
+
+ When setting this to a value other than 1, all the commands associated with the
+ must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+
+
+
+ Initializes batching for the .
+
+
+
+
+ Adds a to the current batch.
+
+ The to add to the batch.
+ The number of commands in the batch before adding the .
+
+
+
+ Executes the current batch.
+
+ The return value from the last command in the batch.
+
+
+
+ Removes all objects from the batch.
+
+
+
+
+ Ends batching for the .
+
+
+
+
+ Returns a System.Data.IDataParameter from one of the commands in the current batch.
+
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The specified.
+
+
+
+ Overridden. See .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+
+
+
+
+ Overridden. Raises the RowUpdating event.
+
+ A MySqlRowUpdatingEventArgs that contains the event data.
+
+
+
+ Overridden. Raises the RowUpdated event.
+
+ A MySqlRowUpdatedEventArgs that contains the event data.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill records with.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The name of the to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ An instance of .
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The s to fill with records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The name of the source table to use for table mapping.
+ An instance of .
+ The start record.
+ The max number of affected records.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The s to fill with records.
+ The start record.
+ The max number of affected records.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the s.
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ The to fill with records.
+ The start record.
+ The max number of affected records.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The cancellation token.
+ The number of rows successfully added to or refreshed in the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ DataReader to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ Source table to use.
+ to use.
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Schema type to use.
+ DBCommand to use.
+ Source table to use.
+ Command Behavior
+ to use.
+ []
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataTable
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DataReader to use.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command Behavior
+
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ Schema type to use.
+ DBCommand to use.
+ Command behavior.
+ to use.
+
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataTable to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataRow[] to use.
+ Data Table Mapping
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ The number of rows successfully updated from the .
+
+
+
+ Asynchronous version of the method.
+
+ DataSet to use.
+ Source table to use.
+ to use.
+ The number of rows successfully updated from the .
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Represents the method that will handle the event of a .
+
+
+
+
+ Provides data for the RowUpdating event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatingEventArgs class.
+
+ The to
+ .
+ The to execute during .
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand to execute when performing the Update.
+
+
+
+
+ Provides data for the RowUpdated event. This class cannot be inherited.
+
+
+
+
+ Initializes a new instance of the MySqlRowUpdatedEventArgs class.
+
+ The sent through an .
+ The executed when is called.
+ One of the values that specifies the type of query executed.
+ The sent through an .
+
+
+
+ Gets or sets the MySqlCommand executed when Update is called.
+
+
+
+
+ Enables the provider to help ensure that a user has a security level adequate for accessing data.
+
+
+
+
+ Adds a new connection string with set of restricted keywords to the MySqlClientPermission object
+
+ Settings to be used for the connection
+ Keywords to define the restrictions
+ KeyRestrictionBehavior to be used
+
+
+
+ Returns MySqlClientPermission as an IPermission
+
+
+
+
+
+ Associates a security action with a custom security attribute.
+
+
+
+
+ Represents a section within a configuration file.
+
+
+
+
+ Gets the MySQL configuations associated to the current configuration.
+
+
+
+
+ Gets a collection of the exception interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the command interceptors available in the current configuration.
+
+
+
+
+ Gets a collection of the authentication plugins available in the current configuration.
+
+
+
+
+ Gets or sets the replication configurations.
+
+
+
+
+ Defines the configurations allowed for an authentication plugin.
+
+
+
+
+ Gets or sets the name of the authentication plugin.
+
+
+
+
+ Gets or sets the type of the authentication plugin.
+
+
+
+
+ Defines the configurations allowed for an interceptor.
+
+
+
+
+ Gets or sets the name of the interceptor.
+
+
+
+
+ Gets or sets the type of the interceptor.
+
+
+
+
+ Represents a generic configuration element.
+
+
+
+
+
+ Gets an enumerator that iterates through the returned list.
+
+ An enumerator that iterates through the returned list.
+
+
+
+ Helper class that makes it easier to work with the provider.
+
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Asynchronous version of ExecuteDataRow.
+
+ The settings to be used for the connection.
+ The command to execute.
+ The cancellation token.
+ The parameters to use for the command.
+ The DataRow containing the first row of the resultset.
+
+
+
+ Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object
+ is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ DataRow containing the first row of the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ A new MySqlConnection object is created, opened, and closed during this method.
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Executes a single SQL command and returns the resultset in a .
+ The state of the object remains unchanged after execution
+ of this method.
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Updates the given table with data from the given
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ Settings to be used for the connection
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ containing the resultset
+
+
+
+ Async version of ExecuteDataset
+
+ object to use
+ Command to execute
+ Parameters to use for the command
+ containing the resultset
+
+
+
+ Async version of UpdateDataset
+
+ Settings to use for the update
+ Command text to use for the update
+ containing the new data to use in the update
+ Tablename in the dataset to update
+
+
+
+ Executes a single command against a MySQL database. The is assumed to be
+ open when the method is called and remains open after the method completes.
+
+ The object to use
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+
+
+
+ Executes a single command against a MySQL database.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of affected records.
+ A new is created using the given.
+
+
+
+ Async version of ExecuteNonQuery
+
+ object to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ Rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Asynchronous version of the ExecuteNonQuery method.
+
+ to use.
+ The SQL command to be executed.
+ The cancellation token.
+ An array of objects to use with the command.
+ The number of rows affected.
+
+
+
+ Executes a single command against a MySQL database, possibly inside an existing transaction.
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Settings to use for this command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Executes a single command against a MySQL database.
+
+ Connection to use for the command
+ Command text to use
+ Array of objects to use with the command
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ object to use for the command
+ Command text to use
+ Array of objects to use with the command
+ True if the connection should be preserved, false if not
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ object to use for the command
+ Command text to use
+ object ready to read the results of the command
+
+
+
+ Async version of ExecuteReader
+
+ Settings to use for this command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Async version of ExecuteReader
+
+ Connection to use for the command.
+ Command text to use.
+ An array of objects to use with the command.
+ object ready to read the results of the command.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Execute a single command against a MySQL database.
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the update
+ Command text to use for the update
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ Settings to use for the command
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Async version of ExecuteScalar
+
+ object to use
+ Command text to use for the command
+ Parameters to use for the command
+ The first column of the first row in the result set, or a null reference if the result set is empty.
+
+
+
+ Escapes the string.
+
+ The string to escape.
+ The string with all quotes escaped.
+
+
+
+ Replaces quotes with double quotes.
+
+ The string to modidify.
+ A string containing double quotes instead of single quotes.
+
+
+
+ Represents a single(not nested) TransactionScope
+
+
+
+
+ Defines security permissions assigned to a MySQL object.
+
+
+
+
+ Creates a set of permissions.
+
+ A flag indicating if the reflection permission should be included.
+ A object representing a collection of permissions.
+
+
+
+ BaseCommandInterceptor is the base class that should be used for all userland
+ command interceptors
+
+
+
+
+ Gets the active connection.
+
+
+
+
+ Executes an SQL statements that returns a scalar value such as a calculation.
+
+ The SQL statement to execute.
+ A scalar value that represents the result returned by the execution of the SQL statement.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that returns the number of affected rows.
+
+ The SQL statement to execute.
+ The number of affected rows.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Executes an SQL statement that will return a resultset.
+
+ The SQL statement to execute.
+ A value that describes the results of the query and its effect on the database.
+ A object containing the result of the statement execution.
+ false.
+ This method is intended to be overriden.
+
+
+
+ Sets the active connection.
+
+ The active connection.
+
+
+
+ CommandInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ BaseExceptionInterceptor is the base class that should be used for all userland
+ exception interceptors.
+
+
+
+
+ Returns the received exception.
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ Gets the active connection.
+
+
+
+
+ Initilizes this object by setting the active connection.
+
+ The connection to become active.
+
+
+
+ StandardExceptionInterceptor is the standard interceptor that simply returns the exception.
+ It is the default action.
+
+
+
+
+ Returns the received exception, which is the default action
+
+ The exception to be returned.
+ The exception originally received.
+
+
+
+ ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors
+ for the given connection.
+
+
+
+
+ Interceptor is the base class for the "manager" classes such as ExceptionInterceptor,
+ CommandInterceptor, etc
+
+
+
+
+ Return schema information about procedures and functions
+ Restrictions supported are:
+ schema, name, type
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Return schema information about parameters for procedures and functions
+ Restrictions supported are:
+ schema, name, type, parameter name
+
+
+
+
+ Represents a query attribute to a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the attribute name and its value.
+
+ Name of the attribute.
+ Value of the attribute.
+
+
+
+ Name of the query attribute.
+
+
+
+
+ Value of the query attribute.
+
+
+
+
+ Gets or sets the of the attribute.
+
+
+
+
+ Sets the MySqlDbType from the Value
+
+
+
+
+ Gets the value for the attribute type.
+
+
+
+
+ Serialize the value of the query attribute.
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Represents a collection of query attributes relevant to a .
+
+
+
+
+ Gets the at the specified index.
+
+
+
+
+ Gets the number of objects in the collection.
+
+
+
+
+ Adds the specified object to the .
+
+ object to add.
+
+
+
+ Adds a query attribute and its value.
+
+ Name of the query attribute.
+ Value of the query attribute.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+ Abstract class that provides common functionality for connection options that apply for all protocols.
+
+
+
+
+ Readonly field containing a collection of protocol shared connection options.
+
+
+
+
+ Gets or sets a dictionary representing key-value pairs for each connection option.
+
+
+
+
+ Gets or sets the name of the server.
+
+ The server.
+
+ If this property is not set, then the provider will attempt to connect tolocalhost
+ even though this property will return String.Empty.
+
+
+
+ Gets or sets the name of the database for the initial connection.
+
+ There is no default for this property and, if not set, the connection will not have a current database.
+
+
+
+
+ Gets or sets the protocol that should be used for communicating
+ with MySQL.
+
+
+
+
+ Gets or sets the port number that is used when the socket
+ protocol is being used.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should resolve DNS SRV records.
+
+
+
+
+ Gets or sets the user ID that should be used to connect with.
+
+
+
+
+ Gets or sets the password that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a second authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the password for a third authentication that should be used to make a connection.
+
+
+
+
+ Gets or sets the path to the certificate file to be used.
+
+
+
+
+ Gets or sets the password to be used in conjunction with the certificate file.
+
+
+
+
+ Gets or sets the location to a personal store where a certificate is held.
+
+
+
+
+ Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store.
+
+
+
+
+ Indicates whether to use SSL connections and how to handle server certificate errors.
+
+
+
+
+ Sets the TLS versions to use in a SSL connection to the server.
+
+
+ Tls version=TLSv1.2,TLSv1.3;
+
+
+
+
+ Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection.
+
+
+
+
+ Gets or sets the idle connection time(seconds) for TCP connections.
+
+
+
+
+ Gets or sets the character set that should be used for sending queries to the server.
+
+
+
+
+ Analyzes the connection string for potential duplicated or invalid connection options.
+
+ Connection string.
+ Flag that indicates if the connection is using X Protocol.
+ Flag that indicates if the default port is used.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Represents a set of methods for creating instances of the MySQL client implementation of the data source classes.
+
+
+
+
+ Gets an instance of the .
+ This can be used to retrieve strongly typed data objects.
+
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommand.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnection.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbParameter.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbConnectionStringBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbCommandBuilder.
+
+
+
+ Returns a strongly typed instance.
+
+ A new strongly typed instance of DbDataAdapter.
+
+
+
+ Provide a simple caching layer
+
+
+
+
+ Represents a SQL statement to execute against a MySQL database. This class cannot be inherited.
+
+
+
+ You can reset the property and reuse the
+ object. However, you must close the object before you can execute a new or previous command.
+
+
+ If an exception of type is generated by the method executing ,
+ the instance remains open. It is the responsibility of the programmer to close the connection.
+
+
+ You can read more about it here.
+
+
+ Using the '@' symbol for paramters is now the preferred approach although the old pattern of using
+ '?' is still supported. Please be aware that using '@' can cause conflicts when user variables
+ are also used. For more information, see the documentation on the AllowUserVariables connection string option.
+
+
+
+
+
+ Initializes a new instance of the MySqlCommand class.
+
+
+ The base constructor initializes all fields to their default values.
+
+
+
+
+ Initializes a new instance of the class with the text of the query.
+
+ The text of the query.
+
+
+
+ Initializes a new instance of the class with the text of the query and a .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+
+
+
+ Initializes a new instance of the class with the text of the query,
+ a , and the .
+
+ The text of the query.
+ A that represents the connection to an instance of MySQL Server.
+ The in which the executes.
+
+
+
+ Provides the ID of the last inserted row.
+ ID of the last inserted row. -1 if none exists.
+
+ An important point to remember is that this property can be used in batch SQL scenarios but it's important to remember that it will
+ only reflect the insert ID from the last insert statement in the batch. This property can also be used when the batch includes select statements
+ and ExecuteReader is used. This property can be consulted during result set processing.
+
+
+
+
+ Gets or sets the SQL statement to execute at the data source.
+
+ The SQL statement or stored procedure to execute. The default is an empty string.
+
+ You can read more about it here.
+
+
+
+
+ Gets or sets the wait time before terminating the attempt to execute a command
+ and generating an error.
+
+ The time (in seconds) to wait for the command to execute. The default is 30 seconds.
+
+ CommandTimeout is dependent on the ability of MySQL to cancel an executing query.
+
+
+
+
+ Gets or sets a value indicating how the property is to be interpreted.
+
+
+ One of the values.
+ The default is .
+
+
+ You can read more about it here.
+
+
+
+
+ Gets a boolean value that indicates whether the method has been called.
+
+ True if it is Prepared; otherwise, false.
+
+
+
+ Gets or sets the object used by this instance of the .
+
+
+ The connection to a data source. The default value is a null reference.
+
+
+
+
+ Gets the object.
+
+
+ The parameters of the SQL statement or stored procedure. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed parameters. Every parameter added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Parameters can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets the object.
+
+
+ The query attributes defined for the statement. The default is an empty collection.
+
+
+ Connector/NET does not support unnamed query attributes. Every query attribute added to the collection must
+ have an associated name.
+ You can read more about it here.
+ Query Attributes can be used along with . There are no restrictions in this regard.
+
+
+
+
+ Gets or sets the instance of within which executes.
+
+
+ The . The default value is a null reference (Nothing in Visual Basic).
+
+
+ You cannot set the property if it is already set to a
+ specific value, and the command is in the process of executing. If you set the
+ transaction to use a object that is not connected
+ to the same as the object,
+ an exception will be thrown the next time you attempt to execute a statement.
+
+
+
+
+ Gets or sets a value that indicates whether caching is enabled.
+
+ True if it is enabled; otherwise, false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Number of seconds.
+
+
+
+ Gets or sets how command results are applied to the
+ when used by the method of the .
+
+
+ One of the values.
+
+
+
+ The default value is
+ Both unless the command is automatically generated (as in the case of the
+ ), in which case the default is None.
+
+
+
+
+
+ Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control.
+
+ True if it should be visible; otherwise, false.
+
+
+
+ Gets or sets the used by this .
+
+ The connection.
+
+
+
+ Gets the collection of objects.
+
+ The collection.
+
+
+
+ Gets or sets the within which this object executes.
+
+ The transaction.
+
+
+
+ Attempts to cancel the execution of a currently active command
+
+
+
+
+ Creates a new instance of a object.
+
+
+ This method is a strongly-typed version of .
+
+ A object.
+
+
+
+ Check the connection to make sure
+ - it is open
+ - it is not currently being used by a reader
+ - and we have the right version of MySQL for the requested command type
+
+
+
+
+ Executes a SQL statement against the connection and returns the number of rows affected.
+
+ Number of rows affected
+
+ You can use to perform any type of database operation,
+ however any resultsets returned will not be available. Any output parameters
+ used in calling a stored procedure will be populated with data and can be
+ retrieved after execution is complete.
+ For UPDATE, INSERT, and DELETE statements, the return value is the number
+ of rows affected by the command. For all other types of statements, the return
+ value is -1.
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Reset reader to null, to avoid "There is already an open data reader"
+ on the next ExecuteReader(). Used in error handling scenarios.
+
+
+
+
+ Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior.
+
+
+
+
+ Sends the value to
+ and builds a object.
+
+ A object.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ While is in use, the associated
+ instance of is busy serving it
+ and no other operations can be performed on , other than closing it.
+ This is the case until the method of is called.
+
+
+
+
+
+ Sends the to the Connection,
+ and builds a using one of the values.
+
+ One of the values.
+
+
+ When the property is set to StoredProcedure,
+ the property should be set to the name of the stored
+ procedure. The command executes this stored procedure when you call
+ ExecuteReader.
+
+
+ If the object is created with CommandBehavior set to
+ CloseConnection, closing the instance closes the connection
+ automatically.
+
+
+ When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit
+ clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The
+ method will still return false after the first row but pulling all rows of data
+ into the client will have a performance impact. If the limit clause is not necessary, it should
+ be avoided.
+
+
+
+ A object.
+
+
+
+
+ Asynchronous version of .
+
+ One of the values.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of with a cancellation token.
+
+ One of the values.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Executes the query, and returns the first column of the first row in the
+ result set returned by the query. Extra columns or rows are ignored.
+
+
+ The first column of the first row in the result set, or a null reference if the
+ result set is empty
+
+
+
+ Use the ExecuteScalar method to retrieve a single value (for example,
+ an aggregate value) from a database. This requires less code than using the
+ method, and then performing the operations necessary
+ to generate the single value using the data returned by a
+
+
+
+
+
+ Asynchronous version of .
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Asynchronously creates a prepared version of the command on an instance of MySQL Server.
+
+
+
+
+ Creates a clone of this object. CommandText, Connection, and Transaction properties
+ are included as well as the entire parameter and the arribute list.
+
+ The cloned object.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this , and retrieves one or more
+ result sets from the server.
+
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this using one of the
+ CommandBehavior values.
+
+ One of the values, indicating
+ options for statement execution and data retrieval.
+ An that can be used to poll, wait for results,
+ or both; this value is also needed when invoking EndExecuteReader,
+ which returns a instance that can be used to retrieve
+ the returned rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement, returning the requested
+ .
+
+ The returned by the call to
+ .
+ A MySqlDataReader object that can be used to retrieve the requested rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+
+ An delegate that is invoked when the command's
+ execution has completed. Pass a null reference to indicate that no callback is required.
+ A user-defined state object that is passed to the
+ callback procedure. Retrieve this object from within the callback procedure
+ using the property.
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Initiates the asynchronous execution of the SQL statement or stored procedure
+ that is described by this .
+
+ An that can be used to poll or wait for results,
+ or both; this value is also needed when invoking ,
+ which returns the number of affected rows.
+
+
+
+ Finishes asynchronous execution of a SQL statement.
+
+ The returned by the call
+ to .
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Represents a connection to a MySQL database. This class cannot be inherited.
+
+
+
+ A object represents a session to a MySQL
+ data source. When you create an instance of , all
+ properties are set to their initial values.
+
+
+ If the goes out of scope, it is not closed. Therefore,
+ you must explicitly close the connection by calling
+ or .
+
+
+
+
+
+ Occurs when WebAuthn authentication makes a request to perform the gesture action on a device.
+
+
+
+
+ Occurs when MySQL returns warnings as a result of executing a command or query.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class when given a string containing the connection string.
+
+
+ You can read more about it here.
+
+ The connection properties used to open the MySQL database.
+
+
+
+
+ Determines whether the connection is a clone of other connection.
+
+
+
+
+ Returns the ID of the server thread this connection is executing on.
+
+
+
+
+ Gets the name of the MySQL server to which to connect.
+
+
+
+
+ Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.
+
+
+ A value of 0 indicates no limit, and should be avoided in a call to
+ because an attempt to connect
+ will wait indefinitely.
+
+ The value set is less than 0.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened.
+ The default value is an empty string.
+
+
+ The property does not update dynamically.
+ If you change the current database using a SQL statement, then this property
+ may reflect the wrong value. If you change the current database using the
+ method, this property is updated to reflect the new database.
+
+
+
+
+
+ Indicates if this connection should use compression when communicating with the server.
+
+
+
+ Gets the current state of the connection.
+
+ A bitwise combination of the values. The default is .
+
+
+ The allowed state changes are:
+
+ -
+ From to ,
+ using the method of the connection object.
+
+ -
+ From Open to Closed, using either the Close method or the Dispose method of the connection object.
+
+
+
+
+
+ Gets a string containing the version of the MySQL server to which the client is connected.
+ The version of the instance of MySQL.
+ The connection is closed.
+
+
+
+ Gets or sets the string used to connect to a MySQL database.
+
+
+ You can read more about it here.
+
+
+
+
+ Gets the instance of the
+
+
+
+
+ Gets a boolean value that indicates whether the password associated to the connection is expired.
+
+
+
+
+ Gets a boolean value that indicates whether the connection string has been analyzed or not.
+
+
+
+
+ Creates and returns a System.Data.Common.DbCommand object associated with the current connection.
+
+ A object.
+
+
+
+ Releases the resources used by the
+
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Begins a database transaction.
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Starts a database transaction.
+
+ Specifies the for the transaction.
+ The scope of the transaction.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+
+ Asynchronous version of .
+
+ Specifies the for the transaction.
+ The cancellation token.
+ A representing the new transaction.
+ Parallel transactions are not supported.
+
+
+ Changes the current database for an open .
+ The name of the database to use.
+
+
+ The value supplied in the databaseName parameter must be a valid database
+ name. The databaseName parameter cannot contain a null value, an empty
+ string, or a string with only blank characters.
+
+
+ When you are using connection pooling against MySQL, and you close
+ the connection, it is returned to the connection pool. The next time the
+ connection is retrieved from the pool, the reset connection request
+ executes before the user performs any operations.
+
+
+ The database name is not valid.
+ The connection is not open.
+ Cannot change the database.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the database to use.
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+
+ Pings the server.
+
+ true if the ping was successful; otherwise, false.
+
+
+ Opens a database connection with the property settings specified by the .
+ Cannot open a connection without specifying a data source or server.
+ A connection-level error occurred while opening the connection.
+
+
+ The draws an open connection from the connection pool if one is available.
+ Otherwise, it establishes a new connection to an instance of MySQL.
+
+
+
+
+
+ Creates and returns a object associated with the .
+
+ A object.
+
+
+ Closes the connection to the database. This is the preferred method of closing any open connection.
+
+
+ The method rolls back any pending transactions. It then releases
+ the connection to the connection pool, or closes the connection if connection
+ pooling is disabled.
+
+
+ An application can call more than one time. No exception is
+ generated.
+
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Asynchronous version of the method.
+
+
+
+
+ Cancels the query after the specified time interval.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+
+
+
+ Asynchronous version of the method.
+
+ The length of time (in seconds) to wait for the cancellation of the command execution.
+ The cancellation token.
+
+
+
+ Returns schema information for the data source of this .
+
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name.
+
+ Specifies the name of the schema to return.
+ A that contains schema information.
+
+
+
+ Returns schema information for the data source of this
+ using the specified string for the schema name and the specified string array
+ for the restriction values.
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A that contains schema information.
+
+
+
+ Asynchronous version of .
+
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Asynchronous version of .
+
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+
+ Gets a schema collection based on the provided restriction values.
+
+ The name of the collection.
+ The values to restrict.
+ A schema collection object.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ A collection of schema objects.
+
+
+
+ Asynchronous version of the method.
+
+ The name of the collection.
+ The values to restrict.
+ The cancellation token.
+ Boolean that indicates if the function will be executed asynchronously.
+ A collection of schema objects.
+
+
+
+ Enlists in the specified transaction.
+
+ A reference to an existing in which to enlist.
+
+
+
+ Creates a new object with the exact same ConnectionString value.
+
+ A cloned object.
+
+
+
+ Returns an unopened copy of this connection with a new connection string. If the Password
+ in is not set, the password from this connection will be used.
+ This allows creating a new connection with the same security information while changing other options,
+ such as database or pooling.
+
+ The new connection string to be used.
+ A new with different connection string options but
+ the same password as this connection (unless overridden by ).
+
+
+
+ Sets query timeout. If timeout has been set prior and not
+ yet cleared with ClearCommandTimeout(), it has no effect.
+
+ Timeout in seconds.
+ if a timeout is set.
+
+
+
+ Clears query timeout, allowing next SetCommandTimeout() to succeed.
+
+
+
+ Empties the connection pool associated with the specified connection.
+
+ The associated with the pool to be cleared.
+
+
+
+ clears the connection pool that is associated with the connection.
+ If additional connections associated with connection are in use at the time of the call,
+ they are marked appropriately and are discarded (instead of being returned to the pool)
+ when is called on them.
+
+
+
+
+
+ Asynchronous version of the method.
+
+ The connection associated with the pool to be cleared.
+ The cancellation token.
+
+
+
+ Clears all connection pools.
+
+ ClearAllPools essentially performs a on all current connection pools.
+
+
+
+ Asynchronous version of the method.
+
+ The cancellation token.
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Represents the method to handle the event of a
+ .
+
+
+
+
+ Provides data for the InfoMessage event. This class cannot be inherited.
+
+
+
+
+ Gets or sets an array of objects together with the errors found.
+
+
+
+
+ IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality.
+
+
+
+
+ Aids in the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the Classic MySQL protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ Flag that indicates if the connection string has been analyzed.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the name of the named pipe that should be used
+ for communicating with MySQL.
+
+ This property has no effect unless the
+ property has been set to .
+
+
+
+ Gets or sets a boolean value that indicates whether this connection
+ should use compression.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ commands to send multiple SQL statements in one execution.
+
+
+
+
+ Gets or sets a boolean value that indicates whether logging is enabled.
+
+
+
+
+ Gets or sets the base name of the shared memory objects used to
+ communicate with MySQL when the shared memory protocol is being used.
+
+
+
+
+ Gets or sets the default command timeout.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets a boolean value that indicates whether this connection will allow
+ to load data local infile.
+
+
+
+
+ Gets or sets the safe path where files can be read and uploaded to the server.
+
+
+
+
+ Gets or sets a boolean value that indicates if the password should be persisted
+ in the connection string.
+
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be encrypted.
+
+ Obsolte. Use instead.
+
+
+
+ Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server.
+
+ This option is only relevant when SSL is disabled. Setting this option to true in
+ 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will
+ cause the connection attempt to fail if the user hasn't successfully connected to the server on a
+ previous occasion.
+
+
+
+ Gets or sets the default authentication plugin to be used. This plugin takes precedence over
+ the server-side default authentication plugin when a valid authentication plugin is specified.
+
+
+ The default authentication plugin is mandatory for supporting user-less and password-less Kerberos authentications.
+ If no value is set, it uses the server-side default authentication plugin.
+
+
+
+
+ Gets or sets the OCI configuration file location.
+
+
+ The default values vary depending on the operating system. On Windows systems the value is '%HOMEDRIVE%%HOMEPATH%\.oci\config'.
+ For Linux and macOS systems it is '~/.oci/config'.
+
+
+
+
+ Gets or sets the profile to use from the OCI configuration file.
+
+
+ The default value is "DEFAULT".
+
+
+
+
+ Gets or sets the mode value to be used in Kerberos authentication.
+
+
+ If (default value) is used, then it will try to log in using
+ and then fallback to mode value in case of error.
+
+
+
+
+ Gets or sets the Identity Token to be used in OpenID Connect authentication.
+
+
+ If is set the value will be used to try to log in using OpenID Connect authentication.
+
+
+
+
+ Gets or sets a boolean value that indicates if zero date time values are supported.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if zero datetime values should be
+ converted to DateTime.MinValue.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the Usage Advisor should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the size of the stored procedure cache.
+
+ Default value is 25.
+
+
+
+ Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if security asserts must be included.
+
+ Must be set to true when using the class in a partial trust environment,
+ with the library installed in the GAC of the hosting environment. Not supported in .NET Core.
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if column binary flags set by the server are ignored.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if the provider expects user variables in the SQL.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the session should be interactive.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if server functions should be treated as returning a string.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets
+ around symbols instead of backticks.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled.
+
+ Default value is false.
+
+
+
+ Gets or sets the seconds for how long a TableDirect result should be cached.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server.
+
+ Default value is true.
+
+
+
+ Gets or sets a boolean value that indicates if this connection will use replication.
+
+ Default value is false.
+
+
+
+ Gets or sets the list of interceptors that can triage thrown MySqlExceptions.
+
+
+
+
+ Gets or sets the list of interceptors that can intercept command operations.
+
+
+
+
+ Gets or sets a boolean indicating if this connection should rewrite batched statements as one block.
+
+
+
+
+ Gets or sets the event for the WebauthN callback.
+
+
+
+
+ Gets or sets the lifetime of a pooled connection.
+
+ Default value is 0.
+
+
+
+ Gets or sets a boolean value indicating if connection pooling is enabled.
+
+ Default value is true.
+
+
+
+ Gets the minimum connection pool size.
+
+ Default value is 0.
+
+
+
+ Gets or sets the maximum connection pool setting.
+
+ Default value is 100.
+
+
+
+ Gets or sets a boolean value that indicates if the connection should be reset when retrieved
+ from the pool.
+
+ Default value is false.
+
+
+
+ Gets or sets a boolean value that indicates whether the server variable settings are updated by a
+ SHOW VARIABLES command each time a pooled connection is returned.
+
+ Default value is false.
+
+
+
+ Indicates whether the driver should treat binary BLOBs as UTF8.
+
+ Default value is false.
+
+
+
+ Gets or sets the pattern to match for the columns that should be treated as UTF8.
+
+
+
+
+ Gets or sets the pattern to match for the columns that should not be treated as UTF8.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited.
+
+
+
+ To create a , you must call the
+ method of the object, rather than directly using a constructor.
+
+
+ While the is in use, the associated
+ is busy serving the , and no other operations can be performed
+ on the other than closing it. This is the case until the
+ method of the is called.
+
+
+ and
+ are the only properties that you can call after the is
+ closed. Though the property may be accessed at any time
+ while the exists, always call before returning
+ the value of to ensure an accurate return value.
+
+
+ For optimal performance, avoids creating
+ unnecessary objects or making unnecessary copies of data. As a result, multiple calls
+ to methods such as return a reference to the
+ same object. Use caution if you are modifying the underlying value of the objects
+ returned by methods such as .
+
+
+
+
+
+ Gets the number of columns in the current row.
+
+ The number of columns in the current row.
+
+
+
+ Gets a value indicating whether the contains one or more rows.
+
+ true if the contains one or more rows; otherwise false.
+
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ true if the is closed; otherwise false.
+
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+
+ The number of rows changed, inserted, or deleted.
+ -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+
+ Overloaded. Gets the value of a column in its native format.
+ In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets the value of a column in its native format.
+ [C#] In C#, this property is the indexer for the class.
+
+ The value of the specified column.
+
+
+
+ Gets a value indicating the depth of nesting for the current row. This method is not
+ supported currently and always returns 0.
+
+ The depth of nesting for the current row.
+
+
+
+ Closes the object.
+
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a Boolean.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a byte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a sbyte.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the field from which to begin the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for buffer to begin the read operation.
+ The maximum length to copy into the buffer.
+ The actual number of bytes read.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single character.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset.
+
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+
+ Gets the name of the source data type.
+
+ The zero-based column ordinal.
+ A string representing the name of the data type.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call IsDBNull to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+
+ MySql allows date columns to contain the value '0000-00-00' and datetime
+ columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain
+ or represent these values. To read a datetime value from a column that might
+ contain zero values, use .
+
+
+ The behavior of reading a zero datetime column using this method is defined by the
+ ZeroDateTimeBehavior connection string option. For more information on this option,
+ please refer to .
+
+
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The column name.
+ The data type of the specified column.
+
+
+
+ Gets the Type that is the data type of the object.
+
+ The zero-based column ordinal.
+ The data type of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the body definition of a routine.
+
+ The column name.
+ The definition of the routine.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The name of the column.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a globally-unique identifier(GUID).
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the name of the specified column.
+
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+
+ Gets the column ordinal, given the name of the column.
+
+ The name of the column.
+ The zero-based column ordinal.
+
+
+
+ Gets a stream to retrieve data from the specified column.
+
+ The zero-based column ordinal.
+ A stream
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a object.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column as a object.
+
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets the value of the specified column in its native format.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Gets all attribute columns in the collection for the current row.
+
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The column name.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit unsigned integer.
+
+ No conversions are performed; therefore, the data retrieved must already be a value.
+ Call to check for null values before calling this method.
+
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+
+ Returns a object for the requested column ordinal.
+
+ The zero-based column ordinal.
+ A object.
+
+
+
+ Gets a value indicating whether the column contains non-existent or missing values.
+
+ The zero-based column ordinal.
+ true if the specified column is equivalent to ; otherwise false.
+
+
+
+ Gets the value of the specified column as a .
+
+ The index of the colum.
+ The value of the specified column as a .
+
+
+
+ Gets the value of the specified column as a .
+
+ The name of the colum.
+ The value of the specified column as a .
+
+
+
+ Returns an that iterates through the .
+
+ An that can be used to iterate through the rows in the data reader.
+
+
+
+ Gets the value of the specified column as a type.
+
+ Type.
+ The index of the column.
+ The value of the column.
+
+
+
+ Describes the column metadata of the .
+
+ A object.
+
+
+
+ Advances the data reader to the next result when reading the results of batch SQL statements.
+
+ if there are more result sets; otherwise .
+
+
+
+ Advances the to the next record.
+
+ true if there are more rows; otherwise false.
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
+ Summary description for ClientParam.
+
+
+
+
+ DB Operations Code
+
+
+
+
+ Specifies MySQL specific data type of a field, property, for use in a .
+
+
+
+
+
+ A fixed precision and scale numeric value between -1038
+ -1 and 10 38 -1.
+
+
+
+
+ The signed range is -128 to 127. The unsigned
+ range is 0 to 255.
+
+
+
+
+ A 16-bit signed integer. The signed range is
+ -32768 to 32767. The unsigned range is 0 to 65535
+
+
+
+
+ Specifies a 24 (3 byte) signed or unsigned value.
+
+
+
+
+ A 32-bit signed integer
+
+
+
+
+ A 64-bit signed integer.
+
+
+
+
+ A small (single-precision) floating-point
+ number. Allowable values are -3.402823466E+38 to -1.175494351E-38,
+ 0, and 1.175494351E-38 to 3.402823466E+38.
+
+
+
+
+ A normal-size (double-precision)
+ floating-point number. Allowable values are -1.7976931348623157E+308
+ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to
+ 1.7976931348623157E+308.
+
+
+
+
+ A timestamp. The range is '1970-01-01 00:00:00' to sometime in the
+ year 2037
+
+
+
+
+ Date The supported range is '1000-01-01' to '9999-12-31'.
+
+
+
+
+ Time The range is '-838:59:59' to '838:59:59'.
+
+
+
+
+ DateTime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ Datetime The supported range is '1000-01-01 00:00:00' to
+ '9999-12-31 23:59:59'.
+
+
+
+
+ A year in 2- or 4-digit format (default is 4-digit). The
+ allowable values are 1901 to 2155, 0000 in the 4-digit year
+ format, and 1970-2069 if you use the 2-digit format (70-69).
+
+
+
+
+ Obsolete Use Datetime or Date type
+
+
+
+
+ A variable-length string containing 0 to 65535 characters
+
+
+
+
+ Bit-field data type
+
+
+
+
+ Vector type
+
+
+
+
+ JSON
+
+
+
+
+ New Decimal
+
+
+
+
+ An enumeration. A string object that can have only one value,
+ chosen from the list of values 'value1', 'value2', ..., NULL
+ or the special "" error value. An ENUM can have a maximum of
+ 65535 distinct values
+
+
+
+
+ A set. A string object that can have zero or more values, each
+ of which must be chosen from the list of values 'value1', 'value2',
+ ... A SET can have a maximum of 64 members.
+
+
+
+
+ A binary column with a maximum length of 255 (2^8 - 1)
+ characters
+
+
+
+
+ A binary column with a maximum length of 16777215 (2^24 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) bytes.
+
+
+
+
+ A binary column with a maximum length of 65535 (2^16 - 1) bytes.
+
+
+
+
+ A variable-length string containing 0 to 255 bytes.
+
+
+
+
+ A fixed-length string.
+
+
+
+
+ Geometric (GIS) data type.
+
+
+
+
+ Unsigned 8-bit value.
+
+
+
+
+ Unsigned 16-bit value.
+
+
+
+
+ Unsigned 24-bit value.
+
+
+
+
+ Unsigned 32-bit value.
+
+
+
+
+ Unsigned 64-bit value.
+
+
+
+
+ Fixed length binary string.
+
+
+
+
+ Variable length binary string.
+
+
+
+
+ A text column with a maximum length of 255 (2^8 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 16777215 (2^24 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 4294967295 or
+ 4G (2^32 - 1) characters.
+
+
+
+
+ A text column with a maximum length of 65535 (2^16 - 1) characters.
+
+
+
+
+ A guid column.
+
+
+
+
+ Allows the user to specify the type of connection that should
+ be used.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ TCP/IP style connection. Works everywhere.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Named pipe connection. Works only on Windows systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Unix domain socket connection. Works only with Unix systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ Shared memory connection. Currently works only with Windows systems.
+
+
+
+
+ SSL options for connection.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Do not use SSL.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Use SSL, if server supports it. This option is only available for the classic protocol.
+
+
+
+
+ Always use SSL. Deny connection if server does not support SSL.
+ Do not perform server certificate validation.
+ This is the default SSL mode when the same isn't specified as part of the connection string.
+
+
+
+
+ Always use SSL. Validate server SSL certificate, but different host name mismatch.
+
+
+
+
+ Always use SSL and perform full certificate validation.
+
+
+
+
+ Specifies the connection types supported
+
+
+
+
+ Use TCP/IP sockets.
+
+
+
+
+ Use client library.
+
+
+
+
+ Use MySQL embedded server.
+
+
+
+
+ Defines the location of the certificate store.
+
+
+
+
+ Do not use certificate store.
+
+
+
+
+ Use certificate store for the current user.
+
+
+
+
+ User certificate store for the machine.
+
+
+
+
+ Specifies the authentication mechanism that should be used.
+
+
+
+
+ If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism;
+ otherwise, it tries to use MYSQL41 and then SHA256_MEMORY.
+
+
+
+
+ Authenticate using PLAIN.
+
+
+
+
+ Authenticate using MYSQL41.
+
+
+
+
+ Authenticate using EXTERNAL.
+
+
+
+
+ Authenticate using SHA256_MEMORY.
+
+
+
+
+ Defines waiting options that may be used with row locking options.
+
+
+
+
+ Waits until the blocking transaction releases the row lock.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ failing with an error if a requested row is locked.
+
+
+
+
+ Never waits to acquire a row lock. The query executes immediately,
+ removing locked rows from the result set.
+
+
+
+
+ Defines the type of compression used when data is exchanged between client and server.
+
+
+
+
+ Uses compression if client and server are able to reach a concensus. Otherwise, compression
+ is not used.
+
+
+
+
+ Enforces the use of compression. If no concensus is reached, an error is raised.
+
+
+
+
+ Disables compression.
+
+
+
+
+ Defines the compression algorithms that can be used.
+
+
+
+
+ The warnings that cause a connection to close.
+
+
+
+
+ Controls which column type should be read as type System.Guid.
+
+
+
+
+ Same as Char36 when OldGuids equals False, otherwise, the same as LittleEndianBinary16.
+
+
+
+
+ No column types are read or written as type Guid.
+
+
+
+
+ Char(36) columns are read or written as type Guid using lowercase hex with hyphens, which match UUID().
+
+
+
+
+ Char(32) columns are read or written as type Guid using lowercase hex without hyphens.
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order, which matches UUID_TO_BIN(x).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using big-endian byte order
+ with time parts swapped, which matches UUID_TO_BIN(x,1).
+
+
+
+
+ Binary(16) columns are read or written as type Guid using little-endian byte order,
+ that is, the byte order used by System.Guid.ToByteArray and System.Guid.#ctor(System.Byte[]).
+
+
+
+
+ Defines the different APIs that can be used for Kerberos authentication.
+
+
+
+
+ Use and then fall back to in case of error.
+
+
+
+
+ Use MS Security Support Provider Interface (SSPI).
+
+
+
+
+ Use Generic Security Services API (GSSAPI) through MIT Kerberos library.
+
+
+
+
+ Collection of error codes that can be returned by the server
+
+
+
+
+
+
+
+
+
+
+ Error level
+
+
+
+
+ Error code
+
+
+
+
+ Error message
+
+
+
+
+ Provides a reference to error codes returned by MySQL.
+
+
+
+
+ ER_HASHCHK
+
+
+
+ ER_NISAMCHK
+
+
+
+ ER_NO
+
+
+
+ ER_YES
+
+
+ The file couldn't be created.
+ ER_CANT_CREATE_FILE
+
+
+ The table couldn't be created.
+ ER_CANT_CREATE_TABLE
+
+
+ The database couldn't be created.
+ ER_CANT_CREATE_DB
+
+
+ The database couldn't be created, it already exists.
+ ER_DB_CREATE_EXISTS
+
+
+ The database couldn't be dropped, it doesn't exist.
+ ER_DB_DROP_EXISTS
+
+
+ The database couldn't be dropped, the file can't be deleted.
+ ER_DB_DROP_DELETE
+
+
+ The database couldn't be dropped, the directory can't be deleted.
+ ER_DB_DROP_RMDIR
+
+
+ The file couldn't be deleted.
+ ER_CANT_DELETE_FILE
+
+
+ The record couldn't be read from the system table.
+ ER_CANT_FIND_SYSTEM_REC
+
+
+ The status couldn't be retrieved.
+ ER_CANT_GET_STAT
+
+
+ The working directory couldn't be retrieved.
+ ER_CANT_GET_WD
+
+
+ The file couldn't be locked.
+ ER_CANT_LOCK
+
+
+ The file couldn't be opened.
+ ER_CANT_OPEN_FILE
+
+
+ The file couldn't be found.
+ ER_FILE_NOT_FOUND
+
+
+ The directory couldn't be read.
+ ER_CANT_READ_DIR
+
+
+ The working directory couldn't be entered.
+ ER_CANT_SET_WD
+
+
+ The record changed since it was last read.
+ ER_CHECKREAD
+
+
+ The disk is full.
+ ER_DISK_FULL
+
+
+
+ There is already a key with the given values.
+
+
+
+ An error occurred when closing the file.
+ ER_ERROR_ON_CLOSE
+
+
+ An error occurred when reading from the file.
+ ER_ERROR_ON_READ
+
+
+ An error occurred when renaming then file.
+ ER_ERROR_ON_RENAME
+
+
+ An error occurred when writing to the file.
+ ER_ERROR_ON_WRITE
+
+
+ The file is in use.
+ ER_FILE_USED
+
+
+ Sorting has been aborted.
+ ER_FILSORT_ABORT
+
+
+ The view doesn't exist.
+ ER_FORM_NOT_FOUND
+
+
+ Got the specified error from the table storage engine.
+ ER_GET_ERRNO
+
+
+ The table storage engine doesn't support the specified option.
+ ER_ILLEGAL_HA
+
+
+
+ The specified key was not found.
+
+
+
+ The file contains incorrect information.
+ ER_NOT_FORM_FILE
+
+
+ The key file is incorrect for the table, it should be repaired.
+ ER_NOT_KEYFILE
+
+
+ The key file is old for the table, it should be repaired.
+ ER_OLD_KEYFILE
+
+
+ The table is read-only
+ ER_OPEN_AS_READONLY
+
+
+ The server is out of memory, it should be restarted.
+ ER_OUTOFMEMORY
+
+
+ The server is out of sort-memory, the sort buffer size should be increased.
+ ER_OUT_OF_SORTMEMORY
+
+
+ An unexpected EOF was found when reading from the file.
+ ER_UNEXPECTED_EOF
+
+
+ Too many connections are open.
+ ER_CON_COUNT_ERROR
+
+
+ The server is out of resources, check if MySql or some other process is using all available memory.
+ ER_OUT_OF_RESOURCES
+
+
+
+ Given when the connection is unable to successfully connect to host.
+
+
+
+ The handshake was invalid.
+ ER_HANDSHAKE_ERROR
+
+
+ Access was denied for the specified user using the specified database.
+ ER_DBACCESS_DENIED_ERROR
+
+
+
+ Normally returned when an incorrect password is given
+
+
+
+ No database has been selected.
+ ER_NO_DB_ERROR
+
+
+ The command is unknown.
+ ER_UNKNOWN_COM_ERROR
+
+
+ The specified column cannot be NULL.
+ ER_BAD_NULL_ERROR
+
+
+ The specified database is not known.
+
+
+ The specified table already exists.
+ ER_TABLE_EXISTS_ERROR
+
+
+ The specified table is unknown.
+ ER_BAD_TABLE_ERROR
+
+
+ The specified column is ambiguous.
+ ER_NON_UNIQ_ERROR
+
+
+ The server is currently being shutdown.
+ ER_SERVER_SHUTDOWN
+
+
+ The specified columns is unknown.
+ ER_BAD_FIELD_ERROR
+
+
+ The specified column isn't in GROUP BY.
+ ER_WRONG_FIELD_WITH_GROUP
+
+
+ The specified columns cannot be grouped on.
+ ER_WRONG_GROUP_FIELD
+
+
+ There are sum functions and columns in the same statement.
+ ER_WRONG_SUM_SELECT
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT
+
+
+ The identifier name is too long.
+ ER_TOO_LONG_IDENT
+
+
+ The column name is duplicated.
+ ER_DUP_FIELDNAME
+
+
+
+ Duplicate Key Name
+
+
+
+
+ Duplicate Key Entry
+
+
+
+ The column specifier is incorrect.
+ ER_WRONG_FIELD_SPEC
+
+
+ An error occurred when parsing the statement.
+ ER_PARSE_ERROR
+
+
+ The statement is empty.
+ ER_EMPTY_QUERY
+
+
+ The table alias isn't unique.
+ ER_NONUNIQ_TABLE
+
+
+ The default value is invalid for the specified field.
+ ER_INVALID_DEFAULT
+
+
+ The table has multiple primary keys defined.
+ ER_MULTIPLE_PRI_KEY
+
+
+ Too many keys were defined for the table.
+ ER_TOO_MANY_KEYS
+
+
+ Too many parts to the keys were defined for the table.
+ ER_TOO_MANY_KEY_PARTS
+
+
+ The specified key is too long
+ ER_TOO_LONG_KEY
+
+
+ The specified key column doesn't exist in the table.
+ ER_KEY_COLUMN_DOES_NOT_EXITS
+
+
+ The BLOB column was used as a key, this can't be done.
+ ER_BLOB_USED_AS_KEY
+
+
+ The column length is too big for the specified column type.
+ ER_TOO_BIG_FIELDLENGTH
+
+
+ There can only be one auto-column, and it must be defined as a PK.
+ ER_WRONG_AUTO_KEY
+
+
+ The server is ready to accept connections.
+ ER_READY
+
+
+
+ ER_NORMAL_SHUTDOWN
+
+
+ The server received the specified signal and is aborting.
+ ER_GOT_SIGNAL
+
+
+ The server shutdown is complete.
+ ER_SHUTDOWN_COMPLETE
+
+
+ The server is forcing close of the specified thread.
+ ER_FORCING_CLOSE
+
+
+ An error occurred when creating the IP socket.
+ ER_IPSOCK_ERROR
+
+
+ The table has no index like the one used in CREATE INDEX.
+ ER_NO_SUCH_INDEX
+
+
+ The field separator argument is not what is expected, check the manual.
+ ER_WRONG_FIELD_TERMINATORS
+
+
+ The BLOB columns must terminated, fixed row lengths cannot be used.
+ ER_BLOBS_AND_NO_TERMINATED
+
+
+ The text file cannot be read.
+ ER_TEXTFILE_NOT_READABLE
+
+
+ The specified file already exists.
+ ER_FILE_EXISTS_ERROR
+
+
+ Information returned by the LOAD statement.
+ ER_LOAD_INFO
+
+
+ Information returned by an UPDATE statement.
+ ER_ALTER_INFO
+
+
+ The prefix key is incorrect.
+ ER_WRONG_SUB_KEY
+
+
+ All columns cannot be removed from a table, use DROP TABLE instead.
+ ER_CANT_REMOVE_ALL_FIELDS
+
+
+ Cannot DROP, check that the column or key exists.
+ ER_CANT_DROP_FIELD_OR_KEY
+
+
+ Information returned by an INSERT statement.
+ ER_INSERT_INFO
+
+
+ The target table cannot be specified for update in FROM clause.
+ ER_UPDATE_TABLE_USED
+
+
+ The specified thread ID is unknown.
+ ER_NO_SUCH_THREAD
+
+
+ The thread cannot be killed, the current user is not the owner.
+ ER_KILL_DENIED_ERROR
+
+
+ No tables used in the statement.
+ ER_NO_TABLES_USED
+
+
+ Too many string have been used for the specified column and SET.
+ ER_TOO_BIG_SET
+
+
+ A unique filename couldn't be generated.
+ ER_NO_UNIQUE_LOGFILE
+
+
+ The specified table was locked with a READ lock, and can't be updated.
+ ER_TABLE_NOT_LOCKED_FOR_WRITE
+
+
+ The specified table was not locked with LOCK TABLES.
+ ER_TABLE_NOT_LOCKED
+
+
+ BLOB and Text columns cannot have a default value.
+ ER_BLOB_CANT_HAVE_DEFAULT
+
+
+ The specified database name is incorrect.
+ ER_WRONG_DB_NAME
+
+
+ The specified table name is incorrect.
+ ER_WRONG_TABLE_NAME
+
+
+ The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok.
+ ER_TOO_BIG_SELECT
+
+
+ An unknown error occurred.
+ ER_UNKNOWN_ERROR
+
+
+ The specified procedure is unknown.
+ ER_UNKNOWN_PROCEDURE
+
+
+ The number of parameters provided for the specified procedure is incorrect.
+ ER_WRONG_PARAMCOUNT_TO_PROCEDURE
+
+
+ The parameters provided for the specified procedure are incorrect.
+ ER_WRONG_PARAMETERS_TO_PROCEDURE
+
+
+ The specified table is unknown.
+ ER_UNKNOWN_TABLE
+
+
+ The specified column has been specified twice.
+ ER_FIELD_SPECIFIED_TWICE
+
+
+ The group function has been incorrectly used.
+ ER_INVALID_GROUP_FUNC_USE
+
+
+ The specified table uses an extension that doesn't exist in this MySQL version.
+ ER_UNSUPPORTED_EXTENSION
+
+
+ The table must have at least one column.
+ ER_TABLE_MUST_HAVE_COLUMNS
+
+
+ The specified table is full.
+ ER_RECORD_FILE_FULL
+
+
+ The specified character set is unknown.
+ ER_UNKNOWN_CHARACTER_SET
+
+
+ Too many tables, MySQL can only use the specified number of tables in a JOIN.
+ ER_TOO_MANY_TABLES
+
+
+ Too many columns
+ ER_TOO_MANY_FIELDS
+
+
+ The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS.
+ ER_TOO_BIG_ROWSIZE
+
+
+ A thread stack overrun occurred. Stack statistics are specified.
+ ER_STACK_OVERRUN
+
+
+ A cross dependency was found in the OUTER JOIN, examine the ON conditions.
+ ER_WRONG_OUTER_JOIN
+
+
+ The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler.
+ ER_NULL_COLUMN_IN_INDEX
+
+
+ The specified user defined function cannot be loaded.
+ ER_CANT_FIND_UDF
+
+
+ The specified user defined function cannot be initialised.
+ ER_CANT_INITIALIZE_UDF
+
+
+ No paths are allowed for the shared library.
+ ER_UDF_NO_PATHS
+
+
+ The specified user defined function already exists.
+ ER_UDF_EXISTS
+
+
+ The specified shared library cannot be opened.
+ ER_CANT_OPEN_LIBRARY
+
+
+ The specified symbol cannot be found in the library.
+ ER_CANT_FIND_DL_ENTRY
+
+
+ The specified function is not defined.
+ ER_FUNCTION_NOT_DEFINED
+
+
+ The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'.
+ ER_HOST_IS_BLOCKED
+
+
+
+ The given host is not allowed to connect
+
+
+
+
+ The anonymous user is not allowed to connect
+
+
+
+
+ The given password is not allowed
+
+
+
+
+ The given password does not match
+
+
+
+ Information returned by an UPDATE statement.
+ ER_UPDATE_INFO
+
+
+ A new thread couldn't be created.
+ ER_CANT_CREATE_THREAD
+
+
+ The column count doesn't match the value count.
+ ER_WRONG_VALUE_COUNT_ON_ROW
+
+
+ The specified table can't be re-opened.
+ ER_CANT_REOPEN_TABLE
+
+
+ The NULL value has been used incorrectly.
+ ER_INVALID_USE_OF_NULL
+
+
+ The regular expression contains an error.
+ ER_REGEXP_ERROR
+
+
+ GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause.
+ ER_MIX_OF_GROUP_FUNC_AND_FIELDS
+
+
+
+ ER_NONEXISTING_GRANT
+
+
+
+ ER_TABLEACCESS_DENIED_ERROR
+
+
+
+ ER_COLUMNACCESS_DENIED_ERROR
+
+
+
+ ER_ILLEGAL_GRANT_FOR_TABLE
+
+
+
+ ER_GRANT_WRONG_HOST_OR_USER
+
+
+
+ ER_NO_SUCH_TABLE
+
+
+
+ ER_NONEXISTING_TABLE_GRANT
+
+
+
+ ER_NOT_ALLOWED_COMMAND
+
+
+
+ ER_SYNTAX_ERROR
+
+
+
+ ER_DELAYED_CANT_CHANGE_LOCK
+
+
+
+ ER_TOO_MANY_DELAYED_THREADS
+
+
+
+ ER_ABORTING_CONNECTION
+
+
+
+ An attempt was made to send or receive a packet larger than
+ max_allowed_packet_size
+
+
+
+
+ ER_NET_READ_ERROR_FROM_PIPE
+
+
+
+ ER_NET_FCNTL_ERROR
+
+
+
+ ER_NET_PACKETS_OUT_OF_ORDER
+
+
+
+ ER_NET_UNCOMPRESS_ERROR
+
+
+
+ ER_NET_READ_ERROR
+
+
+
+ ER_NET_READ_INTERRUPTED
+
+
+
+ ER_NET_ERROR_ON_WRITE
+
+
+
+ ER_NET_WRITE_INTERRUPTED
+
+
+
+ ER_TOO_LONG_STRING
+
+
+
+ ER_TABLE_CANT_HANDLE_BLOB
+
+
+
+ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT
+
+
+
+ ER_DELAYED_INSERT_TABLE_LOCKED
+
+
+
+ ER_WRONG_COLUMN_NAME
+
+
+
+ ER_WRONG_KEY_COLUMN
+
+
+
+ ER_WRONG_MRG_TABLE
+
+
+
+ ER_DUP_UNIQUE
+
+
+
+ ER_BLOB_KEY_WITHOUT_LENGTH
+
+
+
+ ER_PRIMARY_CANT_HAVE_NULL
+
+
+
+ ER_TOO_MANY_ROWS
+
+
+
+ ER_REQUIRES_PRIMARY_KEY
+
+
+
+ ER_NO_RAID_COMPILED
+
+
+
+ ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE
+
+
+
+ ER_KEY_DOES_NOT_EXITS
+
+
+
+ ER_CHECK_NO_SUCH_TABLE
+
+
+
+ ER_CHECK_NOT_IMPLEMENTED
+
+
+
+ ER_CANT_DO_THIS_DURING_AN_TRANSACTION
+
+
+
+ ER_ERROR_DURING_COMMIT
+
+
+
+ ER_ERROR_DURING_ROLLBACK
+
+
+
+ ER_ERROR_DURING_FLUSH_LOGS
+
+
+
+ ER_ERROR_DURING_CHECKPOINT
+
+
+
+ ER_NEW_ABORTING_CONNECTION
+
+
+
+ ER_DUMP_NOT_IMPLEMENTED
+
+
+
+ ER_FLUSH_SOURCE_BINLOG_CLOSED
+
+
+
+ ER_INDEX_REBUILD
+
+
+
+ ER_SOURCE
+
+
+
+ ER_SOURCE_NET_READ
+
+
+
+ ER_SOURCE_NET_WRITE
+
+
+
+ ER_FT_MATCHING_KEY_NOT_FOUND
+
+
+
+ ER_LOCK_OR_ACTIVE_TRANSACTION
+
+
+
+ ER_UNKNOWN_SYSTEM_VARIABLE
+
+
+
+ ER_CRASHED_ON_USAGE
+
+
+
+ ER_CRASHED_ON_REPAIR
+
+
+
+ ER_WARNING_NOT_COMPLETE_ROLLBACK
+
+
+
+ ER_TRANS_CACHE_FULL
+
+
+
+ ER_REPLICA_MUST_STOP
+
+
+
+ ER_REPLICA_NOT_RUNNING
+
+
+
+ ER_BAD_REPLICA
+
+
+
+ ER_SOURCE_INFO
+
+
+
+ ER_REPLICA_THREAD
+
+
+
+ ER_TOO_MANY_USER_CONNECTIONS
+
+
+
+ ER_SET_CONSTANTS_ONLY
+
+
+
+ ER_LOCK_WAIT_TIMEOUT
+
+
+
+ ER_LOCK_TABLE_FULL
+
+
+
+ ER_READ_ONLY_TRANSACTION
+
+
+
+ ER_DROP_DB_WITH_READ_LOCK
+
+
+
+ ER_CREATE_DB_WITH_READ_LOCK
+
+
+
+ ER_WRONG_ARGUMENTS
+
+
+
+ ER_NO_PERMISSION_TO_CREATE_USER
+
+
+
+ ER_UNION_TABLES_IN_DIFFERENT_DIR
+
+
+
+ ER_LOCK_DEADLOCK
+
+
+
+ ER_TABLE_CANT_HANDLE_FT
+
+
+
+ ER_CANNOT_ADD_FOREIGN
+
+
+
+ ER_NO_REFERENCED_ROW
+
+
+
+ ER_ROW_IS_REFERENCED
+
+
+
+ ER_CONNECT_TO_SOURCE
+
+
+
+ ER_QUERY_ON_SOURCE
+
+
+
+ ER_ERROR_WHEN_EXECUTING_COMMAND
+
+
+
+ ER_WRONG_USAGE
+
+
+
+ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
+
+
+
+ ER_CANT_UPDATE_WITH_READLOCK
+
+
+
+ ER_MIXING_NOT_ALLOWED
+
+
+
+ ER_DUP_ARGUMENT
+
+
+
+ ER_USER_LIMIT_REACHED
+
+
+
+ ER_SPECIFIC_ACCESS_DENIED_ERROR
+
+
+
+ ER_LOCAL_VARIABLE
+
+
+
+ ER_GLOBAL_VARIABLE
+
+
+
+ ER_NO_DEFAULT
+
+
+
+ ER_WRONG_VALUE_FOR_VAR
+
+
+
+ ER_WRONG_TYPE_FOR_VAR
+
+
+
+ ER_VAR_CANT_BE_READ
+
+
+
+ ER_CANT_USE_OPTION_HERE
+
+
+
+ ER_NOT_SUPPORTED_YET
+
+
+
+ ER_SOURCE_FATAL_ERROR_READING_BINLOG
+
+
+
+ ER_REPLICA_IGNORED_TABLE
+
+
+
+ ER_INCORRECT_GLOBAL_LOCAL_VAR
+
+
+
+ ER_WRONG_FK_DEF
+
+
+
+ ER_KEY_REF_DO_NOT_MATCH_TABLE_REF
+
+
+
+ ER_OPERAND_COLUMNS
+
+
+
+ ER_SUBQUERY_NO_1_ROW
+
+
+
+ ER_UNKNOWN_STMT_HANDLER
+
+
+
+ ER_CORRUPT_HELP_DB
+
+
+
+ ER_CYCLIC_REFERENCE
+
+
+
+ ER_AUTO_CONVERT
+
+
+
+ ER_ILLEGAL_REFERENCE
+
+
+
+ ER_DERIVED_MUST_HAVE_ALIAS
+
+
+
+ ER_SELECT_REDUCED
+
+
+
+ ER_TABLENAME_NOT_ALLOWED_HERE
+
+
+
+ ER_NOT_SUPPORTED_AUTH_MODE
+
+
+
+ ER_SPATIAL_CANT_HAVE_NULL
+
+
+
+ ER_COLLATION_CHARSET_MISMATCH
+
+
+
+ ER_REPLICA_WAS_RUNNING
+
+
+
+ ER_REPLICA_WAS_NOT_RUNNING
+
+
+
+ ER_TOO_BIG_FOR_UNCOMPRESS
+
+
+
+ ER_ZLIB_Z_MEM_ERROR
+
+
+
+ ER_ZLIB_Z_BUF_ERROR
+
+
+
+ ER_ZLIB_Z_DATA_ERROR
+
+
+
+ ER_CUT_VALUE_GROUP_CONCAT
+
+
+
+ ER_WARN_TOO_FEW_RECORDS
+
+
+
+ ER_WARN_TOO_MANY_RECORDS
+
+
+
+ ER_WARN_NULL_TO_NOTNULL
+
+
+
+ ER_WARN_DATA_OUT_OF_RANGE
+
+
+
+ WARN_DATA_TRUNCATED
+
+
+
+ ER_WARN_USING_OTHER_HANDLER
+
+
+
+ ER_CANT_AGGREGATE_2COLLATIONS
+
+
+
+ ER_DROP_USER
+
+
+
+ ER_REVOKE_GRANTS
+
+
+
+ ER_CANT_AGGREGATE_3COLLATIONS
+
+
+
+ ER_CANT_AGGREGATE_NCOLLATIONS
+
+
+
+ ER_VARIABLE_IS_NOT_STRUCT
+
+
+
+ ER_UNKNOWN_COLLATION
+
+
+
+ ER_REPLICA_IGNORED_SSL_PARAMS
+
+
+
+ ER_SERVER_IS_IN_SECURE_AUTH_MODE
+
+
+
+ ER_WARN_FIELD_RESOLVED
+
+
+
+ ER_BAD_REPLICA_UNTIL_COND
+
+
+
+ ER_MISSING_SKIP_REPLICA
+
+
+
+ ER_UNTIL_COND_IGNORED
+
+
+
+ ER_WRONG_NAME_FOR_INDEX
+
+
+
+ ER_WRONG_NAME_FOR_CATALOG
+
+
+
+ ER_WARN_QC_RESIZE
+
+
+
+ ER_BAD_FT_COLUMN
+
+
+
+ ER_UNKNOWN_KEY_CACHE
+
+
+
+ ER_WARN_HOSTNAME_WONT_WORK
+
+
+
+ ER_UNKNOWN_STORAGE_ENGINE
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX
+
+
+
+ ER_NON_UPDATABLE_TABLE
+
+
+
+ ER_FEATURE_DISABLED
+
+
+
+ ER_OPTION_PREVENTS_STATEMENT
+
+
+
+ ER_DUPLICATED_VALUE_IN_TYPE
+
+
+
+ ER_TRUNCATED_WRONG_VALUE
+
+
+
+ ER_TOO_MUCH_AUTO_TIMESTAMP_COLS
+
+
+
+ ER_INVALID_ON_UPDATE
+
+
+
+ ER_UNSUPPORTED_PS
+
+
+
+ ER_GET_ERRMSG
+
+
+
+ ER_GET_TEMPORARY_ERRMSG
+
+
+
+ ER_UNKNOWN_TIME_ZONE
+
+
+
+ ER_WARN_INVALID_TIMESTAMP
+
+
+
+ ER_INVALID_CHARACTER_STRING
+
+
+
+ ER_WARN_ALLOWED_PACKET_OVERFLOWED
+
+
+
+ ER_CONFLICTING_DECLARATIONS
+
+
+
+ ER_SP_NO_RECURSIVE_CREATE
+
+
+
+ ER_SP_ALREADY_EXISTS
+
+
+
+ ER_SP_DOES_NOT_EXIST
+
+
+
+ ER_SP_DROP_FAILED
+
+
+
+ ER_SP_STORE_FAILED
+
+
+
+ ER_SP_LILABEL_MISMATCH
+
+
+
+ ER_SP_LABEL_REDEFINE
+
+
+
+ ER_SP_LABEL_MISMATCH
+
+
+
+ ER_SP_UNINIT_VAR
+
+
+
+ ER_SP_BADSELECT
+
+
+
+ ER_SP_BADRETURN
+
+
+
+ ER_SP_BADSTATEMENT
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_IGNORED
+
+
+
+ ER_UPDATE_LOG_DEPRECATED_TRANSLATED
+
+
+
+ ER_QUERY_INTERRUPTED
+
+
+
+ ER_SP_WRONG_NO_OF_ARGS
+
+
+
+ ER_SP_COND_MISMATCH
+
+
+
+ ER_SP_NORETURN
+
+
+
+ ER_SP_NORETURNEND
+
+
+
+ ER_SP_BAD_CURSOR_QUERY
+
+
+
+ ER_SP_BAD_CURSOR_SELECT
+
+
+
+ ER_SP_CURSOR_MISMATCH
+
+
+
+ ER_SP_CURSOR_ALREADY_OPEN
+
+
+
+ ER_SP_CURSOR_NOT_OPEN
+
+
+
+ ER_SP_UNDECLARED_VAR
+
+
+
+ ER_SP_WRONG_NO_OF_FETCH_ARGS
+
+
+
+ ER_SP_FETCH_NO_DATA
+
+
+
+ ER_SP_DUP_PARAM
+
+
+
+ ER_SP_DUP_VAR
+
+
+
+ ER_SP_DUP_COND
+
+
+
+ ER_SP_DUP_CURS
+
+
+
+ ER_SP_CANT_ALTER
+
+
+
+ ER_SP_SUBSELECT_NYI
+
+
+
+ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_SP_VARCOND_AFTER_CURSHNDLR
+
+
+
+ ER_SP_CURSOR_AFTER_HANDLER
+
+
+
+ ER_SP_CASE_NOT_FOUND
+
+
+
+ ER_FPARSER_TOO_BIG_FILE
+
+
+
+ ER_FPARSER_BAD_HEADER
+
+
+
+ ER_FPARSER_EOF_IN_COMMENT
+
+
+
+ ER_FPARSER_ERROR_IN_PARAMETER
+
+
+
+ ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER
+
+
+
+ ER_VIEW_NO_EXPLAIN
+
+
+
+ ER_FRM_UNKNOWN_TYPE
+
+
+
+ ER_WRONG_OBJECT
+
+
+
+ ER_NONUPDATEABLE_COLUMN
+
+
+
+ ER_VIEW_SELECT_DERIVED
+
+
+
+ ER_VIEW_SELECT_CLAUSE
+
+
+
+ ER_VIEW_SELECT_VARIABLE
+
+
+
+ ER_VIEW_SELECT_TMPTABLE
+
+
+
+ ER_VIEW_WRONG_LIST
+
+
+
+ ER_WARN_VIEW_MERGE
+
+
+
+ ER_WARN_VIEW_WITHOUT_KEY
+
+
+
+ ER_VIEW_INVALID
+
+
+
+ ER_SP_NO_DROP_SP
+
+
+
+ ER_SP_GOTO_IN_HNDLR
+
+
+
+ ER_TRG_ALREADY_EXISTS
+
+
+
+ ER_TRG_DOES_NOT_EXIST
+
+
+
+ ER_TRG_ON_VIEW_OR_TEMP_TABLE
+
+
+
+ ER_TRG_CANT_CHANGE_ROW
+
+
+
+ ER_TRG_NO_SUCH_ROW_IN_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_FIELD
+
+
+
+ ER_DIVISION_BY_ZERO
+
+
+
+ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
+
+
+
+ ER_ILLEGAL_VALUE_FOR_TYPE
+
+
+
+ ER_VIEW_NONUPD_CHECK
+
+
+
+ ER_VIEW_CHECK_FAILED
+
+
+
+ ER_PROCACCESS_DENIED_ERROR
+
+
+
+ ER_RELAY_LOG_FAIL
+
+
+
+ ER_PASSWD_LENGTH
+
+
+
+ ER_UNKNOWN_TARGET_BINLOG
+
+
+
+ ER_IO_ERR_LOG_INDEX_READ
+
+
+
+ ER_BINLOG_PURGE_PROHIBITED
+
+
+
+ ER_FSEEK_FAIL
+
+
+
+ ER_BINLOG_PURGE_FATAL_ERR
+
+
+
+ ER_LOG_IN_USE
+
+
+
+ ER_LOG_PURGE_UNKNOWN_ERR
+
+
+
+ ER_RELAY_LOG_INIT
+
+
+
+ ER_NO_BINARY_LOGGING
+
+
+
+ ER_RESERVED_SYNTAX
+
+
+
+ ER_WSAS_FAILED
+
+
+
+ ER_DIFF_GROUPS_PROC
+
+
+
+ ER_NO_GROUP_FOR_PROC
+
+
+
+ ER_ORDER_WITH_PROC
+
+
+
+ ER_LOGGING_PROHIBIT_CHANGING_OF
+
+
+
+ ER_NO_FILE_MAPPING
+
+
+
+ ER_WRONG_MAGIC
+
+
+
+ ER_PS_MANY_PARAM
+
+
+
+ ER_KEY_PART_0
+
+
+
+ ER_VIEW_CHECKSUM
+
+
+
+ ER_VIEW_MULTIUPDATE
+
+
+
+ ER_VIEW_NO_INSERT_FIELD_LIST
+
+
+
+ ER_VIEW_DELETE_MERGE_VIEW
+
+
+
+ ER_CANNOT_USER
+
+
+
+ ER_XAER_NOTA
+
+
+
+ ER_XAER_INVAL
+
+
+
+ ER_XAER_RMFAIL
+
+
+
+ ER_XAER_OUTSIDE
+
+
+
+ ER_XAER_RMERR
+
+
+
+ ER_XA_RBROLLBACK
+
+
+
+ ER_NONEXISTING_PROC_GRANT
+
+
+
+ ER_PROC_AUTO_GRANT_FAIL
+
+
+
+ ER_PROC_AUTO_REVOKE_FAIL
+
+
+
+ ER_DATA_TOO_LONG
+
+
+
+ ER_SP_BAD_SQLSTATE
+
+
+
+ ER_STARTUP
+
+
+
+ ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR
+
+
+
+ ER_CANT_CREATE_USER_WITH_GRANT
+
+
+
+ ER_WRONG_VALUE_FOR_TYPE
+
+
+
+ ER_TABLE_DEF_CHANGED
+
+
+
+ ER_SP_DUP_HANDLER
+
+
+
+ ER_SP_NOT_VAR_ARG
+
+
+
+ ER_SP_NO_RETSET
+
+
+
+ ER_CANT_CREATE_GEOMETRY_OBJECT
+
+
+
+ ER_FAILED_ROUTINE_BREAK_BINLOG
+
+
+
+ ER_BINLOG_UNSAFE_ROUTINE
+
+
+
+ ER_BINLOG_CREATE_ROUTINE_NEED_SUPER
+
+
+
+ ER_EXEC_STMT_WITH_OPEN_CURSOR
+
+
+
+ ER_STMT_HAS_NO_OPEN_CURSOR
+
+
+
+ ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
+
+
+
+ ER_NO_DEFAULT_FOR_VIEW_FIELD
+
+
+
+ ER_SP_NO_RECURSION
+
+
+
+ ER_TOO_BIG_SCALE
+
+
+
+ ER_TOO_BIG_PRECISION
+
+
+
+ ER_M_BIGGER_THAN_D
+
+
+
+ ER_WRONG_LOCK_OF_SYSTEM_TABLE
+
+
+
+ ER_CONNECT_TO_FOREIGN_DATA_SOURCE
+
+
+
+ ER_QUERY_ON_FOREIGN_DATA_SOURCE
+
+
+
+ ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE
+
+
+
+ ER_FOREIGN_DATA_STRING_INVALID
+
+
+
+ ER_CANT_CREATE_FEDERATED_TABLE
+
+
+
+ ER_TRG_IN_WRONG_SCHEMA
+
+
+
+ ER_STACK_OVERRUN_NEED_MORE
+
+
+
+ ER_TOO_LONG_BODY
+
+
+
+ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE
+
+
+
+ ER_TOO_BIG_DISPLAYWIDTH
+
+
+
+ ER_XAER_DUPID
+
+
+
+ ER_DATETIME_FUNCTION_OVERFLOW
+
+
+
+ ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
+
+
+
+ ER_VIEW_PREVENT_UPDATE
+
+
+
+ ER_PS_NO_RECURSION
+
+
+
+ ER_SP_CANT_SET_AUTOCOMMIT
+
+
+
+ ER_MALFORMED_DEFINER
+
+
+
+ ER_VIEW_FRM_NO_USER
+
+
+
+ ER_VIEW_OTHER_USER
+
+
+
+ ER_NO_SUCH_USER
+
+
+
+ ER_FORBID_SCHEMA_CHANGE
+
+
+
+ ER_ROW_IS_REFERENCED_2
+
+
+
+ ER_NO_REFERENCED_ROW_2
+
+
+
+ ER_SP_BAD_VAR_SHADOW
+
+
+
+ ER_TRG_NO_DEFINER
+
+
+
+ ER_OLD_FILE_FORMAT
+
+
+
+ ER_SP_RECURSION_LIMIT
+
+
+
+ ER_SP_PROC_TABLE_CORRUPT
+
+
+
+ ER_SP_WRONG_NAME
+
+
+
+ ER_TABLE_NEEDS_UPGRADE
+
+
+
+ ER_SP_NO_AGGREGATE
+
+
+
+ ER_MAX_PREPARED_STMT_COUNT_REACHED
+
+
+
+ ER_VIEW_RECURSIVE
+
+
+
+ ER_NON_GROUPING_FIELD_USED
+
+
+
+ ER_TABLE_CANT_HANDLE_SPKEYS
+
+
+
+ ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
+
+
+
+ ER_REMOVED_SPACES
+
+
+
+ ER_AUTOINC_READ_FAILED
+
+
+
+ ER_USERNAME
+
+
+
+ ER_HOSTNAME
+
+
+
+ ER_WRONG_STRING_LENGTH
+
+
+
+ ER_NON_INSERTABLE_TABLE
+
+
+
+ ER_ADMIN_WRONG_MRG_TABLE
+
+
+
+ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT
+
+
+
+ ER_NAME_BECOMES_EMPTY
+
+
+
+ ER_AMBIGUOUS_FIELD_TERM
+
+
+
+ ER_FOREIGN_SERVER_EXISTS
+
+
+
+ ER_FOREIGN_SERVER_DOESNT_EXIST
+
+
+
+ ER_ILLEGAL_HA_CREATE_OPTION
+
+
+
+ ER_PARTITION_REQUIRES_VALUES_ERROR
+
+
+
+ ER_PARTITION_WRONG_VALUES_ERROR
+
+
+
+ ER_PARTITION_MAXVALUE_ERROR
+
+
+
+ ER_PARTITION_SUBPARTITION_ERROR
+
+
+
+ ER_PARTITION_SUBPART_MIX_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_PART_ERROR
+
+
+
+ ER_PARTITION_WRONG_NO_SUBPART_ERROR
+
+
+
+ ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
+
+
+
+ ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR
+
+
+
+ ER_FIELD_NOT_FOUND_PART_ERROR
+
+
+
+ ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR
+
+
+
+ ER_INCONSISTENT_PARTITION_INFO_ERROR
+
+
+
+ ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
+
+
+
+ ER_PARTITIONS_MUST_BE_DEFINED_ERROR
+
+
+
+ ER_RANGE_NOT_INCREASING_ERROR
+
+
+
+ ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR
+
+
+
+ ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
+
+
+
+ ER_PARTITION_ENTRY_ERROR
+
+
+
+ ER_MIX_HANDLER_ERROR
+
+
+
+ ER_PARTITION_NOT_DEFINED_ERROR
+
+
+
+ ER_TOO_MANY_PARTITIONS_ERROR
+
+
+
+ ER_SUBPARTITION_ERROR
+
+
+
+ ER_CANT_CREATE_HANDLER_FILE
+
+
+
+ ER_BLOB_FIELD_IN_PART_FUNC_ERROR
+
+
+
+ ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF
+
+
+
+ ER_NO_PARTS_ERROR
+
+
+
+ ER_PARTITION_MGMT_ON_NONPARTITIONED
+
+
+
+ ER_FOREIGN_KEY_ON_PARTITIONED
+
+
+
+ ER_DROP_PARTITION_NON_EXISTENT
+
+
+
+ ER_DROP_LAST_PARTITION
+
+
+
+ ER_COALESCE_ONLY_ON_HASH_PARTITION
+
+
+
+ ER_REORG_HASH_ONLY_ON_SAME_NO
+
+
+
+ ER_REORG_NO_PARAM_ERROR
+
+
+
+ ER_ONLY_ON_RANGE_LIST_PARTITION
+
+
+
+ ER_ADD_PARTITION_SUBPART_ERROR
+
+
+
+ ER_ADD_PARTITION_NO_NEW_PARTITION
+
+
+
+ ER_COALESCE_PARTITION_NO_PARTITION
+
+
+
+ ER_REORG_PARTITION_NOT_EXIST
+
+
+
+ ER_SAME_NAME_PARTITION
+
+
+
+ ER_NO_BINLOG_ERROR
+
+
+
+ ER_CONSECUTIVE_REORG_PARTITIONS
+
+
+
+ ER_REORG_OUTSIDE_RANGE
+
+
+
+ ER_PARTITION_FUNCTION_FAILURE
+
+
+
+ ER_PART_STATE_ERROR
+
+
+
+ ER_LIMITED_PART_RANGE
+
+
+
+ ER_PLUGIN_IS_NOT_LOADED
+
+
+
+ ER_WRONG_VALUE
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE
+
+
+
+ ER_FILEGROUP_OPTION_ONLY_ONCE
+
+
+
+ ER_CREATE_FILEGROUP_FAILED
+
+
+
+ ER_DROP_FILEGROUP_FAILED
+
+
+
+ ER_TABLESPACE_AUTO_EXTEND_ERROR
+
+
+
+ ER_WRONG_SIZE_NUMBER
+
+
+
+ ER_SIZE_OVERFLOW_ERROR
+
+
+
+ ER_ALTER_FILEGROUP_FAILED
+
+
+
+ ER_BINLOG_ROW_LOGGING_FAILED
+
+
+
+ ER_BINLOG_ROW_WRONG_TABLE_DEF
+
+
+
+ ER_BINLOG_ROW_RBR_TO_SBR
+
+
+
+ ER_EVENT_ALREADY_EXISTS
+
+
+
+ ER_EVENT_STORE_FAILED
+
+
+
+ ER_EVENT_DOES_NOT_EXIST
+
+
+
+ ER_EVENT_CANT_ALTER
+
+
+
+ ER_EVENT_DROP_FAILED
+
+
+
+ ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG
+
+
+
+ ER_EVENT_ENDS_BEFORE_STARTS
+
+
+
+ ER_EVENT_EXEC_TIME_IN_THE_PAST
+
+
+
+ ER_EVENT_OPEN_TABLE_FAILED
+
+
+
+ ER_EVENT_NEITHER_M_EXPR_NOR_M_AT
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_CORRUPTED
+
+
+
+ ER_CANNOT_LOAD_FROM_TABLE
+
+
+
+ ER_EVENT_CANNOT_DELETE
+
+
+
+ ER_EVENT_COMPILE_ERROR
+
+
+
+ ER_EVENT_SAME_NAME
+
+
+
+ ER_EVENT_DATA_TOO_LONG
+
+
+
+ ER_DROP_INDEX_FK
+
+
+
+ ER_WARN_DEPRECATED_SYNTAX_WITH_VER
+
+
+
+ ER_CANT_WRITE_LOCK_LOG_TABLE
+
+
+
+ ER_CANT_LOCK_LOG_TABLE
+
+
+
+ ER_FOREIGN_DUPLICATE_KEY
+
+
+
+ ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+
+
+
+ ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
+
+
+
+ ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_NDB_CANT_SWITCH_BINLOG_FORMAT
+
+
+
+ ER_PARTITION_NO_TEMPORARY
+
+
+
+ ER_PARTITION_CONST_DOMAIN_ERROR
+
+
+
+ ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
+
+
+
+ ER_DDL_LOG_ERROR
+
+
+
+ ER_NULL_IN_VALUES_LESS_THAN
+
+
+
+ ER_WRONG_PARTITION_NAME
+
+
+
+ ER_CANT_CHANGE_TRANSACTION_ISOLATION
+
+
+
+ ER_DUP_ENTRY_AUTOINCREMENT_CASE
+
+
+
+ ER_EVENT_MODIFY_QUEUE_ERROR
+
+
+
+ ER_EVENT_SET_VAR_ERROR
+
+
+
+ ER_PARTITION_MERGE_ERROR
+
+
+
+ ER_CANT_ACTIVATE_LOG
+
+
+
+ ER_RBR_NOT_AVAILABLE
+
+
+
+ ER_BASE64_DECODE_ERROR
+
+
+
+ ER_EVENT_RECURSION_FORBIDDEN
+
+
+
+ ER_EVENTS_DB_ERROR
+
+
+
+ ER_ONLY_INTEGERS_ALLOWED
+
+
+
+ ER_UNSUPORTED_LOG_ENGINE
+
+
+
+ ER_BAD_LOG_STATEMENT
+
+
+
+ ER_CANT_RENAME_LOG_TABLE
+
+
+
+ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_NATIVE_FCT
+
+
+
+ ER_WRONG_PARAMETERS_TO_STORED_FCT
+
+
+
+ ER_NATIVE_FCT_NAME_COLLISION
+
+
+
+ ER_DUP_ENTRY_WITH_KEY_NAME
+
+
+
+ ER_BINLOG_PURGE_EMFILE
+
+
+
+ ER_EVENT_CANNOT_CREATE_IN_THE_PAST
+
+
+
+ ER_EVENT_CANNOT_ALTER_IN_THE_PAST
+
+
+
+ ER_REPLICA_INCIDENT
+
+
+
+ ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
+
+
+
+ ER_BINLOG_UNSAFE_STATEMENT
+
+
+
+ ER_REPLICA_FATAL_ERROR
+
+
+
+ ER_REPLICA_RELAY_LOG_READ_FAILURE
+
+
+
+ ER_REPLICA_RELAY_LOG_WRITE_FAILURE
+
+
+
+ ER_REPLICA_CREATE_EVENT_FAILURE
+
+
+
+ ER_REPLICA_SOURCE_COM_FAILURE
+
+
+
+ ER_BINLOG_LOGGING_IMPOSSIBLE
+
+
+
+ ER_VIEW_NO_CREATION_CTX
+
+
+
+ ER_VIEW_INVALID_CREATION_CTX
+
+
+
+ ER_SR_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CORRUPTED_FILE
+
+
+
+ ER_TRG_NO_CREATION_CTX
+
+
+
+ ER_TRG_INVALID_CREATION_CTX
+
+
+
+ ER_EVENT_INVALID_CREATION_CTX
+
+
+
+ ER_TRG_CANT_OPEN_TABLE
+
+
+
+ ER_CANT_CREATE_SROUTINE
+
+
+
+ ER_REPLICA_AMBIGOUS_EXEC_MODE
+
+
+
+ ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT
+
+
+
+ ER_REPLICA_CORRUPT_EVENT
+
+
+
+ ER_LOAD_DATA_INVALID_COLUMN
+
+
+
+ ER_LOG_PURGE_NO_FILE
+
+
+
+ ER_XA_RBTIMEOUT
+
+
+
+ ER_XA_RBDEADLOCK
+
+
+
+ ER_NEED_REPREPARE
+
+
+
+ ER_DELAYED_NOT_SUPPORTED
+
+
+
+ WARN_NO_SOURCE_INFO
+
+
+
+ WARN_OPTION_IGNORED
+
+
+
+ WARN_PLUGIN_DELETE_BUILTIN
+
+
+
+ WARN_PLUGIN_BUSY
+
+
+
+ ER_VARIABLE_IS_READONLY
+
+
+
+ ER_WARN_ENGINE_TRANSACTION_ROLLBACK
+
+
+
+ ER_REPLICA_HEARTBEAT_FAILURE
+
+
+
+ ER_REPLICA_HEARTBEAT_VALUE_OUT_OF_RANGE
+
+
+
+ ER_NDB_REPLICATION_SCHEMA_ERROR
+
+
+
+ ER_CONFLICT_FN_PARSE_ERROR
+
+
+
+ ER_EXCEPTIONS_WRITE_ERROR
+
+
+
+ ER_TOO_LONG_TABLE_COMMENT
+
+
+
+ ER_TOO_LONG_FIELD_COMMENT
+
+
+
+ ER_FUNC_INEXISTENT_NAME_COLLISION
+
+
+
+ ER_DATABASE_NAME
+
+
+
+ ER_TABLE_NAME
+
+
+
+ ER_PARTITION_NAME
+
+
+
+ ER_SUBPARTITION_NAME
+
+
+
+ ER_TEMPORARY_NAME
+
+
+
+ ER_RENAMED_NAME
+
+
+
+ ER_TOO_MANY_CONCURRENT_TRXS
+
+
+
+ WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED
+
+
+
+ ER_DEBUG_SYNC_TIMEOUT
+
+
+
+ ER_DEBUG_SYNC_HIT_LIMIT
+
+
+
+ ER_ERROR_LAST
+
+
+
+ ER_CLIENT_INTERACTION_TIMEOUT
+
+
+
+ WriteInteger
+
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Represents a parameter to a , This class cannot be inherited.
+
+
+ Parameter names are not case sensitive.
+ You can read more about it here.
+
+
+
+
+ Initializes a new instance of the class with the parameter name, the , the size, and the source column name.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ The name of the source column.
+
+
+
+ Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter.
+
+ The name of the parameter to map.
+ An that is the value of the .
+
+
+
+ Initializes a new instance of the class with the parameter name and the data type.
+
+ The name of the parameter to map.
+ One of the values.
+
+
+
+ Initializes a new instance of the class with the parameter name, the , and the size.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+
+
+
+ Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter.
+
+ The name of the parameter to map.
+ One of the values.
+ The length of the parameter.
+ One of the values.
+ true if the value of the field can be null, otherwise false.
+ The total number of digits to the left and right of the decimal point to which is resolved.
+ The total number of decimal places to which is resolved.
+ The name of the source column.
+ One of the values.
+ An that is the value of the .
+
+
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ As of MySql version 4.1 and earlier, input-only is the only valid choice.
+
+
+
+
+ Gets or sets a value indicating whether the parameter accepts null values.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+
+
+
+
+ Gets or sets the number of decimal places to which is resolved.
+
+
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+
+
+
+
+ Gets or sets the value of the parameter.
+
+
+
+
+ Returns the possible values for this parameter if this parameter is of type
+ SET or ENUM. Returns null otherwise.
+
+
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+
+
+
+
+ Sets or gets a value which indicates whether the source column is nullable.
+ This allows to correctly generate Update statements
+ for nullable columns.
+
+
+
+
+ Gets or sets the of the parameter.
+
+
+
+
+ Gets or sets the value to use when loading .
+
+
+
+
+ Clones this object.
+
+ An object that is a clone of this object.
+
+
+
+ Overridden. Gets a string containing the .
+
+
+
+
+
+ Resets the DbType property to its original settings.
+
+
+
+
+ Represents a collection of parameters relevant to a
+ as well as their respective mappings to columns in a . This class cannot be inherited.
+
+
+ The number of the parameters in the collection must be equal to the number of
+ parameter placeholders within the command text, or an exception will be generated.
+
+
+
+
+ Gets the number of MySqlParameter objects in the collection.
+
+
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+
+
+
+ Gets a value that indicates whether the object is read-only.
+
+
+
+
+ Gets a value that indicates whether the object is synchronized.
+
+
+
+
+ Gets the at the specified index.
+
+ Gets the with a specified attribute.
+ [C#] In C#, this property is the indexer for the class.
+
+
+
+
+ Gets the with the specified name.
+
+
+
+
+ Adds a to the with the parameter name, the data type, the column length, and the source column name.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The name of the source column.
+ The newly added object.
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The newly added object.
+
+
+
+ Adds a parameter and its value.
+
+ The name of the parameter.
+ The value of the parameter.
+ A object representing the provided values.
+
+
+
+ Adds a to the given the parameter name and the data type.
+
+ The name of the parameter.
+ One of the values.
+ The newly added object.
+
+
+
+ Adds a to the with the parameter name, the data type, and the column length.
+
+ The name of the parameter.
+ One of the values.
+ The length of the column.
+ The newly added object.
+
+
+
+ Removes all items from the collection.
+
+
+
+
+ Gets the location of the in the collection with a specific parameter name.
+
+ The name of the object to retrieve.
+ The zero-based location of the in the collection.
+
+
+
+ Gets the location of a in the collection.
+
+ The object to locate.
+ The zero-based location of the in the collection.
+ Gets the location of a in the collection.
+
+
+
+ This method will update all the items in the index hashes when
+ we insert a parameter somewhere in the middle
+
+
+
+
+
+
+ Adds an array of values to the end of the .
+
+
+
+
+
+ Retrieve the parameter with the given name.
+
+
+
+
+
+
+ Adds the specified object to the .
+
+ The to add to the collection.
+ The index of the new object.
+
+
+
+ Gets a value indicating whether a with the specified parameter name exists in the collection.
+
+ The name of the object to find.
+ true if the collection contains the parameter; otherwise, false.
+
+
+
+ Gets a value indicating whether a MySqlParameter exists in the collection.
+
+ The value of the object to find.
+ true if the collection contains the object; otherwise, false.
+ Gets a value indicating whether a exists in the collection.
+
+
+
+ Copies MySqlParameter objects from the MySqlParameterCollection to the specified array.
+
+
+
+
+
+
+ Returns an enumerator that iterates through the .
+
+
+
+
+
+ Inserts a MySqlParameter into the collection at the specified index.
+
+
+
+
+
+
+ Removes the specified MySqlParameter from the collection.
+
+
+
+
+
+ Removes the specified from the collection using the parameter name.
+
+ The name of the object to retrieve.
+
+
+
+ Removes the specified from the collection using a specific index.
+
+ The zero-based index of the parameter.
+ Removes the specified from the collection.
+
+
+
+ Gets an object that can be used to synchronize access to the
+ .
+
+
+
+
+ Summary description for MySqlPool.
+
+
+
+
+ It is assumed that this property will only be used from inside an active
+ lock.
+
+
+
+
+ Indicates whether this pool is being cleared.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ It is assumed that this method is only called from inside an active lock.
+
+
+
+
+ Removes a connection from the in use pool. The only situations where this method
+ would be called are when a connection that is in use gets some type of fatal exception
+ or when the connection is being returned to the pool and it's too old to be
+ returned.
+
+
+
+
+
+ Clears this pool of all idle connections and marks this pool and being cleared
+ so all other connections are closed when they are returned.
+
+
+
+
+ Remove expired drivers from the idle pool
+
+
+
+ Closing driver is a potentially lengthy operation involving network
+ IO. Therefore we do not close expired drivers while holding
+ idlePool.SyncRoot lock. We just remove the old drivers from the idle
+ queue and return them to the caller. The caller will need to close
+ them (or let GC close them)
+
+
+
+
+ Summary description for MySqlPoolManager.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove drivers that have been idle for too long.
+
+
+
+
+ Remove hosts that have been on the demoted list for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Provides a class capable of executing a SQL script containing
+ multiple SQL statements including CREATE PROCEDURE statements
+ that require changing the delimiter
+
+
+
+
+ Handles the event raised whenever a statement is executed.
+
+
+
+
+ Handles the event raised whenever an error is raised by the execution of a script.
+
+
+
+
+ Handles the event raised whenever a script execution is finished.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The query.
+
+
+
+ Initializes a new instance of the
+ class.
+
+ The connection.
+ The query.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the query.
+
+ The query.
+
+
+
+ Gets or sets the delimiter.
+
+ The delimiter.
+
+
+
+ Executes this instance.
+
+ The number of statements executed as part of the script.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The number of statements executed as part of the script inside.
+
+
+
+ Initiates the asynchronous execution of SQL statements.
+
+ The cancellation token.
+ The number of statements executed as part of the script inside.
+
+
+
+ Represents the method that will handle errors when executing MySQL statements.
+
+
+
+
+ Represents the method that will handle errors when executing MySQL scripts.
+
+
+
+
+ Sets the arguments associated to MySQL scripts.
+
+
+
+
+ Gets the statement text.
+
+ The statement text.
+
+
+
+ Gets the line.
+
+ The line.
+
+
+
+ Gets the position.
+
+ The position.
+
+
+
+ Sets the arguments associated to MySQL script errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The exception.
+
+
+
+ Gets the exception.
+
+ The exception.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Summary description for MySqlStream.
+
+
+
+
+ ReadPacket is called by NativeDriver to start reading the next
+ packet on the stream.
+
+
+
+
+ Reads the specified number of bytes from the stream and stores them at given
+ offset in the buffer.
+ Throws EndOfStreamException if not all bytes can be read.
+
+ Stream to read from
+ Array to store bytes read from the stream
+ The offset in buffer at which to begin storing the data read from the current stream.
+ Number of bytes to read
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ LoadPacket loads up and decodes the header of the incoming packet.
+
+
+
+
+ Traces information about the client execution.
+
+
+
+
+ Gets the list of trace listeners.
+
+
+
+
+ Gets or sets the switch to control tracing and debugging.
+
+
+
+
+ Specifies the types of warning flags.
+
+
+
+
+ No index exists.
+
+
+
+
+ Bad index exists.
+
+
+
+
+ Rows have been excluded from the result.
+
+
+
+
+ Columns have been excluded from the result.
+
+
+
+
+ Type conversions took place.
+
+
+
+
+ Specifies the event that triggered the trace.
+
+
+
+
+ A connection has been opened.
+
+
+
+
+ A connection has been closed.
+
+
+
+
+ A query has been executed.
+
+
+
+
+ Data has been retrieved from the resultset.
+
+
+
+
+ Data retrieval has ended.
+
+
+
+
+ Query execution has ended.
+
+
+
+
+ The statement to be executed has been created.
+
+
+
+
+ The statement has been executed.
+
+
+
+
+ The statement is no longer required.
+
+
+
+
+ The query provided is of a nonquery type.
+
+
+
+
+ Usage advisor warnings have been requested.
+
+
+
+
+ Noncritical problem.
+
+
+
+
+ An error has been raised during data retrieval.
+
+
+
+
+ The query has been normalized.
+
+
+
+
+ Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited.
+
+
+ The application creates a object by calling
+ on the object. All subsequent operations associated with the
+ transaction (for example, committing or aborting the transaction), are performed on the
+ object.
+
+
+ The following example creates a and a .
+ It also demonstrates how to use the ,
+ , and methods.
+
+ public void RunTransaction(string myConnString)
+ {
+ MySqlConnection myConnection = new MySqlConnection(myConnString);
+ myConnection.Open();
+ MySqlCommand myCommand = myConnection.CreateCommand();
+ MySqlTransaction myTrans;
+ // Start a local transaction
+ myTrans = myConnection.BeginTransaction();
+ // Must assign both transaction object and connection
+ // to Command object for a pending local transaction
+ myCommand.Connection = myConnection;
+ myCommand.Transaction = myTrans;
+
+ try
+ {
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
+ myCommand.ExecuteNonQuery();
+ myTrans.Commit();
+ Console.WriteLine("Both records are written to database.");
+ }
+ catch(Exception e)
+ {
+ try
+ {
+ myTrans.Rollback();
+ }
+ catch (MySqlException ex)
+ {
+ if (myTrans.Connection != null)
+ {
+ Console.WriteLine("An exception of type " + ex.GetType() +
+ " was encountered while attempting to roll back the transaction.");
+ }
+ }
+
+ Console.WriteLine("An exception of type " + e.GetType() +
+ " was encountered while inserting the data.");
+ Console.WriteLine("Neither record was written to database.");
+ }
+ finally
+ {
+ myConnection.Close();
+ }
+ }
+
+
+
+
+
+ Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid.
+
+ The object associated with this transaction.
+
+ A single application may have multiple database connections, each
+ with zero or more transactions. This property enables you to
+ determine the connection object associated with a particular
+ transaction created by .
+
+
+
+
+ Specifies the for this transaction.
+
+
+ The for this transaction. The default is ReadCommitted.
+
+
+ Parallel transactions are not supported. Therefore, the IsolationLevel
+ applies to the entire transaction.
+
+
+
+
+ Gets the object associated with the transaction,
+ or a null reference if the transaction is no longer valid.
+
+
+
+
+ Releases the unmanaged resources used by the
+ and optionally releases the managed resources
+
+ If true, this method releases all resources held by any managed objects that
+ this references.
+
+
+
+ Commits the database transaction.
+
+
+ The method is equivalent to the MySQL SQL statement COMMIT.
+
+
+
+
+ Asynchronously commits the database transaction.
+
+
+ A task representing the asynchronous operation.
+
+
+
+ Rolls back a transaction from a pending state.
+
+
+ The method is equivalent to the MySQL statement ROLLBACK.
+ The transaction can only be rolled back from a pending state
+ (after BeginTransaction has been called, but before Commit is
+ called).
+
+
+
+
+ Asynchronously rolls back a transaction from a pending state.
+
+ The cancellation token.
+ A task representing the asynchronous operation.
+
+
+
+ Summary description for Driver.
+
+
+
+
+ Sets the current database for the this connection
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Return the appropriate set of connection flags for our
+ server capabilities and our user requested options.
+
+
+
+
+ Query is the method that is called to send all queries to the server
+
+
+
+
+ Verify that the file to upload is in a valid directory
+ according to the safe path entered by a user under
+ "AllowLoadLocalInfileInPath" connection option.
+
+ File to validate against the safe path.
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Sends the specified file to the server.
+ This supports the LOAD DATA LOCAL INFILE
+
+
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ FetchDataRow is the method that the data reader calls to see if there is another
+ row to fetch. In the non-prepared mode, it will simply read the next data packet.
+ In the prepared mode (statementId > 0), it will
+
+
+
+
+ Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value
+ TimeoutException is thrown. This timeout needs to be reset for every new command
+
+
+
+
+
+ Class that represents the response OK Packet
+ https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html
+
+
+
+
+ Creates an instance of the OKPacket object with all of its metadata
+
+ The packet to parse
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Add a session tracker to the list
+
+ Type of the session tracker
+ Name of the element changed
+ Value of the changed system variable (only for SessionTrackType.SystemVariables; otherwise, null)
+
+
+
+ Summary description for PreparedStatement.
+
+
+
+
+ Prepares CommandText for use with the Prepare method
+
+ Command text stripped of all paramter names
+
+ Takes the output of TokenizeSql and creates a single string of SQL
+ that only contains '?' markers for each parameter. It also creates
+ the parameterMap array list that includes all the paramter names in the
+ order they appeared in the SQL
+
+
+
+
+ Splits the schema and the entity from a syntactically correct "spName";
+ if there's no schema, then schema will be an empty string.
+
+ string to inspect.
+ The schema.
+ The entity.
+
+
+
+ Obtains the dot index that separates the schema from the entity if there's one;
+ otherwise, returns -1. It expects a syntactically correct "spName".
+
+ string to inspect.
+ Value of the dot index.
+ The dot index.
+
+
+
+ Defines a replication configurarion element in the configuration file.
+
+
+
+
+ Gets a collection of objects representing the server groups.
+
+
+
+
+ Defines a replication server group in the configuration file.
+
+
+
+
+ Gets or sets the name of the replication server group configuration.
+
+
+
+
+ Gets or sets the group type of the replication server group configuration.
+
+
+
+
+ Gets or sets the number of seconds to wait for retry.
+
+
+
+
+ Gets a collection of objects representing the
+ server configurations associated to this group configuration.
+
+
+
+
+ Defines a replication server in configuration file.
+
+
+
+
+ Gets or sets the name of the replication server configuration.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets whether the replication server is configured as source.
+
+
+
+
+ Gets or sets the connection string associated to this replication server.
+
+
+
+
+ Manager for Replication and Load Balancing features
+
+
+
+
+ Returns Replication Server Group List
+
+
+
+
+ Adds a Default Server Group to the list
+
+ Group name
+ Time between reconnections for failed servers
+ Replication Server Group added
+
+
+
+ Adds a Server Group to the list
+
+ Group name
+ ServerGroup type reference
+ Time between reconnections for failed servers
+ Server Group added
+
+
+
+ Gets the next server from a replication group
+
+ Group name
+ True if the server to return must be a source
+ Replication Server defined by the Load Balancing plugin
+
+
+
+ Gets a Server Group by name
+
+ Group name
+ Server Group if found, otherwise throws an MySqlException
+
+
+
+ Validates if the replication group name exists
+
+ Group name to validate
+ true if the replication group name is found; otherwise, false
+
+
+
+ Assigns a new server driver to the connection object
+
+ Group name
+ True if the server connection to assign must be a source
+ MySqlConnection object where the new driver will be assigned
+ Boolean that indicates if the function will be executed asynchronously.
+ the cancellation token.
+
+
+
+ Class that implements Round Robing Load Balancing technique.
+
+
+
+
+ Gets an available server based on Round Robin load balancing.
+
+ Flag indicating if the server to return must be a source.
+ A object representing the next available server.
+
+
+
+ Represents a server in a Replication environment.
+
+
+
+
+ Gets the server name.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets a value indicating whether the server is source or replica.
+
+
+
+
+ Gets the connection string used to connect to the server.
+
+
+
+
+ Gets a flag indicating if the server is available to be considered in load balancing.
+
+
+
+
+ Base class used to implement load balancing features.
+
+
+
+
+ List of servers available for replication.
+
+
+
+ The group name.
+ The number of seconds to perform a retry.
+
+
+
+ Gets the group name.
+
+
+
+
+ Gets the retry time between connections to failed servers.
+
+
+
+
+ Gets the server list in the group.
+
+
+
+
+ Adds a server into the group.
+
+ The server name.
+ A flag indicating if the server to add is source or replica.
+ The connection string used by this server.
+ A object representing the recently added object.
+
+
+
+ Removes a server from the group.
+
+ The server name.
+
+
+
+ Gets a server by name.
+
+ The server name.
+ The replication server.
+
+
+
+ Must be implemented. Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Defines the next server for a custom load balancing implementation.
+
+ Defines if the server to return is a source or any.
+ Currently not being used.
+ The next server based on the load balancing implementation.
+ Null if no available server is found.
+
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ This method can be overrided to implement a custom failover handling.
+
+
+
+ Handles a failed connection to a server.
+
+ The failed server.
+ The exception that caused the failover.
+
+
+
+ return the ordinal for the given column name
+
+
+
+
+
+
+ Retrieve the value as the given column index
+
+ The column value to retrieve
+ The value as the given column
+
+
+
+ Closes the current resultset, dumping any data still on the wire
+
+
+
+
+ Loads the column metadata for the current resultset
+
+
+
+
+ Represents a schema and its contents.
+
+
+
+
+ Gets or sets the name of the schema.
+
+
+
+
+ Gets the list of columns in the schema.
+
+
+
+
+ Gets the list of rows in the schema.
+
+
+
+
+ Represents a row within a schema.
+
+
+
+
+ Represents a column within a schema.
+
+
+
+
+ The name of the column.
+
+
+
+
+ The type of the column.
+
+
+
+
+ GetForeignKeysOnTable retrieves the foreign keys on the given table.
+ Since MySQL supports foreign keys on versions prior to 5.0, we can't use
+ information schema. MySQL also does not include any type of SHOW command
+ for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing
+ the output.
+
+ The table to store the key info in.
+ The table to get the foeign key info for.
+ Only get foreign keys that match this name.
+ Should column information be included in the table.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+
+
+
+ Builds the initial part of the COM_QUERY packet
+
+ Collection of attributes
+ A
+ Boolean that indicates if the function will be executed asynchronously.
+
+
+
+ Serializes the given parameter to the given memory stream
+
+
+ This method is called by PrepareSqlBuffers to convert the given
+ parameter to bytes and write those bytes to the given memory stream.
+
+
+ True if the parameter was successfully serialized, false otherwise.
+
+
+
+ Summary description for StoredProcedure.
+
+
+
+
+ Verify if the string passed as argument is syntactically correct.
+
+ String to be analyzed
+ true if is correct; otherwise, false.
+
+
+
+ Defines the basic operations to be performed on the table cache.
+
+
+
+
+ The maximum age allowed for cache entries.
+
+
+
+
+ Adds the given command and result set to the cache.
+
+ The command to store in the cache.
+ The resultset associated to the stored command.
+
+
+
+ Retrieves the specified command from the cache.
+
+ The command to retrieve.
+ The allowed age for the cache entry.
+
+
+
+
+ Removes the specified command from the cache.
+
+ The command to remove from the cache.
+
+
+
+ Clears the cache.
+
+
+
+
+ Removes cache entries older than the value defined by .
+
+
+
+
+ Stream that supports timeout of IO operations.
+ This class is used is used to support timeouts for SQL command, where a
+ typical operation involves several network reads/writes.
+ Timeout here is defined as the accumulated duration of all IO operations.
+
+
+
+
+ Construct a TimedStream
+
+ Undelying stream
+
+
+
+ Figure out whether it is necessary to reset timeout on stream.
+ We track the current value of timeout and try to avoid
+ changing it too often, because setting Read/WriteTimeout property
+ on network stream maybe a slow operation that involves a system call
+ (setsockopt). Therefore, we allow a small difference, and do not
+ reset timeout if current value is slightly greater than the requested
+ one (within 0.1 second).
+
+
+
+
+ Common handler for IO exceptions.
+ Resets timeout to infinity if timeout exception is
+ detected and stops the times.
+
+ original exception
+
+
+
+ Removes the outer backticks and replace the double-backticks to single-backtick
+ of inside the quotedString.
+
+ The string to unquote.
+
+
+
+
+ Gets the length size (in bytes) of a string.
+
+ length of string.
+ Number of bytes needed.
+
+
+
+ Defines the type of the column.
+
+
+
+
+ A reference struct representing a statement contained within a object
+
+
+
+
+ WebAuthn §6.1 https://www.w3.org/TR/webauthn-1/#sec-authenticator-data
+ Gets the authenticator data for the assertion statement.
+
+
+
+
+ Gets the authenticator data length for the assertion statement.
+
+
+
+
+ Gets the ID for this assertion statement
+
+
+
+
+ Gets the signature for this assertion statement
+
+
+
+
+ Gets the signature length for this assertion statement
+
+
+
+
+ Creates an object for holding data about a given assertion. In FIDO2, an assertion
+ is proof that the authenticator being used has knowledge of the private key associated
+ with the public key that the other party is in posession of.
+
+
+
+
+ Default Constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Gets or sets the hash of the client data object that the assertion is based on.
+
+ Thrown if an error occurs while setting the hash
+
+
+
+ Gets or sets the relying party that requested this assertion
+
+ Thrown if an error occurs while setting the relying party
+
+
+
+ Adds an allowed credential to this assertion. If used, only credential objects
+ with the IDs added via this method will be considered when making an assertion.
+
+ The ID of the credential to add to the whitelist
+ Thrown if an error occurs while adding the credential
+
+
+
+ Cast operator for using this object as a native handle
+
+ The object to use
+
+
+
+ Gets the assertion statement at the index provided.
+
+ The index of the assertion statement to retrieve
+ The assertion statement object
+ The index is not in the range [0, count)
+
+
+
+ Gets the number of assertions contained in the authentication device.
+
+ The number of assertions contained in the authentication device.
+
+
+
+ Default constructor
+
+
+
+
+
+ Finalizer
+
+
+
+
+ Opens the device at the given path.
+
+ The path of the device
+ Thrown if an error occurs while opening the device
+
+
+
+ Closes the device, preventing further use
+
+ Thrown if an error occurs while closing
+
+
+
+ Determines whether this device supports CTAP 2.1 Credential Management.
+
+
+
+
+ Uses the device to generate an assertion
+
+ The assertion object with its input properties properly set
+ Thrown if an error occurs while generating the assertion
+
+
+
+ A class representing external info about a particular FIDO capable device
+
+
+
+
+ Gets the manufacturer of the device
+
+
+
+
+ Gets the path of the device (for use in )
+
+
+
+
+ Gets the product ID of the device
+
+
+
+
+ Gets a string representation of the product ID
+
+
+
+
+ Gets the vendor ID of the device
+
+
+
+
+ Finalizer
+
+
+
+
+ P/Invoke methods
+
+
+
+
+ The fido_init() function initialises the libfido2 library.
+ Its invocation must precede that of any other libfido2 function.
+ If FIDO_DEBUG is set in flags, then debug output will be emitted by libfido2 on stderr.
+ Alternatively, the FIDO_DEBUG environment variable may be set.
+
+ The flags to use during initialization
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_t type
+
+
+
+ Releases the memory backing *dev_p, where *dev_p must have been previously allocated by .
+ On return, *dev_p is set to null. Either dev_p or *dev_p may be null, in which case fido_dev_free() is a NOP.
+
+
+
+
+
+ Closes the device represented by dev. If dev is already closed, this is a NOP.
+
+ The device to close
+ on success, anything else on failure
+
+
+
+ Opens the device pointed to by path, where dev is a freshly allocated or otherwise closed fido_dev_t.
+
+ The device handle to store the result
+ The unique path to the device
+ on success, anything else on failure
+
+
+
+ Asks the FIDO device represented by dev for an assertion according to the following parameters defined in assert:
+ relying party ID;
+ client data hash;
+ list of allowed credential IDs;
+ user presence and user verification attributes.
+ See fido_assert_set(3) for information on how these values are set.
+ If a PIN is not needed to authenticate the request against dev, then pin may be NULL.
+ Otherwise pin must point to a NUL-terminated UTF-8 string.
+ Please note that fido_dev_get_assert() is synchronous and will block if necessary.
+
+ The device to use for generation
+ The assert to use for generation
+ The pin of the device
+ on success, anything else on failure
+
+
+
+ Returns if supports CTAP 2.1 Credential Management.
+
+ The device to check.
+ if supports CTAP 2.1 Credential Management; otherwise, .
+
+
+
+ Returns a pointer to a newly allocated, empty fido_dev_info_t type.
+ If memory cannot be allocated, null is returned.
+
+ A newly allocated, empty fido_dev_info_t type
+
+
+
+ Returns a pointer to the path of di
+
+ The object to act on
+ A pointer to the path of di
+
+
+
+ Returns a pointer to the idx entry of di
+
+ The object to act on
+ The index of the object to retrieve
+ A pointer to the idx entry of di
+
+
+
+ Fills devlist with up to ilen FIDO devices found by the underlying operating system.
+ Currently only USB HID devices are supported.
+ The number of discovered devices is returned in olen, where olen is an addressable pointer.
+
+ The devlist pointer to store the result in
+ The number of entries that the list can hold
+ A pointer to where the number of entries that were written will be stored
+ on success, anything else on failure
+
+
+
+ Releases the memory backing *devlist_p, where *devlist_p must have been previously allocated by .
+ On return, *devlist_p is set to null. Either devlist_p or *devlist_p may be null, in which case fido_dev_info_free() is a NOP.
+
+
+ The number of entries this object was allocated to hold
+
+
+
+ Returns the vendor of the device
+
+ The object to act on
+ The vendor of the device
+
+
+
+ Returns the product of the device
+
+ The object to act on
+ The product of the device
+
+
+
+ Returns a pointer to the product string of di
+
+ The object to act on
+ A pointer to the product string of di
+
+
+
+ Returns a pointer to the manufacturer string of di
+
+ The object to act on
+ A pointer to the manufacturer string of di
+
+
+
+ Returns a pointer to a newly allocated, empty fido_assert_t type.
+ If memory cannot be allocated, null is returned
+
+ A newly allocated, empty fido_assert_t type
+
+
+
+ Releases the memory backing *assert_p, where *assert_p must have been previously allocated by .
+ On return, *assert_p is set to null. Either assert_p or *assert_p may be null, in which case fido_assert_free() is a NOP.
+
+ The object to free
+
+
+
+ Adds ptr to the list of credentials allowed in assert, where ptr points to a credential ID of len bytes.
+ A copy of ptr is made, and no references to the passed pointer are kept.
+ If this call fails, the existing list of allowed credentials is preserved.
+
+ The object to act on
+ A pointer to the ID of the credential to allow
+ The length of the data inside of
+
+
+
+
+ Set the client data hash of assert
+
+ The assertion object to act on
+ The client data hash to set
+ The length of the data in
+ on success, anything else on failure
+
+
+
+ Sets the relying party of assert
+
+ The assertion object to act on
+ The ID of the the relying party
+ on success, anything else on failure
+
+
+
+ Returns the length of the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the authenticator data of statement idx in assert
+
+
+
+ Returns a pointer to the authenticator data of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the authenticator data of statement idx in assert
+
+
+
+ Returns the length of the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the signature of statement idx in assert
+
+
+
+ Returns a pointer to the signature of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ A pointer to the signatureof statement idx in assert
+
+
+
+ Returns the length of the ID of statement idx in assert
+
+ The assertion object to act on
+ The index to retrieve
+ The length of the ID of statement idx in assert
+
+
+
+ Returns a pointer to the ID of statement idx in assert.
+
+ The assertion object to act on.
+ The index to retrieve.
+ A pointer to the ID of statement idx in assert.
+
+
+
+ Returns the length of the client data hash of an assertion.
+
+ The assertion object to act on.
+ The length of the client data hash of statement idx of the assertion.
+
+
+
+ Returns a pointer to the client data hash of an assertion.
+
+ The assertion object to act on.
+ A pointer to the client data hash of the assertion.
+
+
+
+ Returns the number of statements in assertion.
+
+ The assertion object to act on.
+ The number of statements in assertion.
+
+
+
+ FIDO assertion handle
+
+
+
+
+ FIDO device handle
+
+
+
+
+ FIDO device info handle
+
+
+
+
+ Gets the global instance of this class as required by
+
+ The cookie to use when getting the global instance (ignored)
+ The global instance
+
+
+
+ Status codes as defined in Client to Authenticator Protocol (CTAP) standard
+ Error response values in the range between and are reserved for spec purposes.
+ Error response values in the range between and
+ may be used for vendor-specific implementations. All other response values are reserved for future use and may not be used.
+ These vendor specific error codes are not interoperable and the platform should treat these errors as any other unknown error codes.
+ Error response values in the range between and
+ may be used for extension-specific implementations.
+
+
+
+
+ Indicates successful response.
+
+
+
+
+ The command is not a valid CTAP command.
+
+
+
+
+ The command included an invalid parameter.
+
+
+
+
+ Invalid message or item length.
+
+
+
+
+ Invalid message sequencing.
+
+
+
+
+ Message timed out.
+
+
+
+
+ Channel busy.
+
+
+
+
+ Command requires channel lock.
+
+
+
+
+ Command not allowed on this cid.
+
+
+
+
+ Invalid/unexpected CBOR error.
+
+
+
+
+ Error when parsing CBOR.
+
+
+
+
+ Missing non-optional parameter.
+
+
+
+
+ Limit for number of items exceeded.
+
+
+
+
+ Unsupported extension.
+
+
+
+
+ Valid credential found in the exclude list.
+
+
+
+
+ Processing (Lengthy operation is in progress).
+
+
+
+
+ Credential not valid for the authenticator.
+
+
+
+
+ Authentication is waiting for user interaction.
+
+
+
+
+ Processing, lengthy operation is in progress.
+
+
+
+
+ No request is pending.
+
+
+
+
+ Authenticator does not support requested algorithm.
+
+
+
+
+ Not authorized for requested operation.
+
+
+
+
+ Internal key storage is full.
+
+
+
+
+ No outstanding operations.
+
+
+
+
+ Unsupported option.
+
+
+
+
+ Not a valid option for current operation.
+
+
+
+
+ Pending keep alive was cancelled.
+
+
+
+
+ No valid credentials provided.
+
+
+
+
+ Timeout waiting for user interaction.
+
+
+
+
+ Continuation command, such as, authenticatorGetNextAssertion not allowed.
+
+
+
+
+ PIN Invalid.
+
+
+
+
+ PIN Blocked.
+
+
+
+
+ PIN authentication,pinAuth, verification failed.
+
+
+
+
+ PIN authentication,pinAuth, blocked. Requires power recycle to reset.
+
+
+
+
+ No PIN has been set.
+
+
+
+
+ PIN is required for the selected operation.
+
+
+
+
+ PIN policy violation. Currently only enforces minimum length.
+
+
+
+
+ pinToken expired on authenticator.
+
+
+
+
+ Authenticator cannot handle this request due to memory constraints.
+
+
+
+
+ The current operation has timed out.
+
+
+
+
+ User presence is required for the requested operation.
+
+
+
+
+ Other unspecified error.
+
+
+
+
+ CTAP 2 spec last error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Extension specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ Vendor specific error.
+
+
+
+
+ An exception representing a return status that is non-successful according to the CTAP specification
+
+
+
+
+ The status code that was returned
+
+
+
+
+ Default constructor
+
+ The status code to use
+
+
+
+ An exception indicating that there was some problem with the FIDO2 device
+
+
+
+
+ The code returned from the device
+
+
+
+
+ Default constructor
+
+ The code to use
+
+
+
+ This class represent the function that should precede any invocation to libfido2 library.
+
+
+
+
+ GSS API constants
+
+
+
+
+ GSS_C_NT_HOSTBASED_SERVICE (1.2.840.113554.1.2.1.4)
+
+
+
+
+ GSS_KRB5_NT_PRINCIPAL_NAME (1.2.840.113554.1.2.2.1)
+
+
+
+
+ GSS_C_NT_USER_NAME (1.2.840.113554.1.2.1.1)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC (1.2.840.113554.1.2.2)
+
+
+
+
+ GSS_KRB5_MECH_OID_DESC Set
+
+
+
+
+ The GSSAPI mechanism.
+
+
+
+
+ Obtain credentials to be used to create a security context
+
+ username
+ password
+ host
+
+
+
+ Processes the challenge data.
+
+ A byte array containing the challenge data from the server
+ A byte array containing the response to be sent to the server
+
+
+
+ Security context already established.
+
+ A byte array containing the challenge data from the server
+ A non-null byte array containing the response to be sent to the server
+
+
+
+ Defines a security context
+
+
+
+
+ Sets the main properties to create and initiate a security context.
+
+ Service Principal Name.
+ Credentials.
+ Requested flags.
+
+
+
+ Initiate the security context
+
+ Challenge received by the server.
+ A byte array containing the response to be sent to the server
+
+
+
+ Unwrap a message.
+
+ Message acquired from the server.
+ Unwrapped message.
+
+
+
+ Wrap a message.
+
+ Message to be wrapped.
+ A byte array containing the wrapped message.
+
+
+
+ Allocate a clr byte array and copy the token data over
+
+ Buffer.
+ A byte array
+
+
+
+ Cleanups unmanaged resources
+
+
+
+
+ No flags provided
+
+
+
+
+ Delegates credentials to a remote peer. Do not delegate the credentials if the value is false.
+
+
+
+
+ Requests that the peer authenticate itself. If false, authenticate to the remote peer only.
+
+
+
+
+ Enables replay detection for messages protected with gss_wrap(3GSS) or gss_get_mic(3GSS). Do not attempt to detect replayed messages if false.
+
+
+
+
+ Enables detection of out-of-sequence protected messages. Do not attempt to detect out-of-sequence messages if false.
+
+
+
+
+ Requests that confidential service be made available by means of gss_wrap(3GSS). If false, no per-message confidential service is required.
+
+
+
+
+ Requests that integrity service be made available by means of gss_wrap(3GSS) or gss_get_mic(3GSS). If false, no per-message integrity service is required.
+
+
+
+
+ Does not reveal the initiator's identify to the acceptor. Otherwise, authenticate normally.
+
+
+
+
+ (Returned only) If true, the protection services specified by the states of GSS_C_CONF_FLAG and GSS_C_INTEG_FLAG are available
+ if the accompanying major status return value is either GSS_S_COMPLETE or GSS_S_CONTINUE_NEEDED. If false, the protection services are available
+ only if the accompanying major status return value is GSS_S_COMPLETE.
+
+
+
+
+ (Returned only) If true, the resultant security context may be transferred to other processes by means of a call to gss_export_sec_context(3GSS). If false, the security context cannot be transferred.
+
+
+
+
+ Credentials to use to establish the context
+
+
+
+
+ Acquires credentials for the supplied principal using the supplied password
+
+ Username
+ Password
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires credentials for the supplied principal using material stored in a valid keytab
+
+ Username
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Acquires default credentials stored in the cache
+
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ An object containing the credentials
+
+
+
+ Translates a name in internal form to a textual representation.
+
+ Name in internal form (GSSAPI).
+
+
+
+ size_t->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+ OM_uint32->gss_uint32->unsigned int
+
+
+ void*
+
+
+
+ Converts a contiguous string name to GSS_API internal format
+ The gss_import_name() function converts a contiguous string name to internal form. In general,
+ the internal name returned by means of the output_name parameter will not be a mechanism name; the exception to this is if the input_name_type
+ indicates that the contiguous string provided by means of the input_name_buffer parameter is of type GSS_C_NT_EXPORT_NAME, in which case,
+ the returned internal name will be a mechanism name for the mechanism that exported the name.
+
+ Status code returned by the underlying mechanism.
+ The gss_buffer_desc structure containing the name to be imported.
+ A gss_OID that specifies the format that the input_name_buffer is in.
+ The gss_name_t structure to receive the returned name in internal form. Storage associated with this name must be freed by the application after use with a call to gss_release_name().
+
+ The gss_import_name() function may return the following status codes:
+ GSS_S_COMPLETE: The gss_import_name() function completed successfully.
+ GSS_S_BAD_NAMETYPE: The input_name_type was unrecognized.
+ GSS_S_BAD_NAME: The input_name parameter could not be interpreted as a name of the specified type.
+ GSS_S_BAD_MECH: The input_name_type was GSS_C_NT_EXPORT_NAME, but the mechanism contained within the input_name is not supported.
+
+
+
+
+ Allows an application to acquire a handle for a pre-existing credential by name. GSS-API implementations must impose a local access-control
+ policy on callers of this routine to prevent unauthorized callers from acquiring credentials to which they are not entitled.
+ This routine is not intended to provide a "login to the network" function, as such a function would involve the creation of new credentials
+ rather than merely acquiring a handle to existing credentials
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Acquires a credential for use in establishing a security context using a password.
+
+ Mechanism specific status code.
+ Name of principal whose credential should be acquired.
+ The password.
+ Number of seconds that credentials should remain valid.
+ Specify GSS_C_INDEFINITE to request that the credentials have the maximum permitted lifetime.
+ Set of underlying security mechanisms that may be used.
+ GSS_C_NO_OID_SET may be used to obtain an implementation-specific default.
+ GSS_C_BOTH - Credentials may be used either to initiate or accept security contexts.
+ GSS_C_INITIATE - Credentials will only be used to initiate security contexts.
+ GSS_C_ACCEPT - Credentials will only be used to accept security contexts.
+ The returned credential handle. Resources associated with this credential handle must be released
+ by the application after use with a call to gss_release_cred().
+ The set of mechanisms for which the credential is valid. Storage associated with the returned OID-set must
+ be released by the application after use with a call to gss_release_oid_set(). Specify NULL if not required.
+ Actual number of seconds for which the returned credentials will remain valid. If the implementation does not
+ support expiration of credentials, the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_acquire_cred_with_password() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Unavailable mechanism requested.
+ GSS_S_BAD_NAMETYPE: Type contained within desired_name parameter is not supported.
+ GSS_S_BAD_NAME: Value supplied for desired_name parameter is ill formed.
+ GSS_S_CREDENTIALS_EXPIRED: The credentials could not be acquired Because they have expired.
+ GSS_S_NO_CRED: No credentials were found for the specified name.
+
+
+
+
+ Obtains information about a credential.
+
+ Mechanism specific status code.
+ A handle that refers to the target credential.
+ The name whose identity the credential asserts.
+ The number of seconds for which the credential remain valid.
+ If the credential has expired, this parameter is set to zero.
+ How the credential may be used.
+ Set of mechanisms supported by the credential.
+
+ gss_init_sec_context() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: The referenced credentials could not be accessed.
+ GSS_S_DEFECTIVE_CREDENTIAL: The referenced credentials were invalid.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ If the lifetime parameter is not passed in as NULL, then its value is set to 0.
+
+
+
+
+ Initiates the establishment of a security context between the application and a remote peer.
+ Initially, the input_token parameter should be specified either as GSS_C_NO_BUFFER, or as a pointer to a gss_buffer_desc object whose length field
+ contains the value zero. The routine may return a output_token which should be transferred to the peer application, where the peer application will
+ present it to gss_accept_sec_context. If no token need be sent, gss_init_sec_context will indicate this by setting the length field of the output_token
+ argument to zero. To complete the context establishment, one or more reply tokens may be required from the peer application; if so, gss_init_sec_context
+ will return a status containing the supplementary information bit GSS_S_CONTINUE_NEEDED. In this case, gss_init_sec_context should be called again when the
+ reply token is received from the peer application, passing the reply token to gss_init_sec_context via the input_token parameters.
+
+ Mechanism specific status code.
+ Handle for credentials claimed. Supply GSS_C_NO_CREDENTIAL to act as a default initiator principal.
+ If no default initiator is defined, the function will return GSS_S_NO_CRED.
+ Context handle for new context. Supply GSS_C_NO_CONTEXT for first call; use value returned by first call in continuation calls.
+ Resources associated with this context-handle must be released by the application after use with a call to gss_delete_sec_context().
+ Name of target.
+ Object ID of desired mechanism. Supply GSS_C_NO_OID to obtain an implementation specific default.
+ Contains various independent flags, each of which requests that the context support a specific service option.
+ Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be logically-ORed together to form the bit-mask value.
+ Desired number of seconds for which context should remain valid. Supply 0 to request a default validity period.
+ Application-specified bindings. Allows application to securely bind channel identification information to the security context.
+ Specify GSS_C_NO_CHANNEL_BINDINGS if channel bindings are not used.
+ Token received from peer application. Supply GSS_C_NO_BUFFER, or a pointer to a buffer containing the value GSS_C_EMPTY_BUFFER on initial call.
+ Actual mechanism used. The OID returned via this parameter will be a pointer to static storage that should be treated as read-only;
+ In particular the application should not attempt to free it. Specify NULL if not required.
+ Token to be sent to peer application. If the length field of the returned buffer is zero, no token need be sent to the peer application.
+ Storage associated with this buffer must be freed by the application after use with a call to gss_release_buffer().
+ Contains various independent flags, each of which indicates that the context supports a specific service option.
+ Specify NULL if not required. Symbolic names are provided for each flag, and the symbolic names corresponding to the required flags should be
+ logically-ANDed with the ret_flags value to test whether a given option is supported by the context.
+ Number of seconds for which the context will remain valid. If the implementation does not support context expiration,
+ the value GSS_C_INDEFINITE will be returned. Specify NULL if not required.
+
+ gss_init_sec_context() may return the following status codes:
+
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTINUE_NEEDED: A token from the peer application is required to complete the context, and gss_init_sec_context() must be called again with that token.
+ GSS_S_DEFECTIVE_TOKEN: Consistency checks performed on the input_token failed.
+ GSS_S_DEFECTIVE_CREDENTIAL: Consistency checks performed on the credential failed.
+ GSS_S_NO_CRED: The supplied credentials are not valid for context acceptance, or the credential handle does not reference any credentials.
+ GSS_S_CREDENTIALS_EXPIRED: The referenced credentials have expired.
+ GSS_S_BAD_BINDINGS: The input_token contains different channel bindings than those specified by means of the input_chan_bindings parameter.
+ GSS_S_BAD_SIG: The input_token contains an invalid MIC or a MIC that cannot be verified.
+ GSS_S_OLD_TOKEN: The input_token is too old. This is a fatal error while establishing context.
+ GSS_S_DUPLICATE_TOKEN: The input_token is valid, but it is a duplicate of a token already processed.This is a fatal error while establishing context.
+ GSS_S_NO_CONTEXT: The supplied context handle does not refer to a valid context.
+ GSS_S_BAD_NAMETYPE: The provided target_name parameter contains an invalid or unsupported name type.
+ GSS_S_BAD_NAME: The supplied target_name parameter is ill-formed.
+ GSS_S_BAD_MECH: The token received specifies a mechanism that is not supported by the implementation or the provided credential.
+
+
+
+
+ Allows an application to obtain a textual representation of a GSS-API status code, for display to the user or for logging purposes.
+ Since some status values may indicate multiple conditions, applications may need to call gss_display_status multiple times,
+ each call generating a single text string. The message_context parameter is used by gss_display_status to store state information about which
+ error messages have already been extracted from a given status_value; message_context must be initialized to 0 by the application prior to the first call,
+ and gss_display_status will return a non-zero value in this parameter if there are further messages to extract.
+
+ Mechanism specific status code.
+ Status value to be converted.
+ GSS_C_GSS_CODE - status_value is a GSS status code. GSS_C_MECH_CODE - status_value is a mechanism status code.
+ Underlying mechanism (used to interpret a minor status value). Supply GSS_C_NO_OID to obtain the system default.
+ Should be initialized to zero by the application prior to the first call.
+ On return from gss_display_status(), a non-zero status_value parameter indicates that additional messages may be extracted from the status code via
+ subsequent calls to gss_display_status(), passing the same status_value, status_type, mech_type, and message_context parameters.
+ Textual interpretation of the status_value. Storage associated with this parameter must be freed by the application
+ after use with a call to gss_release_buffer().
+
+ gss_display_status() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_MECH: Indicates that translation in accordance with an unsupported mechanism type was requested.
+ GSS_S_BAD_STATUS: The status value was not recognized, or the status type was neither GSS_C_GSS_CODE nor GSS_C_MECH_CODE.
+
+
+
+
+ Allows an application to obtain a textual representation of an opaque internal-form name for display purposes.
+ The syntax of a printable name is defined by the GSS-API implementation.
+
+ Mechanism specific status code.
+ Name to be displayed.
+ Buffer to receive textual name string.
+ The type of the returned name.
+
+ gss_display_name() may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: input_name was ill-formed.
+
+
+
+
+ Free storage associated with a buffer. The storage must have been allocated by a GSS-API routine.
+ In addition to freeing the associated storage, the routine will zero the length field in the descriptor to which the buffer parameter refers,
+ and implementations are encouraged to additionally set the pointer field in the descriptor to NULL. Any buffer object returned by a GSS-API routine
+ may be passed to gss_release_buffer (even if there is no storage associated with the buffer).
+
+ Mechanism-specific status code.
+ The storage associated with the buffer will be deleted. The gss_buffer_desc object will not be freed,
+ but its length field will be zeroed.
+
+ The gss_release_buffer() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion
+
+
+
+
+ Delete a security context. gss_delete_sec_context will delete the local data structures associated with the specified security context,
+ and may generate an output_token, which when passed to the peer gss_process_context_token will instruct it to do likewise.
+ If no token is required by the mechanism, the GSS-API should set the length field of the output_token (if provided) to zero.
+ No further security services may be obtained using the context specified by context_handle.
+
+ Mechanism specific status code.
+ Context handle identifying context to delete. After deleting the context,
+ the GSS-API will set this context handle to GSS_C_NO_CONTEXT.
+
+ The gss_delete_sec_context() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CONTEXT: No valid context was supplied.
+
+
+
+
+ Free GSSAPI-allocated storage associated with an internal-form name. The name is set to GSS_C_NO_NAME on successful completion of this call.
+
+ Mechanism specific status code.
+ The name to be deleted.
+
+ The gss_release_name() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_BAD_NAME: The name parameter did not contain a valid name.
+
+
+
+
+ Informs GSS-API that the specified credential handle is no longer required by the application, and frees associated resources.
+ The cred_handle is set to GSS_C_NO_CREDENTIAL on successful completion of this call.
+
+ Mechanism specific status code.
+ Opaque handle identifying credential to be released. If GSS_C_NO_CREDENTIAL is supplied,
+ the routine will complete successfully, but will do nothing.
+
+ The gss_release_cred() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_NO_CRED: Credentials could not be accessed.
+
+
+
+
+ Converts a message previously protected by gss_wrap back to a usable form, verifying the embedded MIC.
+ The conf_state parameter indicates whether the message was encrypted; the qop_state parameter indicates the strength of
+ protection that was used to provide the confidentiality and integrity services.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Protected message.
+ Buffer to receive unwrapped message.
+ State of the configuration.
+ State of the QoP.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_DEFECTIVE_TOKEN: The token failed consistency checks.
+ GSS_S_BAD_SIG: The MIC was incorrect.
+ GSS_S_DUPLICATE_TOKEN: The token was valid, and contained a correct MIC for the message, but it had already been processed.
+ GSS_S_OLD_TOKEN: The token was valid, and contained a correct MIC for the message, but it is too old to check for duplication.
+ GSS_S_UNSEQ_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ a later token has already been received.
+ GSS_S_GAP_TOKEN: The token was valid, and contained a correct MIC for the message, but has been verified out of sequence;
+ an earlier expected token has not yet been received.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+
+
+
+
+ Attaches a cryptographic MIC and optionally encrypts the specified input_message. The output_message contains both the MIC and the message.
+ The qop_req parameter allows a choice between several cryptographic algorithms, if supported by the chosen mechanism.
+
+ Mechanism specific status code.
+ Identifies the context on which the message arrived.
+ Message to be protected.
+ Buffer to receive protected message.
+
+ The gss_unwrap() function may return the following status codes:
+ GSS_S_COMPLETE: Successful completion.
+ GSS_S_CONTEXT_EXPIRED: The context has already expired.
+ GSS_S_NO_CONTEXT: The context_handle parameter did not identify a valid context.
+ GSS_S_BAD_QOP: The specified QOP is not supported by the mechanism.
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Linux
+
+
+
+
+ MIT Kerberos 5 GSS Bindings Windows 64bit
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Automatic dynamic disposable storing
+
+
+
+
+ Automatic dynamic disposable storing , will be called at dispose
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Automatic dynamic disposable
+
+
+
+
+ Original value, can be used with ref
+
+
+
+
+ Automatic dynamic disposable storing , will be disposed and will be called at dispose
+
+
+
+
+ Returns stored value
+
+
+
+
+ Gets the Kerberos configuration from the "krb5.conf/krb5.ini" file
+
+
+
+
+ Memory pinned object
+
+
+
+
+ Create memory pinned object from
+
+ Any class type
+ Value to pin
+ Pinned value
+
+
+
+ Memory pinned object
+
+ Any class type
+
+
+
+ Original object value, can be used with ref
+
+
+
+
+ In memory address of the object
+
+
+
+
+ Create memory pinned object from
+
+ Value to pin
+
+
+
+ Returns address of object in memory
+
+
+
+
+ Returns original object value
+
+
+
+
+ SSPI constants
+
+
+
+
+ SSPI Bindings
+
+
+
+
+ A safe handle to the credential's handle.
+
+
+
+
+ Acquires a handle to preexisting credentials of a security principal.
+
+
+
+
+ Creates an instance of SspiSecurityContext with credentials provided.
+
+ Credentials to be used with the Security Context
+
+
+
+ Initiates the client side, outbound security context from a credential handle.
+
+ Byte array to be sent to the server.
+ Byte array received by the server.
+ The target.
+
+
+
+ Defines the type of the security buffer.
+
+
+
+
+ Defines a security handle.
+
+
+
+
+ Describes a buffer allocated by a transport to pass to a security package.
+
+
+
+
+ Specifies the size, in bytes, of the buffer.
+
+
+
+
+ Bit flags that indicate the type of the buffer.
+
+
+
+
+ Pointer to a buffer.
+
+
+
+
+ Hold a numeric value used in defining other data types.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Holds a pointer used to define a security handle.
+
+
+
+
+ Least significant digits.
+
+
+
+
+ Most significant digits.
+
+
+
+
+ Indicates the sizes of important structures used in the message support functions.
+
+
+
+
+ Specifies the maximum size of the security token used in the authentication changes.
+
+
+
+
+ Specifies the maximum size of the signature created by the MakeSignature function.
+ This member must be zero if integrity services are not requested or available.
+
+
+
+
+ Specifies the preferred integral size of the messages.
+
+
+
+
+ Size of the security trailer to be appended to messages.
+ This member should be zero if the relevant services are not requested or available.
+
+
+
+
+ Implements the 'SEC_WINNT_AUTH_IDENTITY' structure. See:
+ https://msdn.microsoft.com/en-us/library/windows/desktop/aa380131(v=vs.85).aspx
+
+
+
+
+ DNS resolver that runs queries against a server.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the DNS SVR records of the service name that is provided.
+
+ A list of s sorted as described in RFC2782.
+
+
+
+ Sorts a list of DNS SRV records according to the sorting rules described in RFC2782.
+
+ List of s to sort.
+ A new list of sorted s.
+
+
+
+ Resets the DnsSrvResolver
+
+
+
+
+ DNS record type.
+
+
+
+
+ CLASS fields appear in resource records.
+
+
+
+
+ The Internet.
+
+
+
+
+ DNS question type.
+ QueryType are a superset of RecordType.
+
+
+
+
+ A resource record which specifies the location of the server(s) for a specific protocol and domain.
+
+ RFC 2782
+
+
+
+
+ DNS Record OpCode.
+ A four bit field that specifies kind of query in this message.
+ This value is set by the originator of a query and copied into the response.
+
+
+
+
+ A standard query (QUERY).
+
+
+
+
+ Retired IQUERY code.
+
+
+
+
+ A server status request (STATUS).
+
+
+
+
+ Notify OpCode.
+
+
+
+
+ Update OpCode.
+
+
+
+
+ The class transports information of the lookup query performed.
+
+
+
+
+ Gets the domain name
+
+
+
+
+ Gets the type of the question.
+
+
+
+
+ Gets the question class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Domain name.
+ Type of the question.
+ The question class.
+
+
+
+ Initializes a new instance of the class.
+
+ of the record.
+
+
+
+ Gets the bytes in this collection.
+
+
+
+
+ Gets or sets the unique identifier of the record.
+
+
+
+
+ Gets or sets the number of questions in the record.
+
+
+
+
+ Gets or sets the number of answers in the record.
+
+
+
+
+ Gets or sets the number of name servers in the record.
+
+
+
+
+ Gets or sets the number of additional records in the record.
+
+
+
+
+ Specifies kind of query.
+
+
+
+
+ Recursion Desired
+
+
+
+
+ Represents the header as a byte array
+
+
+
+
+ The Resource Record this record data belongs to.
+
+
+
+
+ A DNS record reader.
+
+
+
+
+ Gets or sets the position of the cursor in the record.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+ Position of the cursor in the record.
+
+
+
+ Initializes a new instance of the class.
+
+ Byte array of the record.
+
+
+
+ Read a byte from the record.
+
+
+
+
+ Read a char from the record.
+
+
+
+
+ Read an unsigned int 16 from the record.
+
+
+
+
+ Read an unsigned int 16 from the offset of the record.
+
+ Offset to start reading from.
+
+
+
+ Read an unsigned int 32 from the record.
+
+
+
+
+ Read the domain name from the record.
+
+ Domain name of the record.
+
+
+
+ Read a string from the record.
+
+
+
+
+ Read a series of bytes from the record.
+
+ Length to read from the record.
+
+
+
+ Read record from the data.
+
+ Type of the record to read.
+ Record read from the data.
+
+
+
+ A default Dns Record.
+
+
+
+
+ A DNS request.
+
+
+
+ Gets the header.
+
+
+
+ The default DNS server port.
+
+
+
+
+ Fills a list of the endpoints in the local network configuration.
+
+
+
+ Execute a query on a DNS server.
+ Domain name to look up.
+ DNS response for request.
+
+
+
+ Gets the name of the node to which this resource record pertains.
+
+
+
+
+ Gets the type of resource record.
+
+
+
+
+ Gets the type class of resource record, mostly IN but can be CS, CH or HS.
+
+
+
+
+ Gets the time to live, in seconds, that the resource record may be cached.
+
+
+
+
+ Gets the record length.
+
+
+
+
+ Gets one of the Record* classes.
+
+
+
+
+ Answer resource record.
+
+
+
+
+ Authority resource record.
+
+
+
+
+ Additional resource record.
+
+
+
+
+ List of Question records.
+
+
+
+
+ List of AnswerResourceRecord records.
+
+
+
+
+ List of AuthorityResourceRecord records.
+
+
+
+
+ List of AdditionalResourceRecord records.
+
+
+
+
+ The record header.
+
+
+
+
+ Server which delivered this response.
+
+
+
+
+ The Size of the message.
+
+
+
+
+ Error message, empty when no error.
+
+
+
+
+ TimeStamp when cached.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ of the DNS server that responded to the query.
+ array of the response data.
+
+
+
+ List of RecordSRV in Response.Answers
+
+
+
+
+ Class that represents a DNS SRV record.
+ RFC 2782 (https://tools.ietf.org/html/rfc2782)
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the priority.
+
+
+
+
+ Gets the target domain name.
+
+
+
+
+ Gets the weight.
+
+
+
+
+ Initializes a new instance of class.
+
+ The port.
+ The priority.
+ The target.
+ The weight.
+
+
+
+ Initializes a new instance of class.
+
+ of the record data.
+
+
+
+ Compare two objects. First, using their priority and
+ if both have the same, then using their weights.
+
+ A to compare.
+ A to compare.
+
+
+
+
+ This class is modeled after .NET Stopwatch. It provides better
+ performance (no system calls).It is however less precise than
+ .NET Stopwatch, measuring in milliseconds. It is adequate to use
+ when high-precision is not required (e.g for measuring IO timeouts),
+ but not for other tasks.
+
+
+
+
+ Wrapper around NetworkStream.
+
+ MyNetworkStream is equivalent to NetworkStream, except
+ 1. It throws TimeoutException if read or write timeout occurs, instead
+ of IOException, to match behavior of other streams (named pipe and
+ shared memory). This property comes handy in TimedStream.
+
+ 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start
+ occuring after stream has times out. For a discussion about the CLR bug,
+ refer to http://tinyurl.com/lhgpyf. This error should never occur, as
+ we're not using asynchronous operations, but apparerntly it does occur
+ directly after timeout has expired.
+ The workaround is hinted in the URL above and implemented like this:
+ For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set
+ the socket to Blocking and retry the operation once again.
+
+
+
+
+ Determines whether the connection state is closed or open.
+
+ true if connection is closed; otherwise, false.
+
+
+
+ Set keepalive + timeout on socket.
+
+ socket
+ keepalive timeout, in seconds
+
+
+
+ Read a single quoted identifier from the stream
+
+
+
+
+
+
+ Helper class to encapsulate shared memory functionality
+ Also cares of proper cleanup of file mapping object and cew
+
+
+
+
+ Summary description for SharedMemoryStream.
+
+
+
+
+ By creating a private ctor, we keep the compiler from creating a default ctor
+
+
+
+
+ Mark - or + signs that are unary ops as no output
+
+
+
+
+
+ Handles SSL connections for the Classic and X protocols.
+
+
+
+
+ Contains the connection options provided by the user.
+
+
+
+
+ A flag to establish how certificates are to be treated and validated.
+
+
+
+
+ Defines the supported TLS protocols.
+
+
+
+
+ Retrieves a certificate from PEM file.
+
+
+
+
+ Retrieves a collection containing the client SSL PFX certificates.
+
+ Dependent on connection string settings.
+ Either file or store based certificates are used.
+
+
+
+ Initiates the SSL connection.
+
+ The base stream.
+ The encoding used in the SSL connection.
+ The connection string used to establish the connection.
+ Boolean that indicates if the function will be executed asynchronously.
+ The cancellation token.
+ A instance ready to initiate an SSL connection.
+
+
+
+ Verifies the SSL certificates used for authentication.
+
+ An object that contains state information for this validation.
+ The MySQL server certificate used to authenticate the remote party.
+ The chain of certificate authorities associated with the remote certificate.
+ One or more errors associated with the remote certificate.
+ true if no errors were found based on the selected SSL mode; false, otherwise.
+
+
+
+ Gets the extension of the specified file.
+
+ The path of the file.
+ Flag to indicate if the result should be converted to lower case.
+ The . character is ommited from the result.
+
+
+
+
+ Summary description for StreamCreator.
+
+
+
+
+ Set the keepalive timeout on the socket.
+
+ The socket object.
+ The keepalive timeout, in seconds.
+
+
+
+ Summary description for Version.
+
+
+
+
+ Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle.
+
+
+
+
+ Raises an exception if the specified connection option is null, empty or whitespace.
+
+ The connection option to verify.
+ The name of the connection option.
+
+
+
+ Reads the specified file as a byte array.
+
+ The path of the file to read.
+ A byte array representing the read file.
+
+
+
+ Reads the SSL certificate file.
+
+ The path to the certificate file.
+ A instance representing the SSL certificate file.
+
+
+
+ Reads the SSL certificate key file.
+
+ The path to the certificate key file.
+ A instance representing the SSL certificate key file.
+
+
+
+ Verifies that the certificate has not yet expired.
+
+ The certificate to verify.
+
+
+
+ Verifies a certificate CA status.
+
+ The certificate to validate.
+ A flag indicating the expected CA status.
+
+
+
+ Verifies that the certificate was signed using the private key that corresponds to the specified public key
+
+ The client side certificate containing the public key.
+ The server certificate.
+
+
+
+ Verifies that no SSL policy errors regarding the identitfy of the host were raised.
+
+ A instance set with the raised SSL errors.
+
+
+
+ Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer.
+
+ The CA certificate.
+ The server certificate.
+
+
+
+
+ Gets and sets the host list.
+
+
+
+
+ Gets the active host.
+
+
+
+
+ Active host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ object that represents the next available host.
+
+
+
+ Implements common elements that allow to manage the hosts available for client side failover.
+
+
+
+
+ Gets and sets the failover group which consists of a host list.
+
+
+
+
+ Resets the manager.
+
+
+
+
+ Sets the host list to be used during failover operations.
+
+ The host list.
+ The failover method.
+
+
+
+ Attempts to establish a connection to a host specified from the list.
+
+ The original connection string set by the user.
+ An out parameter that stores the updated connection string.
+ A object in case this is a pooling scenario.
+ A flag indicating if the default port is used in the connection.
+ An instance if the connection was succesfully established, a exception is thrown otherwise.
+
+
+
+
+ Creates a if more than one host is found.
+
+ A string containing an unparsed list of hosts.
+ true if the connection is X Protocol; otherwise false.
+ true if the connection data is a URI; otherwise false.
+ The number of hosts found, -1 if an error was raised during parsing.
+
+
+
+ Creates a object based on the provided parameters.
+
+ The host string that can be a simple host name or a host name and port.
+ The priority of the host.
+ The port number of the host.
+ true if the connection data is a URI; otherwise false.
+
+
+
+
+ Attempts the next host in the list. Moves to the first element if the end of the list is reached.
+
+
+
+
+ Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order.
+
+
+
+
+ Determines the next host on which to attempt a connection randomly.
+
+
+
+
+ Depicts a host which can be failed over to.
+
+
+
+
+ Gets and sets the name or address of the host.
+
+
+
+
+ Gets and sets the port number.
+
+
+
+
+ Gets a value between 0 and 100 which represents the priority of the host.
+
+
+
+
+ Flag to indicate if this host is currently being used.
+
+
+
+
+ Flag to indicate if this host has been attempted to connection.
+
+
+
+
+ Time since the host has been demoted.
+
+
+
+
+ Initializes a object.
+
+ The host.
+ The port.
+ The priority.
+
+
+
+ Compares two objects of type .
+
+ FailoverServer object to compare.
+ True if host properties are the same. Otherwise, false.
+
+
+
+ Manages the hosts available for client side failover using the Random Failover method.
+ The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Random object to get the next host.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ Manages the hosts available for client side failover using the Sequential Failover method.
+ The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached.
+
+
+
+
+ The initial host taken from the list.
+
+
+
+
+ The index of the current host.
+
+
+
+
+ The host for the current connection attempt.
+
+
+
+
+ Sets the initial active host.
+
+
+
+
+ Determines the next host.
+
+ A object that represents the next available host.
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null.
+
+
+
+
+ Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to access a field before calling Read().
+
+
+
+
+ Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}.
+
+
+
+
+ Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins.
+
+
+
+
+ Looks up a localized string similar to Authentication plugin '{0}' is currently not supported.
+
+
+
+
+ Looks up a localized string similar to Version string not in acceptable format.
+
+
+
+
+ Looks up a localized string similar to The buffer cannot be null.
+
+
+
+
+ Looks up a localized string similar to The buffer is not large enough.
+
+
+
+
+ Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher.
+
+
+
+
+ Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above.
+
+
+
+
+ Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements.
+
+
+
+
+ Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns.
+
+
+
+
+ Looks up a localized string similar to Chaos isolation level is not supported .
+
+
+
+
+ Looks up a localized string similar to Clear-password authentication is not supported over insecure channels.
+
+
+
+
+ Looks up a localized string similar to The CommandText property has not been properly initialized.
+
+
+
+
+ Looks up a localized string similar to Compression is not supported.
+
+
+
+
+ Looks up a localized string similar to The connection is already open.
+
+
+
+
+ Looks up a localized string similar to Connection unexpectedly terminated.
+
+
+
+
+ Looks up a localized string similar to Connection must be valid and open.
+
+
+
+
+ Looks up a localized string similar to The connection is not open.
+
+
+
+
+ Looks up a localized string similar to The connection property has not been set or is null.
+
+
+
+
+ Looks up a localized string similar to Could not find specified column in results: {0}.
+
+
+
+
+ Looks up a localized string similar to Count cannot be negative.
+
+
+
+
+ Looks up a localized string similar to SetLength is not a valid operation on CompressedStream.
+
+
+
+
+ Looks up a localized string similar to The given value was not in a supported format.
+
+
+
+
+ Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first.
+
+
+
+
+ Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details.
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions.
+
+
+
+
+ Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted.
+
+
+
+
+ Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted.
+
+
+
+
+ Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted.
+
+
+
+
+ Looks up a localized string similar to Unable to locate any hosts for {0}.
+
+
+
+
+ Looks up a localized string similar to Encoding error during validation.
+
+
+
+
+ Looks up a localized string similar to Error creating socket connection.
+
+
+
+
+ Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute.
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during command execution.
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered during data read.
+
+
+
+
+ Looks up a localized string similar to Fatal error encountered attempting to read the resultset.
+
+
+
+
+ Looks up a localized string similar to Challenge received is corrupt.
+
+
+
+
+ Looks up a localized string similar to FIDO registration is missing.
+
+
+
+
+ Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater.
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a certificate.
+
+
+
+
+ Looks up a localized string similar to The specified file cannot be converted to a key.
+
+
+
+
+ Looks up a localized string similar to Failed to read file at the specified location.
+
+
+
+
+ Looks up a localized string similar to No file path has been provided for the connection option {0}.
+
+
+
+
+ Looks up a localized string similar to From index and length use more bytes than from contains.
+
+
+
+
+ Looks up a localized string similar to From index must be a valid index inside the from buffer.
+
+
+
+
+ Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from server.
+
+
+
+
+ Looks up a localized string similar to Value has an unsupported format.
+
+
+
+
+ Looks up a localized string similar to An incorrect response was received from the server.
+
+
+
+
+ Looks up a localized string similar to Index and length use more bytes than to has room for.
+
+
+
+
+ Looks up a localized string similar to Index must be a valid position in the buffer.
+
+
+
+
+ Looks up a localized string similar to The provided key is invalid.
+
+
+
+
+ Looks up a localized string similar to Certificate with Thumbprint '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to You have specified an invalid column ordinal.
+
+
+
+
+ Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'.
+
+
+
+
+ Looks up a localized string similar to The host name or IP address is invalid.
+
+
+
+
+ Looks up a localized string similar to Microsecond must be a value between 0 and 999999.
+
+
+
+
+ Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond.
+
+
+
+
+ Looks up a localized string similar to Either provide a valid path for 'allowloadlocalinfileinpath' or enable 'allowloadlocalinfile'.
+
+
+
+
+ Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'.
+
+
+
+
+ Looks up a localized string similar to The certificate is invalid.
+
+
+
+
+ Looks up a localized string similar to Unable to validate the signature.
+
+
+
+
+ Looks up a localized string similar to Unable to verify the signature.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type.
+
+
+
+
+ Looks up a localized string similar to '{0}' is an illegal value for a boolean option.
+
+
+
+
+ Looks up a localized string similar to Keyword does not allow null values.
+
+
+
+
+ Looks up a localized string similar to Option not supported.
+
+
+
+
+ Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'.
+
+
+
+
+ Looks up a localized string similar to Mixing named and unnamed parameters is not allowed.
+
+
+
+
+ Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected.
+
+
+
+
+ Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream does not support seeking.
+
+
+
+
+ Looks up a localized string similar to NamedPipeStream doesn't support SetLength.
+
+
+
+
+ Looks up a localized string similar to The new value must be a MySqlParameter object.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed.
+
+
+
+
+ Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set.
+
+
+
+
+ Looks up a localized string similar to Nested transactions are not supported.
+
+
+
+
+ Looks up a localized string similar to The host {0} does not support SSL connections.
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix.
+
+
+
+
+ Looks up a localized string similar to The object is not open or has been disposed.
+
+
+
+
+ Looks up a localized string similar to OCI configuration file could not be read.
+
+
+
+
+ Looks up a localized string similar to OCI configuration profile not found.
+
+
+
+
+ Looks up a localized string similar to OCI configuration file does not contain a 'fingerprint' or 'key_file' entry.
+
+
+
+
+ Looks up a localized string similar to OCI configuration entry 'key_file' does not reference a valid key file.
+
+
+
+
+ Looks up a localized string similar to Private key could not be found at location given by OCI configuration entry 'key_file'.
+
+
+
+
+ Looks up a localized string similar to The OCI SDK cannot be found or is not installed.
+
+
+
+
+ Looks up a localized string similar to Secutiry token file could not be found at location given by OCI configuration entry 'security_token_file'.
+
+
+
+
+ Looks up a localized string similar to The size of the OCI security token file exceeds the maximum value of 10KB allowed.
+
+
+
+
+ Looks up a localized string similar to The offset cannot be negative.
+
+
+
+
+ Looks up a localized string similar to Offset must be a valid position in buffer.
+
+
+
+
+ Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords.
+
+
+
+
+ Looks up a localized string similar to The OpenID Connect Identity Token is empty.
+
+
+
+
+ Looks up a localized string similar to The OpenID Connect Identity Token is invalid.
+
+
+
+
+ Looks up a localized string similar to The option '{0}' is not currently supported..
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' has already been defined.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot have a negative value.
+
+
+
+
+ Looks up a localized string similar to Parameter cannot be null.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' can't be null or empty.
+
+
+
+
+ Looks up a localized string similar to Parameter index was not found in Parameter Collection.
+
+
+
+
+ Looks up a localized string similar to Parameter is invalid.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' must be defined.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' was not found during prepare.
+
+
+
+
+ Looks up a localized string similar to Parameter can't be null or empty.
+
+
+
+
+ Looks up a localized string similar to Password must be valid and contain length characters.
+
+
+
+
+ Looks up a localized string similar to This category includes a series of counters for MySQL.
+
+
+
+
+ Looks up a localized string similar to .NET Data Provider for MySQL.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server.
+
+
+
+
+ Looks up a localized string similar to Hard Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache.
+
+
+
+
+ Looks up a localized string similar to Soft Procedure Queries.
+
+
+
+
+ Looks up a localized string similar to same name are not supported.
+
+
+
+
+ Looks up a localized string similar to MySQL Server {0} dos not support query attributes.
+
+
+
+
+ Looks up a localized string similar to MySQL Connector/NET does not support query attributes with prepared statements for this version of MySQL Server.
+
+
+
+
+ Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed.
+
+
+
+
+ Looks up a localized string similar to Reading from the stream has failed.
+
+
+
+
+ Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess.
+
+
+
+
+ Looks up a localized string similar to Replicated connections allow only readonly statements.
+
+
+
+
+ Looks up a localized string similar to Attempt to connect to '{0}' server failed.
+
+
+
+
+ Looks up a localized string similar to No available server found.
+
+
+
+
+ Looks up a localized string similar to Replication group '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to Replicated server not found: '{0}'.
+
+
+
+
+ Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine.
+
+
+
+
+ Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter.
+
+
+
+
+ Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections.
+
+
+
+
+ Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0.
+
+
+
+
+ Looks up a localized string similar to Snapshot isolation level is not supported.
+
+
+
+
+ Looks up a localized string similar to Socket streams do not support seeking.
+
+
+
+
+ Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache.
+
+
+
+
+ Looks up a localized string similar to Stored procedures are not supported on this version of MySQL.
+
+
+
+
+ Looks up a localized string similar to The certificate authority (CA) does not match.
+
+
+
+
+ Looks up a localized string similar to The host name does not match the name on the certificate.
+
+
+
+
+ Looks up a localized string similar to The certificate is not a certificate authority (CA).
+
+
+
+
+ Looks up a localized string similar to SSL Connection error.
+
+
+
+
+ Looks up a localized string similar to Connection protocol '{0}' does not support SSL connections.
+
+
+
+
+ Looks up a localized string similar to The stream has already been closed.
+
+
+
+
+ Looks up a localized string similar to The stream does not support reading.
+
+
+
+
+ Looks up a localized string similar to The stream does not support writing.
+
+
+
+
+ Looks up a localized string similar to String can't be empty.
+
+
+
+
+ Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
+
+
+
+
+ Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server.
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions only contains non valid TLS protocols. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to TLS protocols TLSv1 and TLSv1.1 are no longer supported. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to Specified list of TLS versions is empty. Accepted values are TLSv1.2 and TLSv1.3.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Closed.
+
+
+
+
+ Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'.
+
+
+
+
+ Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Closed.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Normalized: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Query Opened: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Set Database: {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement closed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement executed: statement id = {1}.
+
+
+
+
+ Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}.
+
+
+
+
+ Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query.
+
+
+
+
+ Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor.
+
+
+
+
+ Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts.
+
+
+
+
+ Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details.
+
+
+
+
+ Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled.
+
+
+
+
+ Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered.
+
+
+
+
+ Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?.
+
+
+
+
+ Looks up a localized string similar to Unable to execute stored procedure '{0}'.
+
+
+
+
+ Looks up a localized string similar to There was an error parsing the foreign key definition.
+
+
+
+
+ Looks up a localized string similar to Error encountered reading the RSA public key.
+
+
+
+
+ Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string.
+
+
+
+
+ Looks up a localized string similar to Unable to start a second async operation while one is running.
+
+
+
+
+ Looks up a localized string similar to Unix sockets are not supported on Windows.
+
+
+
+
+ Looks up a localized string similar to Unknown authentication method '{0}' was requested.
+
+
+
+
+ Looks up a localized string similar to Unknown connection protocol.
+
+
+
+
+ Looks up a localized string similar to MySQL user '{0}' does not equal the logged-in Windows user '{1}'.
+
+
+
+
+ Looks up a localized string similar to Trying to upload a file from outside the path set on 'allowloadlocalinfileinpath' is invalid.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type.
+
+
+
+
+ Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid.
+
+
+
+
+ Looks up a localized string similar to An event handler for WebAuthnActionRequested was not specified.
+
+
+
+
+ Looks up a localized string similar to The timeout of 15 seconds for user interaction with FIDO device has been exceeded.
+
+
+
+
+ Looks up a localized string similar to Windows authentication connections are not supported on {0}.
+
+
+
+
+ Looks up a localized string similar to Writing to the stream failed.
+
+
+
+
+ Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Appdata path is not defined.
+
+
+
+
+ Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection.
+
+
+
+
+ Looks up a localized string similar to You can't get more sessions because Client is closed.
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' does not support value '{1}'.
+
+
+
+
+ Looks up a localized string similar to Client option '{0}' is not recognized as valid.
+
+
+
+
+ Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'.
+
+
+
+
+ Looks up a localized string similar to Compression requested but the compression algorithm negotiation failed.
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported.
+
+
+
+
+ Looks up a localized string similar to Compression using {0} is not supported in .NET Framework.
+
+
+
+
+ Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable.
+
+
+
+
+ Looks up a localized string similar to Compression is not enabled.
+
+
+
+
+ Looks up a localized string similar to Compression requested but the server does not support it.
+
+
+
+
+ Looks up a localized string similar to There are still decompressed messages pending to be processed.
+
+
+
+
+ Looks up a localized string similar to Custom type mapping is only supported from .NET Core 3.1 and later.
+
+
+
+
+ Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled.
+
+
+
+
+ Looks up a localized string similar to Scheme '{0}' is not valid.
+
+
+
+
+ Looks up a localized string similar to The document path cannot be null or an empty string.
+
+
+
+
+ Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes".
+
+
+
+
+ Looks up a localized string similar to Key name in connection attribute cannot be an empty string.
+
+
+
+
+ Looks up a localized string similar to At least one option must be specified.
+
+
+
+
+ Looks up a localized string similar to This feature is currently not supported.
+
+
+
+
+ Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher.
+
+
+
+
+ Looks up a localized string similar to Collation with id '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs.
+
+
+
+
+ Looks up a localized string similar to Connection Data is incorrect.
+
+
+
+
+ Looks up a localized string similar to The connection string is invalid.
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid connection string attribute.
+
+
+
+
+ Looks up a localized string similar to The connection timeout value must be a positive integer (including 0).
+
+
+
+
+ Looks up a localized string similar to Decimal (BCD) format is invalid.
+
+
+
+
+ Looks up a localized string similar to Field type with name '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to Index type with name '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to The value provided is not a valid JSON document. {0}.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid column name in the row.
+
+
+
+
+ Looks up a localized string similar to {0} is not a valid index for the row.
+
+
+
+
+ Looks up a localized string similar to Session state is not valid.
+
+
+
+
+ Looks up a localized string similar to Invalid Uri .
+
+
+
+
+ Looks up a localized string similar to Invalid uri query value.
+
+
+
+
+ Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_".
+
+
+
+
+ Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both.
+
+
+
+
+ Looks up a localized string similar to Keyword '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to Keyword not supported.
+
+
+
+
+ Looks up a localized string similar to Field '{0}' is mandatory.
+
+
+
+
+ Looks up a localized string similar to Missed required schema option.
+
+
+
+
+ Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead.
+
+
+
+
+ Looks up a localized string similar to There is no data at index {0}.
+
+
+
+
+ Looks up a localized string similar to No 'host' has been specified.
+
+
+
+
+ Looks up a localized string similar to No more data in resultset.
+
+
+
+
+ Looks up a localized string similar to Object '{0}' not found.
+
+
+
+
+ Looks up a localized string similar to No placeholders.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection idle was too long.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: connection was killed by a different session.
+
+
+
+
+ Looks up a localized string similar to Connection closed. Reason: server was shutdown.
+
+
+
+
+ Looks up a localized string similar to {0} must be a value greater than 0.
+
+
+
+
+ Looks up a localized string similar to Path not found '{0}'.
+
+
+
+
+ Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool.
+
+
+
+
+ Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead.
+
+
+
+
+ Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host.
+
+
+
+
+ Looks up a localized string similar to The priority must be between 0 and 100.
+
+
+
+
+ Looks up a localized string similar to ProgramData path is not defined.
+
+
+
+
+ Looks up a localized string similar to Replacement document has an '_id' that is
+ different from the matched document.
+
+
+
+
+ Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server, client library, or both.
+
+
+
+
+ Looks up a localized string similar to The process of closing the resultset and resulted in results being lost.
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server.
+
+
+
+
+ Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server.
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded.
+
+
+
+
+ Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded.
+
+
+
+
+ Looks up a localized string similar to Unable to connect to any specified host.
+
+
+
+
+ Looks up a localized string similar to Unable to read or decode data value.
+
+
+
+
+ Looks up a localized string similar to Unable to open a session.
+
+
+
+
+ Looks up a localized string similar to Unexpected end of packet found while reading data values.
+
+
+
+
+ Looks up a localized string similar to Field name '{0}' is not allowed.
+
+
+
+
+ Looks up a localized string similar to Unknown placeholder :{0}.
+
+
+
+
+ Looks up a localized string similar to Value '{0}' is not of the correct type.
+
+
+
+
+ Summary description for MySqlUInt64.
+
+
+
+
+ An exception thrown by MySQL when a type conversion does not succeed.
+
+
+
+ Initializes a new instance of the class with a specified error message.
+ Message describing the error.
+
+
+
+ Represents a datetime data type object in a MySql database.
+
+
+
+
+ Defines whether the UTF or local timezone will be used.
+
+
+
+
+ Constructs a new MySqlDateTime object by setting the individual time properties to
+ the given values.
+
+ The year to use.
+ The month to use.
+ The day to use.
+ The hour to use.
+ The minute to use.
+ The second to use.
+ The microsecond to use.
+
+
+
+ Constructs a new MySqlDateTime object by using values from the given object.
+
+ The object to copy.
+
+
+
+ Constructs a new MySqlDateTime object by copying the current value of the given object.
+
+ The MySqlDateTime object to copy.
+
+
+
+ Enables the contruction of a MySqlDateTime object by parsing a string.
+
+
+
+
+ Indicates if this object contains a value that can be represented as a DateTime
+
+
+
+ Returns the year portion of this datetime
+
+
+ Returns the month portion of this datetime
+
+
+ Returns the day portion of this datetime
+
+
+ Returns the hour portion of this datetime
+
+
+ Returns the minute portion of this datetime
+
+
+ Returns the second portion of this datetime
+
+
+
+ Returns the milliseconds portion of this datetime
+ expressed as a value between 0 and 999
+
+
+
+
+ Returns the microseconds portion of this datetime (6 digit precision)
+
+
+
+
+ Returns true if this datetime object has a null value
+
+
+
+
+ Retrieves the value of this as a DateTime object.
+
+
+
+ Returns this value as a DateTime
+
+
+ Returns a MySQL specific string representation of this value
+
+
+
+
+
+
+
+
+ Represents a decimal data type object in a MySql database.
+
+
+
+
+ Gets a boolean value signaling if the type is null.
+
+
+
+
+ Gets or sets the decimal precision of the type.
+
+
+
+
+ Gets or sets the scale of the type.
+
+
+
+
+ Gets the decimal value associated to this type.
+
+
+
+
+ Converts this decimal value to a double value.
+
+ The value of this type converted to a dobule value.
+
+
+
+ Represents a geometry data type object in a MySql database.
+
+
+
+
+ Gets the x coordinate.
+
+
+
+
+ Gets the y coordinate.
+
+
+
+
+ Gets the SRID value.
+
+
+
+
+ Gets a boolean value that signals if the type is null.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+
+ Gets the value associated to this type.
+
+
+
+ Returns the Well-Known Text representation of this value
+ POINT({0} {1})", longitude, latitude
+ http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html
+
+
+
+ Get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+
+
+
+ Try to get value from WKT format
+ SRID=0;POINT (x y) or POINT (x y)
+
+ WKT string format
+ Out mysqlGeometryValue
+
+
+
+ Sets the DSInfo when GetSchema is called for the DataSourceInformation collection.
+
+
+
+
+ Gets the well-known text representation of the geomtry object.
+
+ A string representation of the WKT.
+
+
+
+ Enables X Protocol packets from the network stream to be retrieved and processed
+
+
+
+
+ The instance of the stream that holds the network connection with MySQL Server.
+
+
+
+
+ This field is used to enable compression and decompression actions in the communication channel.
+
+
+
+
+ A Queue to store the pending packets removed from the
+
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+
+
+
+ Creates a new instance of XPacketProcessor.
+
+ The stream to be used as communication channel.
+ The XCompressionController to be used for compression actions.
+
+
+
+ Identifies the kind of packet received over the network and execute
+ the corresponding processing.
+
+
+
+
+ Reads data from the network stream and create a packet of type .
+
+ A .
+
+
+
+ Sends the read/write actions to the MyNetworkStream class.
+
+
+
+
+ Reads the pending packets present in the network channel and processes them accordingly.
+
+
+
+
+ Implementation of EXTERNAL authentication type.
+
+
+
+
+ Implementation of MySQL41 authentication type.
+
+
+
+
+ Implementation of PLAIN authentication type.
+
+
+
+
+ Compares two Guids in string format.
+
+ The first string to compare.
+ The first string to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Compares two objects.
+
+ The first to compare.
+ The second to compare.
+ An integer that indicates the lexical relationship between the two comparands, similar to
+
+
+
+ Provides functionality for loading unmanaged libraries.
+
+
+
+
+ Loads the specified unmanaged library from the embedded resources.
+
+ The application name.
+ The library name.
+
+
+
+ Provides support for configuring X Protocol compressed messages.
+
+
+
+
+ The capabilities sub-key used to specify the compression algorithm.
+
+
+
+
+ The capabilities key used to specify the compression capability.
+
+
+
+
+ Messages with a value lower than this threshold will not be compressed.
+
+
+
+
+ Default value for enabling or disabling combined compressed messages.
+
+
+
+
+ Default value for the maximum number of combined compressed messages contained in a compression message.
+
+
+
+
+ The capabilities sub-key used to specify if combining compressed messages is permitted.
+
+
+
+
+ The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message.
+
+
+
+
+ Buffer used to store the data received from the server.
+
+
+
+
+ Deflate stream used for compressing data.
+
+
+
+
+ Deflate stream used for decompressing data.
+
+
+
+
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+
+ Stores the communication packet generated the last time ReadNextBufferedMessage method was called.
+
+
+
+
+ Stream used to store multiple X Protocol messages.
+
+
+
+
+ ZStandard stream used for decompressing data.
+
+
+
+
+ Main constructor used to set the compression algorithm and initialize the list of messages to
+ be compressed by the client.
+
+ The compression algorithm to use.
+ Flag indicating if the initialization is for compression or decompression.
+
+
+
+ Gets or sets the list of messages that should be compressed by the client when compression is enabled.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Flag indicating if compression is enabled.
+
+
+
+
+ Flag indicating if the last decompressed message contains multiple messages.
+
+
+
+
+ General method used to compress data using the compression algorithm defined in the constructor.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the deflate_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the lz4_message algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ Compresses data using the zstd_stream algorithm.
+
+ The data to compress.
+ A compressed byte array.
+
+
+
+ General method used to decompress data using the compression algorithm defined in the constructor.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the deflate_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the lz4_message compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Decompresses data using the zstd_stream compression algorithm.
+
+ The data to decompress.
+ The expected length of the decompressed data.
+ A decompressed byte array.
+
+
+
+ Closes and disposes of any open streams.
+
+
+
+
+ Gets the byte array representing the next X Protocol frame that is stored in cache.
+
+ A byte array representing an X Protocol frame.
+
+
+
+ Gets a representing the next X Protocol frame that is stored in cache.
+
+ A with the next X Protocol frame.
+
+
+
+ Constructor that sets the stream used to read or write data.
+
+ The stream used to read or write data.
+ The socket to use.
+
+
+
+ Constructor that sets the stream used to read or write data and the compression controller.
+
+ The stream used to read or write data.
+ The compression controller for reading.
+ The compression controller for writing.
+ The socket to use.
+
+
+
+ Gets or sets the compression controller uses to manage compression operations.
+
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The integer representation of the client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Writes X Protocol frames to the X Plugin.
+
+ The client message identifier used for the message.
+ The message to include in the X Protocol frame.
+
+
+
+ Reads X Protocol frames incoming from the X Plugin.
+
+ A instance representing the X Protocol frame that was read.
+
+
+
+ Abstract class for the protocol base operations in client/server communication.
+
+
+
+
+ Expression parser for MySQL-X protocol.
+
+
+ string being parsed.
+
+
+ Token stream produced by lexer.
+
+
+ Parser's position in token stream.
+
+
+ Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2".
+
+
+ Number of positional placeholders.
+
+
+ Are relational columns identifiers allowed?
+
+
+ Token types used by the lexer.
+
+
+ Token. Includes type and string value of the token.
+
+
+ Mapping of reserved words to token types.
+
+
+ Does the next character equal the given character? (respects bounds)
+
+
+ Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a
+ digit or '.').
+
+ @param i The current position in the string
+ @return the next position in the string after the number.
+
+
+ Lexer for MySQL-X expression language.
+
+
+ Assert that the token at pos is of type type.
+
+
+ Does the current token have type `t'?
+
+
+ Does the next token have type `t'?
+
+
+ Does the token at position `pos' have type `t'?
+
+
+ Consume token.
+
+ @return the string value of the consumed token
+
+
+ Parse a paren-enclosed expression list. This is used for function params or IN params.
+
+ @return a List of expressions
+
+
+ Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST.
+
+ @return an Expr representing the function call.
+
+
+ Parse an identifier for a function call: [schema.]name
+
+
+ Parse a document path member.
+
+
+ Parse a document path array index.
+
+
+ Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $.
+
+
+ Parse a document field.
+
+
+ Parse a column identifier (which may optionally include a JSON document path).
+
+
+ Build a unary operator expression.
+
+
+ Parse an atomic expression. (c.f. grammar at top)
+
+
+ Parse a left-associated binary operator.
+
+ @param types
+ The token types that denote this operator.
+ @param innerParser
+ The inner parser that should be called to parse operands.
+ @return an expression tree of the binary operator or a single operand
+
+
+ Parse the entire string as an expression.
+
+ @return an X-protocol expression tree
+
+
+
+ Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC.
+
+
+ Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias.
+
+
+ Parse an INSERT field name.
+ @todo unit test
+
+
+ Parse an UPDATE field which can include can document paths.
+
+
+ Parse a document projection which is similar to SELECT but with document paths as the target alias.
+
+
+ Parse a list of expressions used for GROUP BY.
+
+
+ @return the number of positional placeholders in the expression.
+
+
+ @return a mapping of parameter names to positions.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar NULL type.
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any).
+
+
+ Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any).
+
+
+ Wrap an Any value in a LITERAL expression.
+
+
+ Build an Any with a string value.
+
+
+
+ Parses an anonymous object into a dictionary.
+
+ The object to parse.
+ A dictionary if the provided object is an anonymous object; otherwise, null.
+
+
+ List of operators which will be serialized as infix operators.
+
+
+ Scalar to string.
+
+
+ JSON document path to string.
+
+
+ Column identifier (or JSON path) to string.
+
+
+ Function call to string.
+
+
+ Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas.
+
+
+ Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN.
+
+
+ Escape a string literal.
+
+
+ Quote a named identifer.
+
+
+ Serialize an expression to a string.
+
+
+
+ Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options
+
+ The namespace
+ The name of the command to be executed on MySql Server
+ Array of KeyValuePairs with the parameters required to build the message
+ void.
+
+
+
+ Sends the delete documents message
+
+
+
+
+ Sends the CRUD modify message
+
+
+
+
+ Class implementation for a default communication kind.
+
+
+
+
+ Constructor method for the communication routing service
+
+ A MySqlXConnectionStringBuilder setted with the information to use in the connection
+
+
+
+ Gets the current connection base on the connection mode
+
+ One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite
+
+
+
+
+ Abstract class used to define the kind of server in environments with multiple types of distributed systems.
+
+
+
+
+ Main class for parsing json strings.
+
+
+
+
+ Initializes a new instance of the JsonParser class.
+
+
+
+
+ Parses the received string into a dictionary.
+
+ The string to parse.
+ A object that represents the parsed string.
+
+
+
+ Abstract class to manage and encapsulate one or more actual connections.
+
+
+
+
+ Creates a new session object with the values of the settings parameter.
+
+ Settings to be used in the session object
+
+
+
+ Sets the connection's charset default collation.
+
+ The opened session.
+ The character set.
+
+
+
+ Gets the version of the server.
+
+ An instance of containing the server version.
+
+
+
+ Gets the thread Id of the connection.
+
+ Thread Id
+
+
+
+ Implementation class for object that manages low-level work of queuing tasks onto threads.
+
+
+
+
+ Implementation class of InternalSession to manage connections using the Xprotocol type object.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Defines the compression controller that will be passed on the instance when
+ compression is enabled.
+
+
+
+
+ Reorder the list of algorithms retrieved from server to the preferred order
+
+
+
+
+ Validate the algorithms given in the connection string are valid compared with enum CompressionAlgorithms
+
+
+
+
+ Negotiates compression capabilities with the server.
+
+ An array containing the compression algorithms supported by the server.
+ An array containing the compression algorithms given by user/client.
+
+
+
+ Prepare the dictionary of arguments required to create a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Prepare the dictionary of arguments required to Modify a MySQL message.
+
+ The name of the MySQL schema.
+ The name of the collection.
+ This object hold the parameters required to Modify the collection.
+
+
+
+
+ Gets the compression algorithm being used to compress or decompress data.
+
+ Flag to indicate if the compression algorithm should be
+ retrieved from the reader or writer controller.
+ The name of the compression algorithm being used if any.
+ null if no compression algorithm is being used.
+
+
+
+ Represents a base class for a Session.
+
+
+
+
+ Flag to set if prepared statements are supported.
+
+
+
+
+ Gets the connection settings for this session.
+
+
+
+
+ Gets the currently active schema.
+
+
+
+
+ Gets the default schema provided when creating the session.
+
+
+
+
+ Gets the connection uri representation of the connection options provided during the creation of the session.
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified connection string.
+
+ The connection used to create the session.
+ A object.
+ is null.
+ Unable to parse the when
+ in URI format.
+
+ When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required.
+ This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required
+ to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that
+ protocol=unix and protocol=unixsocket are synonyms.
+
+ Multiple hosts can be specified as part of the ,
+ which enables client-side failover when trying to establish a connection.
+
+ Connection URI examples:
+ - mysqlx://test:test@[192.1.10.10,localhost]
+ - mysqlx://test:test@[192.1.10.10,127.0.0.1]
+ - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none
+ - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060]
+ - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10
+ - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)]
+ - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)]
+
+
+ Connection string examples:
+ - server=10.10.10.10,localhost;port=33060;uid=test;password=test;
+ - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test;
+ - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none;
+ - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test;
+ - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test;
+
+
+ Failover methods
+ - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until
+ a connection is successful or all the elements from the list have been tried.
+
+ - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting
+ with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either
+ give a priority for every host or no priority to any host.
+
+
+
+
+
+ Initializes a new instance of the BaseSession class based on the specified anonymous type object.
+
+ The connection data as an anonymous type used to create the session.
+ A object.
+ is null.
+
+ Multiple hosts can be specified as part of the , which enables client-side failover when trying to
+ establish a connection.
+
+ To assign multiple hosts, create a property similar to the connection string examples shown in
+ . Note that the value of the property must be a string.
+
+
+
+
+
+ Drops the database/schema with the given name.
+
+ The name of the schema.
+ is null.
+
+
+
+ Creates a schema/database with the given name.
+
+ The name of the schema/database.
+ A object that matches the recently created schema/database.
+
+
+
+ Gets the schema with the given name.
+
+ The name of the schema.
+ A object set with the provided schema name.
+
+
+
+ Gets a list of schemas (or databases) in this session.
+
+ A list containing all existing schemas (or databases).
+
+
+
+ Starts a new transaction.
+
+
+
+
+ Commits the current transaction.
+
+ A object containing the results of the commit operation.
+
+
+
+ Rolls back the current transaction.
+
+
+
+
+ Closes this session or releases it to the pool.
+
+
+
+
+ Closes this session
+
+
+
+
+ Sets a transaction savepoint with an autogenerated name.
+
+ The autogenerated name of the transaction savepoint.
+
+
+
+ Sets a named transaction savepoint.
+
+ The name of the transaction savepoint.
+ The name of the transaction savepoint.
+
+
+
+ Removes the named savepoint from the set of savepoints within the current transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Rolls back a transaction to the named savepoint without terminating the transaction.
+
+ The name of the transaction savepoint.
+
+
+
+ Parses the connection data.
+
+ The connection string or connection URI.
+ A object.
+ An updated connection string representation of the provided connection string or connection URI.
+
+
+
+ Parses a connection URI.
+
+ The connection URI to parse.
+ The connection string representation of the provided .
+
+
+
+ Validates if the string provided is a Unix socket file.
+
+ The Unix socket to evaluate.
+ true if is a valid Unix socket; otherwise, false.
+
+
+
+ Converts the URI object into a connection string.
+
+ An instance with the values for the provided connection options.
+ The path of the Unix socket file.
+ If true the replaces the value for the server connection option; otherwise, false
+ Flag indicating if this is a connection using DNS SRV.
+ A connection string.
+
+
+
+ Parses a connection string.
+
+ The connection string to parse.
+ The parsed connection string.
+
+
+
+ Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters.
+
+ The Unix socket to normalize.
+ A normalized Unix socket.
+
+
+
+ Disposes the current object. Disposes of the managed state if the flag is set to true.
+
+ Flag to indicate if the managed state is to be disposed.
+
+
+
+ Disposes the current object. Code added to correctly implement the disposable pattern.
+
+
+
+
+ Describes the state of the session.
+
+
+
+
+ The session is closed.
+
+
+
+
+ The session is open.
+
+
+
+
+ The session object is connecting to the data source.
+
+
+
+
+ The session object is executing a command.
+
+
+
+
+ Class encapsulating a session pooling functionality.
+
+
+
+
+ Queue of demoted hosts.
+
+
+
+
+ List of hosts that will be attempted to connect to.
+
+
+
+
+ Timer to be used when a host have been demoted.
+
+
+
+
+ Remove hosts from the demoted list that have already been there for more
+ than 120,000 milliseconds and add them to the available hosts list.
+
+
+
+
+ Get a session from pool or create a new one.
+
+
+
+
+
+ Closes all sessions the Client object created and destroys the managed pool.
+
+
+
+
+ Represents a collection of documents.
+
+
+
+
+ Creates an containing the provided objects that can be used to add
+ one or more items to a collection.
+
+ The objects to add.
+ An object containing the objects to add.
+ is null.
+ This method can take anonymous objects, domain objects, or just plain JSON strings.
+ The statement can be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Replaces the document matching the given identifier.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ is null or whitespace.
+ is null.
+ This is a direct execution method. Operation succeeds even if no matching document was found;
+ in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value
+ is ignored.
+
+
+
+ Adds the given document to the collection unless the identifier or any other field that has a unique index
+ already exists, in which case it will update the matching document.
+
+ The unique identifier of the document to replace.
+ The document to replace the matching document.
+ A object containing the results of the execution.
+ The server version is lower than 8.0.3.
+ is null or white space.
+ is null.
+ The is different from the one in .
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition, which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Base abstract class that defines elements inherited by all result types.
+
+
+
+
+ Gets the number of records affected by the statement that generated this result.
+
+
+
+
+ Gets the object of the session.
+
+
+
+
+ Gets a read-only collection of objects derived from statement execution.
+
+
+
+
+ Gets the number of warnings in the collection derived from statement execution.
+
+
+
+
+ No action is performed by this method. It is intended to be overriden by child classes if required.
+
+
+
+
+ Base abstract class for API statement.
+
+
+
+
+
+
+ Initializes a new instance of the BaseStatement class based on the specified session.
+
+ The session where the statement will be executed.
+
+
+
+ Gets the that owns the statement.
+
+
+
+
+ Executes the base statements. This method is intended to be defined by child classes.
+
+ A result object containing the details of the execution.
+
+
+
+ Executes a statement asynchronously.
+
+ A result object containing the details of the execution.
+
+
+
+ Validates if the session is open and valid.
+
+
+
+
+ Sets the status as Changed for prepared statement validation.
+
+
+
+
+ Converts a statement to prepared statement for a second execution
+ without any change but Bind, Limit, or Offset.
+
+
+
+
+ Abstract class for buffered results.
+
+ Generic result type.
+
+
+
+ Index of the current item.
+
+
+
+
+ List of generic items in this buffered result.
+
+
+
+
+ Flag that indicates if all items have been read.
+
+
+
+
+ Gets a dictionary containing the column names and their index.
+
+
+
+
+ Gets the page size set for this buffered result.
+
+
+
+
+ Loads the column data into the field.
+
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ Retrieves one element from the generic items associated to this buffered result.
+
+ A generic object that corresponds to the current or default item.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Gets the current item.
+
+ All items have already been read.
+
+
+
+ Determines if all items have already been read.
+
+ True if all items have been retrived, false otherwise.
+
+
+
+ Resets the value of the field to zero.
+
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Gets an representation of this object.
+
+ An representation of this object.
+
+
+
+ Retrieves a read-only list of the generic items associated to this buffered result.
+
+ A generic list representing items in this buffered result.
+
+
+
+ No body has been defined for this method.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ If false, throws an exception if the collection exists.
+
+
+
+
+ Object which hold the Level and Schema parameters.
+
+
+
+
+ This object store the required parameters to modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to Modify a Collection with schema validation.
+
+
+
+
+ This object store the required parameters to create a Collection with schema validation.
+
+
+
+
+ It can be STRICT to enable schema validation or OFF to disable .
+
+
+
+
+ The JSON which define the rules to be validated in the collection.
+
+
+
+
+ The possible values for parameter Level in Validation object.
+
+
+
+
+ Class to represent an error in this result.
+
+
+
+
+ Numeric code.
+
+
+
+
+ Return code indicating the outcome of the executed SQL statement.
+
+
+
+
+ Error message.
+
+
+
+
+ Initializes a new instance of the ErrorInfo class.
+
+
+
+
+ Abstract class for filterable statements.
+
+ The filterable statement.
+ The database object.
+ The type of result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the FiltarableStatement class based on the target and condition.
+
+ The database object.
+ The optional filter condition.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Sets the number of items to be returned by the operation.
+
+ The number of items to be returned.
+ The implementing statement type.
+ is equal or lower than 0.
+
+
+
+ Sets the number of items to be skipped before including them into the result.
+
+ The number of items to be skipped.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameter name.
+ The value of the parameter.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a DbDoc object.
+ A generic object representing the implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as a JSON string.
+ The implementing statement type.
+
+
+
+ Binds the parameter values in filter expression.
+
+ The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }.
+ The implementing statement type.
+
+
+
+ Executes the statement.
+
+ The function to execute.
+ The generic object to use.
+ A generic result object containing the results of the execution.
+
+
+
+ Clones the filterable data but Session and Target remain the
+ same.
+
+ A clone of this filterable statement.
+
+
+
+ Represents a general statement result.
+
+
+
+
+ Gets the last inserted identifier (if there is one) by the statement that generated this result.
+
+
+
+
+ Gets the list of generated identifiers in the order of the Add() calls.
+
+
+
+
+ Abstract class to select a database object target.
+
+ The database object.
+ The execution result.
+ The type of the implemented object.
+
+
+
+ Initializes a new instance of the TargetedBaseStatement class based on the provided target.
+
+ The database object.
+
+
+
+ Gets the database target.
+
+
+
+
+ Represents a warning in this result.
+
+
+
+
+ Numeric value associated to the warning message.
+
+
+
+
+ Error message.
+
+
+
+
+ Strict level for the warning.
+
+
+
+
+ Initializes a new instance of the WarningInfo class based on the code and msg.
+
+ The code for the warning.
+ The error message for the warning.
+
+
+
+ Represents a chaining collection insert statement.
+
+
+
+
+
+ Adds documents to the collection.
+
+ The documents to add.
+ This object.
+ The array is null.
+
+
+
+ Executes the Add statement.
+
+ A object containing the results of the execution.
+
+
+
+ Implementation class for CRUD statements with collections using an index.
+
+
+
+
+
+ Executes this statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a collection statement.
+
+ Type of
+ Type of object
+
+
+
+ Converts base s into objects.
+
+ Array of objects to be converted to objects.
+ An enumerable collection of objects.
+
+
+
+ Represents the result of an operation that includes a collection of documents.
+
+
+
+
+
+ Represents a chaining collection find statement.
+
+
+
+
+
+ List of column projections that shall be returned.
+
+ List of columns.
+ This object set with the specified columns or fields.
+
+
+
+ Executes the Find statement.
+
+ A object containing the results of execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with the lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the collection aggregation.
+
+ The field list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ This same object set with the specified order criteria.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ This same object set with the specified condition criteria.
+
+
+
+ Represents a chaining collection modify statement.
+
+
+
+
+
+ Sets key and value.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Changes value for a key.
+
+ The document path key.
+ The new value.
+ This object.
+
+
+
+ Removes keys or values from a document.
+
+ An array of document paths representing the keys to be removed.
+ This object.
+
+
+
+ Creates a object set with the changes to be applied to all matching documents.
+
+ The JSON-formatted object describing the set of changes.
+ A object set with the changes described in .
+ can be a object, an anonymous object, a JSON string or a custom type object.
+ is null.
+ is null or white space.
+
+
+
+ Inserts an item into the specified array.
+
+ The document path key including the index on which the item will be inserted.
+ The value to insert into the array.
+ A object containing the updated array.
+
+
+
+ Appends an item to the specified array.
+
+ The document path key.
+ The value to append to the array.
+ A object containing the updated array.
+
+
+
+ Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the modify statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a chaining collection remove statement.
+
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Enables the setting of Where condition for this operation.
+
+ The Where condition.
+ The implementing statement type.
+
+
+
+ Executes the remove statement.
+
+ A object containing the results of the execution.
+
+
+
+ Represents a database object.
+
+
+
+
+ Gets the session that owns the database object.
+
+
+
+
+ Gets the schema that owns the database object.
+
+
+
+
+ Gets the database object name.
+
+
+
+
+ Verifies that the database object exists in the database.
+
+ True if the object exists in database, false otherwise.
+
+
+
+ Represents a generic document in JSON format.
+
+
+
+
+ Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string.
+
+ The value for this DbDoc.
+
+
+
+ Gets the value of a document property.
+
+ The key path for the property.
+
+
+
+
+ Gets the identifier of the document.
+
+
+
+
+ Gets a value indicating if this document has an identifier (property named _id with a value).
+
+
+
+
+ Sets a property on this document.
+
+ The key of the property.
+ The new property value.
+
+
+
+ Returns this document in Json format.
+
+ A Json formatted string.
+
+
+
+ Compares this DbDoc with another one.
+
+ The DbDoc to compare to.
+ True if they are equal, false otherwise.
+
+
+
+ Gets a value that serves as a hash function for a particular type.
+
+ A hash code for the current object.
+
+
+
+ Represents a collection of documents with a generic type.
+
+
+
+
+
+ Initializes a new instance of the generic Collection class based on the specified schema
+ and name.
+
+ The object associated to this collection.
+ The name of the collection.
+
+
+
+ Creates an containing the provided generic object. The add
+ statement can be further modified before execution.
+
+ The generic object to add.
+ An object containing the object to add.
+
+
+
+ Creates a with the given condition that can be used to remove
+ one or more documents from a collection.The statement can then be further modified before execution.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Removes the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object containing the results of the execution.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Creates a with the given condition that can be used to modify one or more
+ documents from a collection.
+
+ The condition to match documents.
+ A object set with the given condition.
+ is null or white space.
+ The statement can then be further modified before execution.
+
+
+
+ Returns the number of documents in this collection on the server.
+
+ The number of documents found.
+
+
+
+ Creates a with the given condition which can be used to find documents in a
+ collection.
+
+ An optional condition to match documents.
+ A object set with the given condition.
+ The statement can then be further modified before execution.
+
+
+
+ Creates an index based on the properties provided in the JSON document.
+
+ The index name.
+ JSON document describing the index to be created.
+
+ is a JSON document with the following fields:
+
+ - fields: array of IndexField objects, each describing a single document member to be
+ included in the index (see below).
+ - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may
+ be omitted.
+
+
+ A single IndexField description consists of the following fields:
+
+ - field: string, the full document path to the document member or field to be indexed.
+ - type: string, one of the supported SQL column types to map the field into (see the following list).
+ For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for
+ indexing may be added.
+ - required: bool, (optional) true if the field is required to exist in the document. defaults to
+ false, except for GEOJSON where it defaults to true.
+ - options: int, (optional) special option flags for use when decoding GEOJSON data.
+ - srid: int, (optional) srid value for use when decoding GEOJSON data.
+
+
+ Supported SQL column types:
+
+ - INT [UNSIGNED]
+ - TINYINT [UNSIGNED]
+ - SMALLINT[UNSIGNED]
+ - MEDIUMINT [UNSIGNED]
+ - INTEGER [UNSIGNED]
+ - BIGINT [UNSIGNED]
+ - REAL [UNSIGNED]
+ - FLOAT [UNSIGNED]
+ - DOUBLE [UNSIGNED]
+ - DECIMAL [UNSIGNED]
+ - NUMERIC [UNSIGNED]
+ - DATE
+ - TIME
+ - TIMESTAMP
+ - DATETIME
+ - TEXT[(length)]
+ - CHAR[(lenght)]
+ - GEOJSON (extra options: options, srid)
+
+
+
+
+
+ Drops a collection index.
+
+ The index name.
+ is null or white space.
+
+
+
+ Verifies if the current collection exists in the server schema.
+
+ true if the collection exists; otherwise, false.
+
+
+
+ Returns the document with the given identifier.
+
+ The unique identifier of the document to replace.
+ A object if a document matching given identifier exists; otherwise, null.
+ is null or white space.
+ This is a direct execution method.
+
+
+
+ Defines elements that allow to iterate through the contents of various items.
+
+
+
+
+ Initializes a new instance of the Iterator class.
+
+
+
+
+ This method is not yet implemented.
+
+
+
+ Exception is always thrown since the body of the method is not yet implemented.
+
+
+
+ Defines a MySql expression.
+
+
+
+
+ Main class for session operations related to Connector/NET implementation of the X DevAPI.
+
+
+
+
+ Opens a session to the server given or to the first available server if multiple servers were specified.
+
+ The connection string or URI string format.
+
+ A object representing the established session.
+ Multiple hosts can be specified as part of the which
+ will enable client side failover when trying to establish a connection. For additional details and syntax
+ examples refer to the remarks section.
+
+
+
+ Opens a session to the server given.
+
+ The connection data for the server.
+
+ A object representing the established session.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection string or URI string format.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in JSON string format.
+ A object representing a session pool.
+
+
+
+ Creates a new instance.
+
+ The connection data.
+
+ The connection options in object format.
+
+
+ new { pooling = new
+ {
+ enabled = true,
+ maxSize = 15,
+ maxIdleTime = 60000,
+ queueTimeout = 60000
+ }
+ }
+
+
+
+ A object representing a session pool.
+
+
+
+ Enables the creation of connection strings by exposing the connection options as properties.
+ Contains connection options specific to the X protocol.
+
+
+
+
+ Main constructor.
+
+
+
+
+ Constructor accepting a connection string.
+
+ The connection string.
+ A flag indicating if the default port is used in the connection.
+
+
+
+ Readonly field containing a collection of classic protocol and protocol shared connection options.
+
+
+
+
+ Gets or sets the connection timeout.
+
+
+
+
+ Gets or sets the connection attributes.
+
+
+
+
+ Path to a local file containing certificate revocation lists.
+
+
+
+
+ Gets or sets the compression type between client and server.
+
+
+
+
+ Gets or sets the compression algorithm.
+
+
+
+
+ Gets or sets a connection option.
+
+ The keyword that identifies the connection option to modify.
+
+
+
+ Retrieves the value corresponding to the supplied key from this .
+
+ The key of the item to retrieve.
+ The value corresponding to the .
+ if was found within the connection string;
+ otherwise, .
+ contains a null value.
+
+
+
+ Represents a table column.
+
+
+
+
+ Gets the original column name.
+
+
+
+
+ Gets the alias of the column name.
+
+
+
+
+ Gets the table name the column orginates from.
+
+
+
+
+ Gets the alias of the table name .
+
+
+
+
+ Gets the schema name the column originates from.
+
+
+
+
+ Gets the catalog the schema originates from.
+ In MySQL protocol this is `def` by default.
+
+
+
+
+ Gets the collation used for this column.
+
+
+
+
+ Gets the character set used for this column.
+
+
+
+
+ Gets the column length.
+
+
+
+
+ Gets the fractional decimal digits for floating point and fixed point numbers.
+
+
+
+
+ Gets the Mysql data type.
+
+
+
+
+ Gets the .NET Clr data type.
+
+
+
+
+ True if it's a signed number.
+
+
+
+
+ True if column is UINT zerofill or BYTES rightpad.
+
+
+
+
+ Initializes a new instance of the Column class.
+
+
+
+
+ Represents a resultset that contains rows of data.
+
+
+
+
+ Gets the columns in this resultset.
+
+
+
+
+ Gets the number of columns in this resultset.
+
+
+
+
+ Gets a list containing the column names in this resultset.
+
+
+
+
+ Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read
+ either by using the Next method or the Buffer method.
+
+
+
+
+ Gets the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Allows getting the value of the column value at the current index.
+
+ The column index.
+ The CLR value at the column index.
+
+
+
+ Returns the index of the given column name.
+
+ The name of the column to find.
+ The numeric index of column.
+
+
+
+ Represents a single row of data in a table.
+
+
+
+
+ Gets the value of the row at the given index.
+
+ The column index to retrieve the value.
+ The value at the index.
+
+
+
+ Gets the value of the column as a string.
+
+ The name of the column.
+ The value of the column as a string.
+
+
+
+ Gets a string based indexer into the row. Returns the value as a CLR type.
+
+ The column index to get.
+ The CLR value for the column.
+
+
+
+ Inherits from . Creates a resultset that contains rows of data.
+
+
+
+
+ Represents a resultset that contains rows of data for relational operations.
+
+
+
+
+ Gets a boolean value indicating if this result has data.
+
+
+
+
+ Moves to next resultset.
+
+ True if there is a new resultset, false otherwise.
+
+
+
+ Represents a sql statement.
+
+
+
+
+ Initializes a new instance of the SqlStament class bassed on the session and sql statement.
+
+ The session the Sql statement belongs to.
+ The Sql statement.
+
+
+
+ Gets the current Sql statement.
+
+
+
+
+ Gets the list of parameters associated to this Sql statement.
+
+
+
+
+ Executes the current Sql statement.
+
+ A object with the resultset and execution status.
+
+
+
+ Binds the parameters values by position.
+
+ The parameter values.
+ This set with the binded parameters.
+
+
+
+ Represents a server Table or View.
+
+
+
+
+ Gets a value indicating whether the object is
+ a View (True) or a Table (False).
+
+
+
+
+ Creates a set with the columns to select. The table select
+ statement can be further modified before execution. This method is intended to select a set
+ of table rows.
+
+ The optional column names to select.
+ A object for select chain operations.
+
+
+
+ Creates a set with the fileds to insert to. The table
+ insert statement can be further modified before exeuction. This method is intended to
+ insert one or multiple rows into a table.
+
+ The list of fields to insert.
+ A object for insert chain operations.
+
+
+
+ Creates a . This method is intended to update table rows
+ values.
+
+ A object for update chain operations.
+
+
+
+ Creates a . This method is intended to delete rows from a
+ table.
+
+ A object for delete chain operations.
+
+
+
+ Returns the number of rows in the table on the server.
+
+ The number of rows.
+
+
+
+ Verifies if the table exists in the database.
+
+ true if the table exists; otherwise, false.
+
+
+
+ Represents a chaining table delete statement.
+
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object representing the implementing statement type.
+
+
+
+ Executes the delete statement.
+
+ A object containing the results of the delete execution.
+
+
+
+ Represents a chaining table insert statement.
+
+
+
+
+ Executes the insert statement.
+
+ A object containing the results of the insert statement.
+
+
+
+ Values to be inserted.
+ Multiple rows supported.
+
+ The values to be inserted.
+ This same object.
+
+
+
+ Represents a chaining table select statement.
+
+
+
+
+ Executes the select statement.
+
+ A object containing the results of the execution and data.
+
+
+
+ Locks matching rows against updates.
+
+ Optional row lock option to use.
+ This same object set with lock shared option.
+ The server version is lower than 8.0.3.
+
+
+
+ Locks matching rows so no other transaction can read or write to it.
+
+ Optional row lock option to use.
+ This same object set with the lock exclusive option.
+ The server version is lower than 8.0.3.
+
+
+
+ Sets the table aggregation.
+
+ The column list for aggregation.
+ This same object set with the specified group-by criteria.
+
+
+
+ Filters criteria for aggregated groups.
+
+ The filter criteria for aggregated groups.
+ This same object set with the specified filter criteria.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a chaining table update statement.
+
+
+
+
+ Executes the update statement.
+
+ A object ocntaining the results of the update statement execution.
+
+
+
+ Column and value to be updated.
+
+ Column name.
+ Value to be updated.
+ This same object.
+
+
+
+ Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like
+ "order ASC" or "pages DESC, age ASC".
+
+ The order criteria.
+ A generic object that represents the implementing statement type.
+
+
+
+ Represents a schema or database.
+
+
+
+
+ Session related to current schema.
+
+
+
+
+ Returns a list of all collections in this schema.
+
+ A list representing all found collections.
+
+
+
+ Returns a list of all tables in this schema.
+
+ A list representing all found tables.
+
+
+
+ Gets a collection by name.
+
+ The name of the collection to get.
+ Ensures the collection exists in the schema.
+ A object matching the given name.
+
+
+
+ Gets a typed collection object. This is useful for using domain objects.
+
+ The name of collection to get.
+ Ensures the collection exists in the schema.
+ A generic object set with the given name.
+
+
+
+ Gets the given collection as a table.
+
+ The name of the collection.
+ A object set with the given name.
+
+
+
+ Gets a table object. Upon return the object may or may not be valid.
+
+ The name of the table object.
+ A object set with the given name.
+
+
+
+ Creates a .
+
+ The name of the collection to create.
+ If false, throws an exception if the collection exists.
+ Collection referente.
+
+
+
+ Creates a including a schema validation.
+
+ The name of the collection to create.
+ This object hold the parameters required to create the collection.
+
+ Collection referente.
+
+
+
+ Modify a collection adding or removing schema validation parameters.
+
+ The name of the collection to create.
+ This object encapsulate the Validation parameters level and schema.
+ Collection referente.
+
+
+
+ Drops the given collection.
+
+ The name of the collection to drop.
+ is null.
+
+
+
+ Determines if this schema actually exists.
+
+ True if exists, false otherwise.
+
+
+
+ Represents a single server session.
+
+
+
+
+ Returns a object that can be used to execute the given SQL.
+
+ The SQL to execute.
+ A object set with the provided SQL.
+
+
+
+ Sets the schema in the database.
+
+ The schema name to be set.
+
+
+
+ Executes a query in the database to get the current schema.
+
+ Current database object or null if no schema is selected.
+
+
+
+ Closes the current session properly after it was closed by the server.
+
+
+
+ Holder for reflection information generated from mysqlx.proto
+
+
+ File descriptor for mysqlx.proto
+
+
+ Holder for extension identifiers generated from the top level of mysqlx.proto
+
+
+
+ *
+ IDs of messages that can be sent from client to the server.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ClientMessages message type.
+
+
+
+ *
+ IDs of messages that can be sent from server to client.
+
+ @note
+ This message is never sent on the wire. It is only used to let ``protoc``:
+ - generate constants
+ - check for uniqueness
+
+
+
+ Container for nested types declared in the ServerMessages message type.
+
+
+
+ NOTICE has to stay at 11 forever
+
+
+
+ Field number for the "msg" field.
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Field number for the "severity" field.
+
+
+
+ * severity of the error message
+
+
+
+ Gets whether the "severity" field is set
+
+
+ Clears the value of the "severity" field
+
+
+ Field number for the "code" field.
+
+
+
+ * error code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "sql_state" field.
+
+
+
+ * SQL state
+
+
+
+ Gets whether the "sql_state" field is set
+
+
+ Clears the value of the "sql_state" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * human-readable error message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Error message type.
+
+
+ Holder for reflection information generated from mysqlx_connection.proto
+
+
+ File descriptor for mysqlx_connection.proto
+
+
+
+ *
+ Capability
+
+ A tuple of a ``name`` and a @ref Mysqlx::Datatypes::Any
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ Capabilities
+
+ list of Capability
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Get supported connection capabilities and their current state.
+
+ @returns @ref Mysqlx::Connection::Capabilities or @ref Mysqlx::Error
+
+
+
+
+ *
+ Set connection capabilities atomically.
+ Only provided values are changed; other values are left
+ unchanged. If any of the changes fails, all changes are
+ discarded.
+
+ @pre active sessions == 0
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "capabilities" field.
+
+
+
+ *
+ Announce to the server that the client wants to close the connection.
+
+ It discards any session state of the server.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "uncompressed_size" field.
+
+
+ Gets whether the "uncompressed_size" field is set
+
+
+ Clears the value of the "uncompressed_size" field
+
+
+ Field number for the "server_messages" field.
+
+
+ Gets whether the "server_messages" field is set
+
+
+ Clears the value of the "server_messages" field
+
+
+ Field number for the "client_messages" field.
+
+
+ Gets whether the "client_messages" field is set
+
+
+ Clears the value of the "client_messages" field
+
+
+ Field number for the "payload" field.
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Holder for reflection information generated from mysqlx_crud.proto
+
+
+ File descriptor for mysqlx_crud.proto
+
+
+
+ *
+ DataModel to use for filters, names, ...
+
+
+
+
+ *
+ ViewAlgorithm defines how MySQL Server processes the view
+
+
+
+
+ * MySQL chooses which algorithm to use
+
+
+
+
+ * the text of a statement that refers to the view and the view
+ definition are merged
+
+
+
+
+ * the view are retrieved into a temporary table
+
+
+
+
+ *
+ ViewSqlSecurity defines the security context in which the view is going to be
+ executed; this means that VIEW can be executed with current user permissions or
+ with permissions of the user who defined the VIEW
+
+
+
+
+ * use current user permissions
+
+
+
+
+ * use permissions of the user who defined the VIEW
+
+
+
+
+ *
+ ViewCheckOption limits the write operations done on a `VIEW`
+ (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE`
+
+
+
+
+ * the view WHERE clause is checked, but no underlying views are checked
+
+
+
+
+ * the view WHERE clause is checked, then checking recurses
+ to underlying views
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "alias" field.
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "document_path" field.
+
+
+ Field number for the "source" field.
+
+
+
+ * the expression identifying an element from the source data,
+ which can include a column identifier or any expression
+
+
+
+ Field number for the "alias" field.
+
+
+
+ * optional alias. Required for DOCUMENTs (clients may use
+ the source string as default)
+
+
+
+ Gets whether the "alias" field is set
+
+
+ Clears the value of the "alias" field
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema" field.
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Gets whether the "row_count" field is set
+
+
+ Clears the value of the "row_count" field
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+ Gets whether the "offset" field is set
+
+
+ Clears the value of the "offset" field
+
+
+
+ *
+ LimitExpr, in comparison to Limit, is able to specify that row_count and
+ offset are placeholders.
+ This message support expressions of following types Expr/literal/UINT,
+ Expr/PLACEHOLDER.
+
+
+
+ Field number for the "row_count" field.
+
+
+
+ * maximum rows to filter
+
+
+
+ Field number for the "offset" field.
+
+
+
+ * maximum rows to skip before applying the row_count
+
+
+
+
+ *
+ Sort order
+
+
+
+ Field number for the "expr" field.
+
+
+ Field number for the "direction" field.
+
+
+ Gets whether the "direction" field is set
+
+
+ Clears the value of the "direction" field
+
+
+ Container for nested types declared in the Order message type.
+
+
+ Field number for the "source" field.
+
+
+
+ * specification of the value to be updated
+ - if data_model is TABLE, a column name may be specified and also
+ a document path, if the column has type JSON
+ - if data_model is DOCUMENT, only document paths are allowed
+
+ @note in both cases, schema and table must be not set
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * the type of operation to be performed
+
+
+
+ Gets whether the "operation" field is set
+
+
+ Clears the value of the "operation" field
+
+
+ Field number for the "value" field.
+
+
+
+ * an expression to be computed as the new value for the operation
+
+
+
+ Container for nested types declared in the UpdateOperation message type.
+
+
+
+ * only allowed for TABLE
+
+
+
+
+ * no value (removes the identified path from a object or array)
+
+
+
+
+ * sets the new value on the identified path
+
+
+
+
+ * replaces a value if the path exists
+
+
+
+
+ * source and value must be documents
+
+
+
+
+ * insert the value in the array at the index identified in the source path
+
+
+
+
+ * append the value on the array at the identified path
+
+
+
+
+ * merge JSON object value with the provided patch expression
+
+
+
+
+ *
+ Find Documents/Rows in a Collection/Table
+
+ @startuml
+ client -> server: Find
+ ... one or more Resultset ...
+ @enduml
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection in which to find
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * list of column projections that shall be returned
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter criteria
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * sort-order in which the rows/document shall be returned in
+
+
+
+ Field number for the "grouping" field.
+
+
+
+ * column expression list for aggregation (GROUP BY)
+
+
+
+ Field number for the "grouping_criteria" field.
+
+
+
+ * filter criteria for aggregated groups
+
+
+
+ Field number for the "locking" field.
+
+
+
+ * perform row locking on matches
+
+
+
+ Gets whether the "locking" field is set
+
+
+ Clears the value of the "locking" field
+
+
+ Field number for the "locking_options" field.
+
+
+
+ * additional options how to handle locked rows
+
+
+
+ Gets whether the "locking_options" field is set
+
+
+ Clears the value of the "locking_options" field
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * numbers of rows that shall be skipped and returned
+ (user can set one of: limit, limit_expr)
+
+
+
+ Container for nested types declared in the Find message type.
+
+
+
+ * Lock matching rows against updates
+
+
+
+
+ * Lock matching rows so no other transaction can read or write to it
+
+
+
+
+ * Do not wait to acquire row lock, fail with an error
+ if a requested row is locked
+
+
+
+
+ * Do not wait to acquire a row lock,
+ remove locked rows from the result set
+
+
+
+
+ *
+ Insert documents/rows into a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to insert into
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "projection" field.
+
+
+
+ * name of the columns to insert data into
+ (empty if data_model is DOCUMENT)
+
+
+
+ Field number for the "row" field.
+
+
+
+ * set of rows to insert into the collection/table (a single expression
+ with a JSON document literal or an OBJECT expression)
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in row expressions
+
+
+
+ Field number for the "upsert" field.
+
+
+
+ * true if this should be treated as an Upsert
+ (that is, update on duplicate key)
+
+
+
+ Gets whether the "upsert" field is set
+
+
+ Clears the value of the "upsert" field
+
+
+ Container for nested types declared in the Insert message type.
+
+
+
+ * set of fields to insert as a one row
+
+
+
+ Field number for the "field" field.
+
+
+
+ *
+ Update documents/rows in a collection/table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * datamodel that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "operation" field.
+
+
+
+ * list of operations to be applied.
+ Valid operations will depend on the data_model
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ Delete documents/rows from a Collection/Table
+
+ @returns @ref Mysqlx::Resultset
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * collection to change
+
+
+
+ Field number for the "data_model" field.
+
+
+
+ * data model that the operations refer to
+
+
+
+ Gets whether the "data_model" field is set
+
+
+ Clears the value of the "data_model" field
+
+
+ Field number for the "criteria" field.
+
+
+
+ * filter expression to match rows that the operations will apply on
+
+
+
+ Field number for the "limit" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+ Field number for the "order" field.
+
+
+
+ * specifies order of matched rows
+
+
+
+ Field number for the "args" field.
+
+
+
+ * values for parameters used in filter expression
+
+
+
+ Field number for the "limit_expr" field.
+
+
+
+ * limits the number of rows to match
+ (user can set one of: limit, limit_expr)
+
+
+
+
+ *
+ CreateView create view based on indicated @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be created
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer, if the value isn't set then the definer
+ is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defines how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+ Field number for the "replace_existing" field.
+
+
+
+ * if true then suppress error when created view already exists;
+ just replace it
+
+
+
+ Gets whether the "replace_existing" field is set
+
+
+ Clears the value of the "replace_existing" field
+
+
+
+ *
+ ModifyView modify existing view based on indicated
+ @ref Mysqlx::Crud::Find message
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be modified
+
+
+
+ Field number for the "definer" field.
+
+
+
+ * user name of the definer,
+ if the value isn't set then the definer is current user
+
+
+
+ Gets whether the "definer" field is set
+
+
+ Clears the value of the "definer" field
+
+
+ Field number for the "algorithm" field.
+
+
+
+ * defined how MySQL Server processes the view
+
+
+
+ Gets whether the "algorithm" field is set
+
+
+ Clears the value of the "algorithm" field
+
+
+ Field number for the "security" field.
+
+
+
+ * defines the security context in which the view is going be executed
+
+
+
+ Gets whether the "security" field is set
+
+
+ Clears the value of the "security" field
+
+
+ Field number for the "check" field.
+
+
+
+ * limits the write operations done on a VIEW
+
+
+
+ Gets whether the "check" field is set
+
+
+ Clears the value of the "check" field
+
+
+ Field number for the "column" field.
+
+
+
+ * defines the list of aliases for column names specified in `stmt`
+
+
+
+ Field number for the "stmt" field.
+
+
+
+ * Mysqlx.Crud.Find message from which the SELECT statement
+ is going to be build
+
+
+
+
+ *
+ DropView removing existing view
+
+
+
+ Field number for the "collection" field.
+
+
+
+ * name of the VIEW object, which should be deleted
+
+
+
+ Field number for the "if_exists" field.
+
+
+
+ * if true then suppress error when deleted view does not exists
+
+
+
+ Gets whether the "if_exists" field is set
+
+
+ Clears the value of the "if_exists" field
+
+
+ Holder for reflection information generated from mysqlx_cursor.proto
+
+
+ File descriptor for mysqlx_cursor.proto
+
+
+
+ *
+ Open a cursor
+
+ @startuml
+ client -> server: Open
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end alt
+ @enduml
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; the ID is going to represent
+ the new cursor and assigned to it the statement
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement for which the resultset is going to be iterated through by the cursor
+
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+ Container for nested types declared in the Open message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "prepare_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ *
+ Fetch next portion of data from a cursor
+
+ @startuml
+ client -> server: Fetch
+ alt Success
+ ... none or partial Resultsets or full Resultsets ...
+ client <- server: StmtExecuteOk
+ else
+ client <- server: Error
+ end
+ @enduml
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be already open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Field number for the "fetch_rows" field.
+
+
+
+ * number of rows that should be retrieved from sequential cursor
+
+
+
+ Gets whether the "fetch_rows" field is set
+
+
+ Clears the value of the "fetch_rows" field
+
+
+
+ *
+ Close cursor
+
+ @startuml
+ client -> server: Close
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "cursor_id" field.
+
+
+
+ * client-side assigned cursor ID; must be allocated/open
+
+
+
+ Gets whether the "cursor_id" field is set
+
+
+ Clears the value of the "cursor_id" field
+
+
+ Holder for reflection information generated from mysqlx_datatypes.proto
+
+
+ File descriptor for mysqlx_datatypes.proto
+
+
+
+ a scalar
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "v_signed_int" field.
+
+
+ Gets whether the "v_signed_int" field is set
+
+
+ Clears the value of the "v_signed_int" field
+
+
+ Field number for the "v_unsigned_int" field.
+
+
+ Gets whether the "v_unsigned_int" field is set
+
+
+ Clears the value of the "v_unsigned_int" field
+
+
+ Field number for the "v_octets" field.
+
+
+
+ 4 is unused, was Null which doesn't have a storage anymore
+
+
+
+ Field number for the "v_double" field.
+
+
+ Gets whether the "v_double" field is set
+
+
+ Clears the value of the "v_double" field
+
+
+ Field number for the "v_float" field.
+
+
+ Gets whether the "v_float" field is set
+
+
+ Clears the value of the "v_float" field
+
+
+ Field number for the "v_bool" field.
+
+
+ Gets whether the "v_bool" field is set
+
+
+ Clears the value of the "v_bool" field
+
+
+ Field number for the "v_string" field.
+
+
+ Container for nested types declared in the Scalar message type.
+
+
+
+ * a string with a charset/collation
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+
+ * an opaque octet sequence, with an optional content_type
+ See @ref Mysqlx::Resultset::ContentType_BYTES for list of known values.
+
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "content_type" field.
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+
+ *
+ An object
+
+
+
+ Field number for the "fld" field.
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ An Array
+
+
+
+ Field number for the "value" field.
+
+
+
+ *
+ A helper to allow all field types
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scalar" field.
+
+
+ Field number for the "obj" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Any message type.
+
+
+ Holder for reflection information generated from mysqlx_expect.proto
+
+
+ File descriptor for mysqlx_expect.proto
+
+
+
+ *
+ Open an Expect block and set/unset the conditions that have to
+ be fulfilled.
+
+ If any of the conditions fail, all enclosed messages will fail
+ with a ``Mysqlx::Error`` message.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Field number for the "cond" field.
+
+
+ Container for nested types declared in the Open message type.
+
+
+
+ * copy the operations from the parent Expect-block
+
+
+
+
+ * start with a empty set of operations
+
+
+
+ Field number for the "condition_key" field.
+
+
+ Gets whether the "condition_key" field is set
+
+
+ Clears the value of the "condition_key" field
+
+
+ Field number for the "condition_value" field.
+
+
+ Gets whether the "condition_value" field is set
+
+
+ Clears the value of the "condition_value" field
+
+
+ Field number for the "op" field.
+
+
+ Gets whether the "op" field is set
+
+
+ Clears the value of the "op" field
+
+
+ Container for nested types declared in the Condition message type.
+
+
+
+ * Change error propagation behaviour
+
+
+
+
+ * Check if X Protocol field exists
+
+
+
+
+ * Check if X Protocol supports document _id generation
+
+
+
+
+ * set the condition; set, if not set; overwrite, if set
+
+
+
+
+ * unset the condition
+
+
+
+
+ *
+ Close a Expect block.
+
+ Closing a Expect block restores the state of the previous Expect
+ block for the following messages.
+
+ @returns @ref Mysqlx::Ok on success, @ref Mysqlx::Error on error
+
+
+
+ Holder for reflection information generated from mysqlx_expr.proto
+
+
+ File descriptor for mysqlx_expr.proto
+
+
+
+ *
+ The "root" of the expression tree.
+
+ If expression type is PLACEHOLDER, then it refers to the value
+ of a parameter specified when executing a statement (see args
+ field of StmtExecute command). Field position (which must be
+ present for such an expression) gives 0-based position of the
+ parameter in the parameter list.
+
+ @par production list
+ @code{unparsed}
+ expr: operator |
+ : identifier |
+ : function_call |
+ : variable |
+ : literal |
+ : object |
+ : array |
+ : placeholder
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "identifier" field.
+
+
+ Field number for the "variable" field.
+
+
+ Gets whether the "variable" field is set
+
+
+ Clears the value of the "variable" field
+
+
+ Field number for the "literal" field.
+
+
+ Field number for the "function_call" field.
+
+
+ Field number for the "operator" field.
+
+
+ Field number for the "position" field.
+
+
+ Gets whether the "position" field is set
+
+
+ Clears the value of the "position" field
+
+
+ Field number for the "object" field.
+
+
+ Field number for the "array" field.
+
+
+ Container for nested types declared in the Expr message type.
+
+
+
+ *
+ Identifier: name, schame.name
+
+ @par production list
+ @code{unparsed}
+ identifier: string "." string |
+ : string
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "schema_name" field.
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Document path item
+
+ @par production list
+ @code{unparsed}
+ document_path: path_item | path_item document_path
+ path_item : member | array_index | "**"
+ member : "." string | "." "*"
+ array_index : "[" number "]" | "[" "*" "]"
+ @endcode
+
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "value" field.
+
+
+ Gets whether the "value" field is set
+
+
+ Clears the value of the "value" field
+
+
+ Field number for the "index" field.
+
+
+
+ * used in case of ARRY_INDEX
+
+
+
+ Gets whether the "index" field is set
+
+
+ Clears the value of the "index" field
+
+
+ Container for nested types declared in the DocumentPathItem message type.
+
+
+
+ * .member
+
+
+
+
+ * \.*
+
+
+
+
+ * [index]
+
+
+
+
+ * [*]
+
+
+
+
+ * **
+
+
+
+
+ Field number for the "document_path" field.
+
+
+
+ * document path
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "table_name" field.
+
+
+
+ * name of table
+
+
+
+ Gets whether the "table_name" field is set
+
+
+ Clears the value of the "table_name" field
+
+
+ Field number for the "schema_name" field.
+
+
+
+ * name of schema
+
+
+
+ Gets whether the "schema_name" field is set
+
+
+ Clears the value of the "schema_name" field
+
+
+
+ *
+ Function call: ``func(a, b, "1", 3)``
+
+ @par production list
+ @code{unparsed}
+ function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")"
+ @endcode
+
+
+
+ Field number for the "name" field.
+
+
+
+ * identifier of function; at least name of it
+
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+ Field number for the "name" field.
+
+
+
+ * name of operator
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "param" field.
+
+
+
+ * list of parameters
+
+
+
+
+ *
+ An object (with expression values)
+
+
+
+ Field number for the "fld" field.
+
+
+
+ * list of fields
+
+
+
+ Container for nested types declared in the Object message type.
+
+
+ Field number for the "key" field.
+
+
+
+ * identifier of field
+
+
+
+ Gets whether the "key" field is set
+
+
+ Clears the value of the "key" field
+
+
+ Field number for the "value" field.
+
+
+
+ * value of field
+
+
+
+
+ *
+ An array of expressions
+
+
+
+ Field number for the "value" field.
+
+
+
+ * list of values
+
+
+
+ Holder for reflection information generated from mysqlx_notice.proto
+
+
+ File descriptor for mysqlx_notice.proto
+
+
+
+ *
+ Common frame for all notices
+
+ | ``.type`` | Value |
+ |---------------------------------------------------|------ |
+ | @ref Mysqlx::Notice::Warning | 1 |
+ | @ref Mysqlx::Notice::SessionVariableChanged | 2 |
+ | @ref Mysqlx::Notice::SessionStateChanged | 3 |
+ | @ref Mysqlx::Notice::GroupReplicationStateChanged | 4 |
+ | @ref Mysqlx::Notice::ServerHello | 5 |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * the type of the payload
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "scope" field.
+
+
+
+ * global or local notification
+
+
+
+ Gets whether the "scope" field is set
+
+
+ Clears the value of the "scope" field
+
+
+ Field number for the "payload" field.
+
+
+
+ * the payload of the notification
+
+
+
+ Gets whether the "payload" field is set
+
+
+ Clears the value of the "payload" field
+
+
+ Container for nested types declared in the Frame message type.
+
+
+
+ * scope of notice
+
+
+
+
+ * type of notice payload
+
+
+
+
+ *
+ Server-side warnings and notes
+
+ @par ``.scope`` == ``local``
+ ``.level``, ``.code`` and ``.msg`` map the content of:
+ @code{sql}
+ SHOW WARNINGS
+ @endcode
+
+ @par ``.scope`` == ``global``
+ (undefined) Will be used for global, unstructured messages like:
+ - server is shutting down
+ - a node disconnected from group
+ - schema or table dropped
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|-------------------------|
+ | ``.type`` | 1 |
+ | ``.scope`` | ``local`` or ``global`` |
+
+
+
+ Field number for the "level" field.
+
+
+
+ * Note or Warning
+
+
+
+ Gets whether the "level" field is set
+
+
+ Clears the value of the "level" field
+
+
+ Field number for the "code" field.
+
+
+
+ * warning code
+
+
+
+ Gets whether the "code" field is set
+
+
+ Clears the value of the "code" field
+
+
+ Field number for the "msg" field.
+
+
+
+ * warning message
+
+
+
+ Gets whether the "msg" field is set
+
+
+ Clears the value of the "msg" field
+
+
+ Container for nested types declared in the Warning message type.
+
+
+
+ *
+ Notify clients about changes to the current session variables.
+
+ Every change to a variable that is accessible through:
+
+ @code{sql}
+ SHOW SESSION VARIABLES
+ @endcode
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|----------|
+ | ``.type`` | 2 |
+ | ``.scope`` | ``local``|
+
+
+
+ Field number for the "param" field.
+
+
+
+ * name of the variable
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * the changed value of param
+
+
+
+ Field number for the "param" field.
+
+
+
+ * parameter key
+
+
+
+ Gets whether the "param" field is set
+
+
+ Clears the value of the "param" field
+
+
+ Field number for the "value" field.
+
+
+
+ * updated value
+
+
+
+ Container for nested types declared in the SessionStateChanged message type.
+
+
+
+ .. more to be added
+
+
+
+
+ *
+ Notify clients about group replication state changes
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 4 |
+ |``.scope`` | ``global`` |
+
+
+
+ Field number for the "type" field.
+
+
+
+ * type of group replication event
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "view_id" field.
+
+
+
+ * view identifier
+
+
+
+ Gets whether the "view_id" field is set
+
+
+ Clears the value of the "view_id" field
+
+
+ Container for nested types declared in the GroupReplicationStateChanged message type.
+
+
+
+ *
+ Notify clients about connection to X Protocol server
+
+ | @ref Mysqlx::Notice::Frame Field | Value |
+ |-----------------------------------|------------|
+ |``.type`` | 5 |
+ |``.scope`` | ``global`` |
+
+
+
+ Holder for reflection information generated from mysqlx_prepare.proto
+
+
+ File descriptor for mysqlx_prepare.proto
+
+
+
+ *
+ Prepare a new statement
+
+ @startuml
+ client -> server: Prepare
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, which is going to identify
+ the result of preparation
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * defines one of following messages to be prepared:
+ Crud::Find, Crud::Insert, Crud::Delete, Crud::Upsert, Sql::StmtExecute
+
+
+
+ Container for nested types declared in the Prepare message type.
+
+
+ Field number for the "type" field.
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "find" field.
+
+
+ Field number for the "insert" field.
+
+
+ Field number for the "update" field.
+
+
+ Field number for the "delete" field.
+
+
+ Field number for the "stmt_execute" field.
+
+
+ Container for nested types declared in the OneOfMessage message type.
+
+
+
+ Determine which of optional fields was set by the client
+ (Workaround for missing "oneof" keyword in pb2.5)
+
+
+
+
+ *
+ Execute already-prepared statement
+
+ @startuml
+
+ client -> server: Execute
+ alt Success
+ ... Resultsets...
+ client <- server: StmtExecuteOk
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Field number for the "args" field.
+
+
+
+ * Arguments to bind to the prepared statement
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for
+ @ref Mysqlx::Resultset::ColumnMetaData, skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Deallocate already-prepared statement
+
+ @startuml
+ client -> server: Deallocate
+ alt Success
+ client <- server: Ok
+ else Failure
+ client <- server: Error
+ end
+ @enduml
+
+ @returns @ref Mysqlx::Ok or @ref Mysqlx::Error
+
+
+
+ Field number for the "stmt_id" field.
+
+
+
+ * client-side assigned statement ID, must be already prepared
+
+
+
+ Gets whether the "stmt_id" field is set
+
+
+ Clears the value of the "stmt_id" field
+
+
+ Holder for reflection information generated from mysqlx_resultset.proto
+
+
+ File descriptor for mysqlx_resultset.proto
+
+
+
+ *
+ A hint about the higher-level encoding of a BYTES field
+
+ |type | value | description |
+ |------| -------|-------------------------|
+ |BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ |BYTES | 0x0002 | JSON (text encoding) |
+ |BYTES | 0x0003 | XML (text encoding) |
+
+ @note
+ this list isn't comprehensive. As a guideline: the field's value is expected
+ to pass a validator check on client and server if this field is set.
+ If the server adds more internal datatypes that rely on BLOB storage
+ like image manipulation, seeking into complex types in BLOBs, ... more
+ types will be added.
+
+
+
+
+ *
+ A hint about the higher-level encoding of a DATETIME field
+
+ |type |value |description |
+ |---------|-------|-------------------------------------------|
+ |DATE |0x0001 |DATETIME contains only date part |
+ |DATETIME |0x0002 |DATETIME contains both date and time parts |
+
+
+
+
+ *
+ Resultsets are finished, OUT paramset is next:
+
+
+
+
+ *
+ Resultset and out-params are finished, but more resultsets available
+
+
+
+
+ *
+ All resultsets are finished
+
+
+
+
+ *
+ Cursor is opened; still, the execution of PrepFetch or PrepExecute ended
+
+
+
+
+ *
+ Meta data of a column
+
+ @note
+ The encoding used for the different ``bytes`` fields in the
+ meta data is externally controlled. See also:
+ https://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
+
+ @par
+ @note
+ The server may not set the ``original_{table|name}`` fields
+ if they are equal to the plain ``{table|name}`` field.
+
+ @par
+ @note
+ A client has to reconstruct it like:
+ @code{py}
+ if .original_name is empty and .name is not empty:
+ .original_name = .name
+
+ if .original_table is empty and .table is not empty:
+ .original_table = .table
+ @endcode
+
+ @par
+ @note
+ ``Compact metadata format`` can be requested by the client.
+ In that case, only ``.type`` is set and all other fields are empty.
+
+ Expected data type of Mysqlx.Resultset.Row per SQL Type for
+ non-NULL values:
+
+ | SQL Type | .type | .length | .frac\_dig | .flags | .charset |
+ |-------------------|-----------|---------|------------|--------|----------|
+ | TINY | SINT | x | | | |
+ | TINY UNSIGNED | UINT | x | | x | |
+ | SHORT | SINT | x | | | |
+ | SHORT UNSIGNED | UINT | x | | x | |
+ | INT24 | SINT | x | | | |
+ | INT24 UNSIGNED | UINT | x | | x | |
+ | INT | SINT | x | | | |
+ | INT UNSIGNED | UINT | x | | x | |
+ | LONGLONG | SINT | x | | | |
+ | LONGLONG UNSIGNED | UINT | x | | x | |
+ | DOUBLE | DOUBLE | x | x | x | |
+ | FLOAT | FLOAT | x | x | x | |
+ | DECIMAL | DECIMAL | x | x | x | |
+ | VARCHAR,CHAR,... | BYTES | x | | x | x |
+ | GEOMETRY | BYTES | | | | |
+ | TIME | TIME | x | | | |
+ | DATE | DATETIME | x | | | |
+ | DATETIME | DATETIME | x | | | |
+ | YEAR | UINT | x | | x | |
+ | TIMESTAMP | DATETIME | x | | | |
+ | SET | SET | | | | x |
+ | ENUM | ENUM | | | | x |
+ | NULL | BYTES | | | | |
+ | BIT | BIT | x | | | |
+
+ @note
+ The SQL "NULL" value is sent as an empty field value in
+ @ref Mysqlx::Resultset::Row.
+
+ @par Tip
+ The protobuf encoding of primitive data types is described in
+ https://developers.google.com/protocol-buffers/docs/encoding
+
+ + SINT
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ minus sign) of the type.
+ @note
+ The valid range is 0-255, but usually you'll see 1-20.
+
+ | SQL Type | Maximum Digits per Type |
+ |------------------|-------------------------|
+ | TINY SIGNED | 4 |
+ | SHORT SIGNED | 6 |
+ | INT24 SIGNED | 8 |
+ | INT SIGNED | 11 |
+ | LONGLONG SIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value``@n
+ Variable length encoded signed 64 integer.
+
+ + UINT
+
+ - ``.flags & 1`` (zerofill) @n
+ The client has to left pad with 0's up to .length.
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits of the
+ type.
+ @note
+ The valid range is 0-255, but usually you'll see
+ 1-20.
+
+ | SQL Type | max digits per type |
+ |----------------------|---------------------|
+ | TINY UNSIGNED | 3 |
+ | SHORT UNSIGNED | 5 |
+ | INT24 UNSIGNED | 8 |
+ | INT UNSIGNED | 10 |
+ | LONGLONG UNSIGNED | 20 |
+
+ @par Tip
+ Definition of ``M`` are in
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html.
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + BIT
+
+ - ``.length`` @n
+ Maximum number of displayable binary digits.
+ @note
+ The valid range for M of the ``BIT`` type is 1 - 64.
+
+ @par Tip
+ https://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
+
+ - ``value`` @n
+ Variable length encoded unsigned 64 integer.
+
+ + DOUBLE
+
+ - ``.length`` @n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits`` @n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'double'.
+
+ + FLOAT
+
+ - ``.length``@n
+ Maximum number of displayable decimal digits (including
+ the decimal point and ``.fractional_digits``).
+
+ - ``.fractional_digits``@n
+ Maximum number of displayable decimal digits following
+ the decimal point.
+
+ - ``value``@n
+ Encoded as protobuf's 'float'.
+
+ + BYTES, ENUM
+ @note
+ BYTES is used for all opaque byte strings that may have a charset:
+ - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
+ - TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
+ - VARCHAR, VARBINARY
+ - CHAR, BINARY
+ - ENUM
+
+ - ``.length``@n
+ Maximum length of characters of the underlying type.
+
+ - ``.flags & 1`` (rightpad) @n
+ If the length of the field is less than ``.length``, the
+ receiver is supposed to add padding characters to the
+ right end of the string. If the ``.charset`` is
+ "binary", the padding character is ``0x00``, otherwise
+ it is a space character as defined by that character
+ set.
+ | SQL Type | .length | .charset | .flags |
+ |---------------|----------|-----------|----------|
+ | TINYBLOB | 256 | binary | |
+ | BLOB | 65535 | binary | |
+ | VARCHAR(32) | 32 | utf8 | |
+ | VARBINARY(32) | 32 | utf8\_bin | |
+ | BINARY(32) | 32 | binary | rightpad |
+ | CHAR(32) | 32 | utf8 | rightpad |
+
+ - ``value``
+ Sequence of bytes with added one extra ``0x00`` byte at
+ the end. To obtain the original string, the extra
+ ``0x00`` should be removed. The length of the string can
+ be acquired with protobuf's field ``length()`` method:
+
+ ``length of sequence-of-bytes = length-of-field - 1``
+ @note
+ The extra byte allows to distinguish between a NULL
+ and empty byte sequence.
+
+ + TIME
+
+ A time value.
+
+ - ``value``@n
+ The following bytes sequence:
+
+ ``negate [ hour [ minutes [ seconds [ useconds ]]]]``
+
+ - negate - one byte, should be one of: 0x00 for "+",
+ 0x01 for "-"
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+
+ @par Tip
+ The protobuf encoding in
+ https://developers.google.com/protocol-buffers/docs/encoding.
+
+ @note
+ Hour, minutes, seconds, and useconds are optional if
+ all the values to the right are 0.
+
+ Example: ``0x00 -> +00:00:00.000000``
+
+ + DATETIME
+
+ A date or date and time value.
+
+ - ``value`` @n
+ A sequence of variants, arranged as follows:
+
+ ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]``
+
+ - year - variable length encoded unsigned64 value for
+ the year
+
+ - month - variable length encoded unsigned64 value for
+ the month
+
+ - day - variable length encoded unsigned64 value for
+ the day
+
+ - hour - optional variable length encoded unsigned64
+ value for the hour
+
+ - minutes - optional variable length encoded unsigned64
+ value for the minutes
+
+ - seconds - optional variable length encoded unsigned64
+ value for the seconds
+
+ - useconds - optional variable length encoded
+ unsigned64 value for the microseconds
+ @note
+ Hour, minutes, seconds, useconds are optional if all
+ the values to the right are 0.
+
+ - ``.flags``@n
+ | Name | Position |
+ |---------------|----------|
+ | is\_timestamp | 1 |
+
+ + DECIMAL
+
+ An arbitrary length number. The number is encoded as a
+ single byte indicating the position of the decimal point
+ followed by the Packed BCD encoded number. Packed BCD is
+ used to simplify conversion to and from strings and other
+ native arbitrary precision math data types. See also: packed
+ BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+ - ``.length``
+ Maximum number of displayable decimal digits
+ (*excluding* the decimal point and sign, but including
+ ``.fractional_digits``).
+ @note
+ Should be in the range of 1 - 65.
+
+ - ``.fractional_digits``
+ The decimal digits to display out of length.
+ @note
+ Should be in the range of 0 - 30.
+
+ ``value``
+ The following bytes sequence:
+
+ ``scale | BCD+ sign [0x00]?``
+
+ - scale - 8bit scale value (number of decimal digit after the '.')
+
+ - BCD - BCD encoded digits (4 bits for each digit)
+
+ - sign - sign encoded on 4 bits (0xc = "+", 0xd = "-")
+
+ - 0x0 - last 4bits if length(digits) % 2 == 0
+
+ Example: ``x04 0x12 0x34 0x01
+ 0xd0 -> -12.3401``
+
+ + SET
+
+ A list of strings representing a SET of values.
+
+ - ``value``@n
+ A sequence of 0 or more of protobuf's bytes (length
+ prepended octets) or one of the special sequences with a
+ predefined meaning listed below.
+
+ Example (length of the bytes array shown in brackets):
+ - ``[0]`` - the NULL value
+
+ - ``[1] 0x00`` - a set containing a blank string ''
+
+ - ``[1] 0x01`` - this would be an invalid value,
+ but is to be treated as the empty set
+
+ - ``[2] 0x01 0x00`` - a set with a single item, which is the '0'
+ character
+
+ - ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR
+
+
+
+ Field number for the "type" field.
+
+
+
+ * datatype of the field in a row
+
+
+
+ Gets whether the "type" field is set
+
+
+ Clears the value of the "type" field
+
+
+ Field number for the "name" field.
+
+
+
+ * name of the column
+
+
+
+ Gets whether the "name" field is set
+
+
+ Clears the value of the "name" field
+
+
+ Field number for the "original_name" field.
+
+
+
+ * name of the column before an alias was applied
+
+
+
+ Gets whether the "original_name" field is set
+
+
+ Clears the value of the "original_name" field
+
+
+ Field number for the "table" field.
+
+
+
+ * name of the table the column originates from
+
+
+
+ Gets whether the "table" field is set
+
+
+ Clears the value of the "table" field
+
+
+ Field number for the "original_table" field.
+
+
+
+ * name of the table the column originates from before an alias was applied
+
+
+
+ Gets whether the "original_table" field is set
+
+
+ Clears the value of the "original_table" field
+
+
+ Field number for the "schema" field.
+
+
+
+ * schema the column originates from
+
+
+
+ Gets whether the "schema" field is set
+
+
+ Clears the value of the "schema" field
+
+
+ Field number for the "catalog" field.
+
+
+
+ * catalog the schema originates from
+ @note
+ As there is currently no support for catalogs in MySQL,
+ don't expect this field to be set. In the MySQL C/S
+ protocol the field had the value ``def`` all the time
+
+
+
+ Gets whether the "catalog" field is set
+
+
+ Clears the value of the "catalog" field
+
+
+ Field number for the "collation" field.
+
+
+ Gets whether the "collation" field is set
+
+
+ Clears the value of the "collation" field
+
+
+ Field number for the "fractional_digits" field.
+
+
+
+ * displayed factional decimal digits for floating point and
+ fixed point numbers
+
+
+
+ Gets whether the "fractional_digits" field is set
+
+
+ Clears the value of the "fractional_digits" field
+
+
+ Field number for the "length" field.
+
+
+
+ * maximum count of displayable characters of .type
+
+
+
+ Gets whether the "length" field is set
+
+
+ Clears the value of the "length" field
+
+
+ Field number for the "flags" field.
+
+
+
+ * ``.type`` specific flags
+ | Type | Value | Description |
+ |---------|--------|--------------|
+ | UINT | 0x0001 | zerofill |
+ | DOUBLE | 0x0001 | unsigned |
+ | FLOAT | 0x0001 | unsigned |
+ | DECIMAL | 0x0001 | unsigned |
+ | BYTES | 0x0001 | rightpad |
+
+ | Value | Description |
+ |--------|-----------------|
+ | 0x0010 | NOT\_NULL |
+ | 0x0020 | PRIMARY\_KEY |
+ | 0x0040 | UNIQUE\_KEY |
+ | 0x0080 | MULTIPLE\_KEY |
+ | 0x0100 | AUTO\_INCREMENT |
+
+ default: 0
+
+
+
+ Gets whether the "flags" field is set
+
+
+ Clears the value of the "flags" field
+
+
+ Field number for the "content_type" field.
+
+
+
+ * a hint about the higher-level encoding of a BYTES field
+ | Type | Value | Description |
+ |--------|--------|-------------------------|
+ | BYTES | 0x0001 | GEOMETRY (WKB encoding) |
+ | BYTES | 0x0002 | JSON (text encoding) |
+ | BYTES | 0x0003 | XML (text encoding) |
+ @note
+ This list isn't comprehensive. As a guideline: the field's
+ value is expected to pass a validator check on client
+ and server if this field is set. If the server adds more
+ internal data types that rely on BLOB storage like image
+ manipulation, seeking into complex types in BLOBs, and
+ more types will be added
+
+
+
+ Gets whether the "content_type" field is set
+
+
+ Clears the value of the "content_type" field
+
+
+ Container for nested types declared in the ColumnMetaData message type.
+
+
+
+ *
+ Row in a Resultset.
+
+ A row is represented as a list of fields encoded as byte blobs.
+ Value of each field is encoded as sequence of bytes using
+ encoding appropriate for the type of the value given by
+ ``ColumnMetadata``, as specified in the @ref Mysqlx::Resultset::ColumnMetaData
+ description.
+
+
+
+ Field number for the "field" field.
+
+
+ Holder for reflection information generated from mysqlx_session.proto
+
+
+ File descriptor for mysqlx_session.proto
+
+
+
+ *
+ The initial message send from the client to the server to start
+ the authentication process.
+
+ @returns @ref Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "mech_name" field.
+
+
+
+ * authentication mechanism name
+
+
+
+ Gets whether the "mech_name" field is set
+
+
+ Clears the value of the "mech_name" field
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+ Field number for the "initial_response" field.
+
+
+
+ * initial response
+
+
+
+ Gets whether the "initial_response" field is set
+
+
+ Clears the value of the "initial_response" field
+
+
+
+ *
+ Send by client or server after an @ref Mysqlx::Session::AuthenticateStart
+ to exchange more authentication data.
+
+ @returns Mysqlx::Session::AuthenticateContinue
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Sent by the server after successful authentication.
+
+
+
+ Field number for the "auth_data" field.
+
+
+
+ * authentication data
+
+
+
+ Gets whether the "auth_data" field is set
+
+
+ Clears the value of the "auth_data" field
+
+
+
+ *
+ Reset the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Field number for the "keep_open" field.
+
+
+
+ * if is true the session will be reset, but stays authenticated; otherwise,
+ the session will be closed and needs to be authenticated again
+
+
+
+ Gets whether the "keep_open" field is set
+
+
+ Clears the value of the "keep_open" field
+
+
+
+ *
+ Close the current session.
+
+ @returns @ref Mysqlx::Ok
+
+
+
+ Holder for reflection information generated from mysqlx_sql.proto
+
+
+ File descriptor for mysqlx_sql.proto
+
+
+
+
+ Execute a statement in the given namespace.
+
+ @startuml "Execute Statements"
+ client -> server: StmtExecute
+ ... zero or more Resultsets ...
+ server --> client: StmtExecuteOk
+ @enduml
+
+ @notice This message may generate a notice containing WARNINGs generated by
+ its execution. This message may generate a notice containing INFO messages
+ generated by its execution.
+
+ @returns zero or more @ref Mysqlx::Resultset followed by @ref Mysqlx::Sql::StmtExecuteOk
+
+
+
+ Field number for the "namespace" field.
+
+
+
+ * namespace of the statement to be executed
+
+
+
+ Gets whether the "namespace" field is set
+
+
+ Clears the value of the "namespace" field
+
+
+ Field number for the "stmt" field.
+
+
+
+ * statement that shall be executed
+
+
+
+ Gets whether the "stmt" field is set
+
+
+ Clears the value of the "stmt" field
+
+
+ Field number for the "args" field.
+
+
+
+ * values for wildcard replacements
+
+
+
+ Field number for the "compact_metadata" field.
+
+
+
+ * send only type information for @ref Mysqlx::Resultset::ColumnMetaData,
+ skipping names and others
+
+
+
+ Gets whether the "compact_metadata" field is set
+
+
+ Clears the value of the "compact_metadata" field
+
+
+
+ *
+ Statement executed successfully
+
+
+
+
diff --git a/bin/Debug/NT318/CommandSetDic.flx b/bin/Debug/NT318/CommandSetDic.flx
new file mode 100644
index 0000000..878bade
Binary files /dev/null and b/bin/Debug/NT318/CommandSetDic.flx differ
diff --git a/bin/Debug/NT318/Log/20251122164552.flx b/bin/Debug/NT318/Log/20251122164552.flx
new file mode 100644
index 0000000..c0e6b83
Binary files /dev/null and b/bin/Debug/NT318/Log/20251122164552.flx differ
diff --git a/bin/Debug/NT318/Log/20251122165441.flx b/bin/Debug/NT318/Log/20251122165441.flx
new file mode 100644
index 0000000..50505f2
Binary files /dev/null and b/bin/Debug/NT318/Log/20251122165441.flx differ
diff --git a/bin/Debug/NT318/Log/20251122165856.flx b/bin/Debug/NT318/Log/20251122165856.flx
new file mode 100644
index 0000000..344fed5
Binary files /dev/null and b/bin/Debug/NT318/Log/20251122165856.flx differ
diff --git a/bin/Debug/NT318/Log/20251122183952.flx b/bin/Debug/NT318/Log/20251122183952.flx
new file mode 100644
index 0000000..f52b62c
Binary files /dev/null and b/bin/Debug/NT318/Log/20251122183952.flx differ
diff --git a/bin/Debug/NT318/Log/20251124135229.flx b/bin/Debug/NT318/Log/20251124135229.flx
new file mode 100644
index 0000000..c00353c
Binary files /dev/null and b/bin/Debug/NT318/Log/20251124135229.flx differ
diff --git a/bin/Debug/NT318/Log/20251124151012.flx b/bin/Debug/NT318/Log/20251124151012.flx
new file mode 100644
index 0000000..72145e9
Binary files /dev/null and b/bin/Debug/NT318/Log/20251124151012.flx differ
diff --git a/bin/Debug/NT318/Log/20251124151132.flx b/bin/Debug/NT318/Log/20251124151132.flx
new file mode 100644
index 0000000..5563636
Binary files /dev/null and b/bin/Debug/NT318/Log/20251124151132.flx differ
diff --git a/bin/Debug/NT318/Log/20251124151306.flx b/bin/Debug/NT318/Log/20251124151306.flx
new file mode 100644
index 0000000..985d20e
Binary files /dev/null and b/bin/Debug/NT318/Log/20251124151306.flx differ
diff --git a/bin/Debug/NT318/Log/20251203113327.flx b/bin/Debug/NT318/Log/20251203113327.flx
new file mode 100644
index 0000000..0aa6c3f
Binary files /dev/null and b/bin/Debug/NT318/Log/20251203113327.flx differ
diff --git a/bin/Debug/NT318/Log/20251203113414.flx b/bin/Debug/NT318/Log/20251203113414.flx
new file mode 100644
index 0000000..9d352c4
Binary files /dev/null and b/bin/Debug/NT318/Log/20251203113414.flx differ
diff --git a/bin/Debug/NT318/Log/20251203113756.flx b/bin/Debug/NT318/Log/20251203113756.flx
new file mode 100644
index 0000000..040f802
Binary files /dev/null and b/bin/Debug/NT318/Log/20251203113756.flx differ
diff --git a/bin/Debug/NT318/SQlitedb/test.db b/bin/Debug/NT318/SQlitedb/test.db
new file mode 100644
index 0000000..a1849eb
Binary files /dev/null and b/bin/Debug/NT318/SQlitedb/test.db differ
diff --git a/bin/Debug/NT318校时工具.application b/bin/Debug/NT318校时工具.application
new file mode 100644
index 0000000..099bb76
--- /dev/null
+++ b/bin/Debug/NT318校时工具.application
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jWbFUzPnFP/9U1LxN7s9yn8KKLjfV0CPgu2Y4/FeSU4=
+
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/NT318校时工具.exe b/bin/Debug/NT318校时工具.exe
new file mode 100644
index 0000000..2726b8a
Binary files /dev/null and b/bin/Debug/NT318校时工具.exe differ
diff --git a/bin/Debug/NT318校时工具.exe.config b/bin/Debug/NT318校时工具.exe.config
new file mode 100644
index 0000000..72e22e5
--- /dev/null
+++ b/bin/Debug/NT318校时工具.exe.config
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/NT318校时工具.exe.manifest b/bin/Debug/NT318校时工具.exe.manifest
new file mode 100644
index 0000000..e77d61c
--- /dev/null
+++ b/bin/Debug/NT318校时工具.exe.manifest
@@ -0,0 +1,583 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 9cU6NkxgtDdqaSNzthllqWlok0n5Z+Uix8Kdn3Eo1bs=
+
+
+
+
+
+
+
+
+
+
+
+ /0K8pwRgXhh6u0VSOGixUSjWrxworUCkV51QfTSpU7I=
+
+
+
+
+
+
+
+
+
+
+
+ qWDdTS8PN7PAn/uVZ8MkJrh5ExDX65NcBMgZw9Rr1J4=
+
+
+
+
+
+
+
+
+
+
+
+ fU3eI5lhl3kbpVU9uxoaqn7/U4ddo579M8SGYLbgufY=
+
+
+
+
+
+
+
+
+
+
+
+ NJmZEtXwnJmWoHm+QakbEe1yZKCGviScDp+j9ln+jU8=
+
+
+
+
+
+
+
+
+
+
+
+ ba3nlmT0ihY9aGTISgpsXFW4Vr3680uhh8h/GPkWcjg=
+
+
+
+
+
+
+
+
+
+
+
+ NvHKAfElIqDFD4/kjNBq3CRXHuKg/ySDFbOIuL0A9IQ=
+
+
+
+
+
+
+
+
+
+
+
+ /V++r7OuWbRdvGrGuGfs2+tLS3Fa3rxdF2bhVeY5yvM=
+
+
+
+
+
+
+
+
+
+
+
+ B1znnoQEETfHiIWzc4wbWgNUfQrip5kW6EQZap0Owds=
+
+
+
+
+
+
+
+
+
+
+
+ 7vlKOf+xKLft6Nw+iTql2d3NMMQWyvaMAXU0hjkfqTE=
+
+
+
+
+
+
+
+
+
+
+
+ 1bfUEwssGf9LpqjScNnNYkQNkJXE+ZRHUDkV8yQ8imE=
+
+
+
+
+
+
+
+
+
+
+
+ arzDO26hBizFnMgwIym5qbteKZCaYE76sMTFQDIMlS8=
+
+
+
+
+
+
+
+
+
+
+
+ mJXsCt/mMTOQBaf0b1TWvXihS7V1DviGEzUwzwTU1bg=
+
+
+
+
+
+
+
+
+
+
+
+ U8fsnsd6lnATQT/egLiE/sDzeegQiVtyJSqmQ+yS7eA=
+
+
+
+
+
+
+
+
+
+
+
+ Ri/yxc7FPYBz2JtiM/4VlnNGk8zJzNVgD4s1ZZtLpQI=
+
+
+
+
+
+
+
+
+
+
+
+ V1163KRDWq+JTnP/g7pwv6ajgY7FNeG+cx4DmGtT2tI=
+
+
+
+
+
+
+
+
+
+
+
+ zevH3gQb0MO0cJ6C/YUvPj6pQiJmtnbVGVLE7t4qDbU=
+
+
+
+
+
+
+
+
+
+
+
+ QH+nkSna5vMMRDErG9YHDd24w47j+DuSSCfbZ5bwnXc=
+
+
+
+
+
+
+
+
+
+
+
+ lPIE8okBzZGm3tZTpVn1Q7YtVGhO7hbIqdeQHVdjVyA=
+
+
+
+
+
+
+
+
+
+
+
+ HGkkpLAwURXUocM768E4CIPI+eJjJIP//QLrqZYjhlI=
+
+
+
+
+
+
+
+
+
+
+
+ bIc9FR4bFVsG5d1WJqcmQNqvS/Y8oqlW3p/pCxd6sOw=
+
+
+
+
+
+
+
+
+
+
+
+ cZz42uc6085Je3OLSYRrKiJG1Yj518RjdxOFveHRPUQ=
+
+
+
+
+
+
+
+
+
+
+
+ 5zgiIxcqwwXrfnPc1JFVbYsim3aT0xyFvgJ25tIsXPw=
+
+
+
+
+
+
+
+
+
+
+
+ ubTZKtooUZNXA5MPZbynAQemut67/NtLN8g9kmZWsQA=
+
+
+
+
+
+
+
+
+
+
+
+ 4eJ697B+7t9c5xqSVfBCKBam/FhJpIPGcU4bRyBE+p0=
+
+
+
+
+
+
+
+
+
+
+
+ ZzYRtciSlGrrBAm+T6KbAJurYPepbyxoUP6DWovuCn4=
+
+
+
+
+
+
+
+
+
+
+
+ V/AIu33HtiM6nyKkWUGaAUnZsKocxWSRgr83Um27uyQ=
+
+
+
+
+
+
+
+
+
+
+
+ rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs=
+
+
+
+
+
+
+
+
+
+
+
+ vhBo0a8kBUmvzUjyLPzxWsEMRjBgClNErgJdMFUCmDQ=
+
+
+
+
+
+
+
+
+
+
+
+ gMWoxwR4y7/dltXcGqQtingz0PKp8SmYlVhaK9RyTnY=
+
+
+
+
+
+
+
+
+
+
+
+ JsARknFP5RoZF9xNv2kzTGtdHZiDSydv7wBpaepmrXY=
+
+
+
+
+
+
+
+
+
+
+
+ 32xAvqqkkG5yvuEr4F2fg4F+pspcVmNs+J+hXxXJXGA=
+
+
+
+
+
+
+
+
+
+
+
+ GIdZJhX8CLvJGtYjB8jBHfwUxFvxINJx1mvkoNGhSac=
+
+
+
+
+
+
+
+
+
+
+
+ kdZASqIUqkuiHgZhgKiMvpVl5SMWSRERy38jn8SYL4I=
+
+
+
+
+
+
+
+
+
+
+
+ vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8=
+
+
+
+
+
+
+
+
+
+
+
+ HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM=
+
+
+
+
+
+
+
+
+
+
+
+ N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8=
+
+
+
+
+
+
+
+
+
+
+
+ T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y=
+
+
+
+
+
+
+
+
+
+
+
+ MJMwwGHBeSdGj9AATQVmQ/tbZ5FRQB5syUdhET+525c=
+
+
+
+
+
+
+
+
+
+ CA0joXWjephERCJ2m3DUmXiNTCCEnnIEHfikawcagDU=
+
+
+
+
+
+
+
+
+ qEteaDndA8SvziyeEEnIBIH9q3ET1PS1OqxIDfFGoQw=
+
+
+
+
+
+
+
+
+ 0sBKOFfWUOSKDR7Oy99G6ckMra0HNu3GrvDCaknQkds=
+
+
+
+
+
+
+
+
+ B/ww4MkioMte7sU+EpZRQzqs+tevfTVD1npBoQGkPZ0=
+
+
+
+
+
+
+
+
+ zdbEB7YTcSgOScmis0r07AawGRmT5u3o77kjWZCDeXc=
+
+
+
+
+
+
+
+
+ bersL5bIocIGmKk93UaNVEe1WsQm3Dge712RsZlTu3s=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/NT318校时工具.pdb b/bin/Debug/NT318校时工具.pdb
new file mode 100644
index 0000000..2f1894a
Binary files /dev/null and b/bin/Debug/NT318校时工具.pdb differ
diff --git a/bin/Debug/NT318校时工具.xml b/bin/Debug/NT318校时工具.xml
new file mode 100644
index 0000000..7e6908e
--- /dev/null
+++ b/bin/Debug/NT318校时工具.xml
@@ -0,0 +1,1459 @@
+
+
+
+
+NT318校时工具
+
+
+
+
+
+ 一个强类型的资源类,用于查找本地化的字符串等。
+
+
+
+
+ 返回此类使用的缓存的 ResourceManager 实例。
+
+
+
+
+ 重写当前线程的 CurrentUICulture 属性,对
+ 使用此强类型资源类的所有资源查找执行重写。
+
+
+
+
+ 查找类似 的本地化字符串。
+
+
+
+
+ Contains the schema of a single DB column.
+
+
+
+
+ 清空数据表
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 创建表,同时复制基础表数据(不包含原表索引与主键)
+ 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+
+ 表名
+ 基础表名
+
+
+
+
+ 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
+ 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+
+ 表名
+ 基础表名
+
+
+
+
+ 复制基础表数据到新表中
+
+ 表名
+ 基础表名
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ Contains the entire database schema
+
+
+
+
+ 判断列名
+
+
+
+
+
+ 判断条件
+
+
+
+
+
+ 判断值
+
+
+
+
+
+ 当前条件与上一个条件的逻辑关系
+
+
+
+
+
+ 将当前条件转换为字符串,不支持将条件逻辑关系同时转换
+
+
+
+
+
+ 查询条件的表名
+
+
+
+
+
+ 当IsSearchAllCols = False时,查询返回列名集合
+
+
+
+
+
+ 查询的条件
+
+
+
+
+
+ 排序方式
+
+
+
+
+
+ 但需要排序时排序列名
+
+
+
+
+
+ 从返回结果提取指定行的内容
+
+
+
+
+
+ Describes a single view schema
+
+
+
+
+ Contains the view name
+
+
+
+
+ Contains the view SQL statement
+
+
+
+
+ 1 byte,小整数值
+
+
+
+
+ 2 bytes,大整数值
+
+
+
+
+ 3 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 8 bytes,极大整数值
+
+
+
+
+ 4 bytes,单精度浮点数值
+
+
+
+
+ 8 bytes,双精度浮点数值
+
+
+
+
+ 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+
+
+
+
+ 3 bytes,日期值,YYYY-MM-DD
+
+
+
+
+ 3 bytes,时间值或持续时间,HH:MM:SS
+
+
+
+
+ 1 bytes,年份值,YYYY
+
+
+
+
+ 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+
+
+
+
+ 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+
+
+
+
+ 0-255 bytes,定长字符串
+
+
+
+
+ 0-65535 bytes,变长字符串
+
+
+
+
+ 0-255 bytes,不超过 255 个字符的二进制字符串
+
+
+
+
+ 0-255 bytes,短文本字符串
+
+
+
+
+ 0-65 535 bytes,二进制形式的长文本数据
+
+
+
+
+ 0-65 535 bytes,长文本数据
+
+
+
+
+ 0-16 777 215 bytes,二进制形式的中等长度文本数据
+
+
+
+
+ 0-16 777 215 bytes,中等长度文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,二进制形式的极大文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,极大文本数据
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 数据类型是否带符号
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 是否为唯一值
+
+
+
+
+
+ 查询指定数据表的信息
+
+
+
+
+
+
+ 数据库语句助手
+ 时间:2020-12-21
+ 作者:ML
+ 版本:1.0
+
+ 注意:添加一条数据库帮助语句时,需要考虑Mysql/Sqlite/Mssql等数据库是否支持命令,不支持则需要在对应帮助类中重写该帮助语句
+ 注意:Sqlite数据库与大多数据库不相同,DB开头数据库语句大多不适用
+
+
+
+
+
+ 查询指定数据表符合条件的所有数据
+
+ 指定表名
+ 查询条件,
+
+
+
+
+ 查询表符合条件的所有指定列的数据
+
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询表符合条件的所有指定列的数据
+
+ 表名
+ 条件
+
+
+
+
+ 查询指定表包含的内容行数
+
+ 数据表名
+ 查询条件
+
+
+
+
+ 查询指定数据表的信息
+
+ 表名
+
+
+
+
+ 查询指定数据表是否存在的信息,返回查询当前表在数据库中存在的数量
+
+ 表名
+
+
+
+
+ 数据表插入一行数据
+
+ 表名
+ 列名字符串
+ 列值字符串
+
+
+
+
+ 数据表插入一行数据
+
+ 表名
+ 列名与列值键值对
+
+
+
+
+ 数据表插入一行,通过命令参数方式执行时使用
+
+
+
+
+
+
+
+ 数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+
+ 表名
+ 字段列表
+
+
+
+
+ 更新指定表数据
+
+ 指定表名
+ 更新字符串
+
+
+
+
+
+ 更新指定表数据
+
+ 指定表名
+ 更新列名与列值键值对
+ 更新列索引条件
+
+
+
+
+ 更新指定数据库中指定表数据,参数名由@{ColName}
+
+ 指定表名
+ 更新列名的集合
+ 更新列索引条件
+
+
+
+
+ 指定数据表增加一列数据
+
+ 表名
+ 列名
+ 列类型
+ 是否允许为空
+
+
+
+
+ 数据表删除一列数据
+
+ 表名
+ 需要删除的列名,仅一列
+
+
+
+
+ 删除指定表多行数据
+
+ 表名
+ 条件
+
+
+
+
+ 创建数据表
+
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 创建数据表,如果存在则不创建
+
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 清空数据表,表依旧存在
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的数据
+
+ 数据库名
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的去重数据
+
+ 数据库名
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的数据
+
+ 数据库名
+ 表名
+ 条件
+
+
+
+
+ 查询指定表包含的内容行数
+
+ 数据库名
+ 数据表名
+ 查询条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有数据
+
+
+ 数据库名
+ 数据表名
+ 查询条件(可选)
+
+
+
+
+ 查询指定数据库中指定数据表的信息
+
+ 数据库名
+ 表名
+
+
+
+
+ 查询指定数据表是否存在的信息,返回查询当前表在指定数据库中存在的数量
+
+ 数据库名
+ 表名
+
+
+
+
+ 指定数据库中数据表插入一行数据
+
+ 数据库名
+ 表名
+ 列名字符串
+ 列值字符串
+
+
+
+
+ 指定数据库中数据表插入一行数据
+
+ 数据库名
+ 表名
+ 列名与列值键值对
+
+
+
+
+ 指定数据库中数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+
+ 数据库名
+
+ 需要插入列名的集合
+
+
+
+
+ 更新指定数据库中指定表数据
+
+ 数据库名
+ 指定表名
+ 更新字符串
+
+
+
+
+
+ 更新指定数据库中指定表数据,参数名由@{ColName}
+
+ 数据库名
+ 指定表名
+ 更新列名的集合
+ 更新列索引条件
+
+
+
+
+ 更新指定数据库中指定表数据
+
+ 数据库名
+ 指定表名
+ 更新列名与列值键值对
+ 更新列索引条件
+
+
+
+
+ 指定数据库中指定数据表增加一列数据
+
+ 数据库名
+ 表名
+ 列名
+ 列类型
+ 是否允许为空
+
+
+
+
+ 指定数据库中数据表删除一列数据
+
+ 数据库名
+ 表名
+ 需要删除的列名,仅一列
+
+
+
+
+ 指定数据库中指定表删除多行数据
+
+ 数据库名
+ 表名
+ 条件
+
+
+
+
+ 指定数据库中创建数据表
+
+ 数据库名
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 指定数据库中创建数据表,如果存在则不创建
+
+ 数据库名
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 清空指定数据库中数据表,表依旧存在
+
+ 数据库名
+ 数据表名
+
+
+
+
+ 删除指定数据库中数据表
+
+ 数据库名
+ 数据表名
+
+
+
+
+ 数据库通用命令执行器
+ 时间:2020-12-21
+ 作者:ML
+ 版本:1.0
+
+
+
+
+ 数据库类型,目前支持Mysql与Sqlite
+
+
+
+
+ 打开数据库连接
+
+
+
+
+
+ 关闭数据库连接
+
+
+
+
+ 创建当前连接的命令执行句柄
+
+
+
+
+
+ 运行非查询语句,返回执行该语句受到影响的行数
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回数据库读取流的句柄
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行数据库语句,返回数据库读取流的句柄
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回查询结果的第一行第一列的内容
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+
+ 执行的数据库命令文本
+
+
+
+
+ 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 开启事务
+
+
+
+
+
+ 提交事务
+
+
+
+
+ 回滚事务
+
+
+
+
+ 创建数据参数
+
+ 参数数据类型
+ 参数名称
+ 参数值
+
+
+
+
+ 添加数据参数
+
+
+
+
+
+
+
+
+ 清空数据
+
+
+
+
+ 回收资源
+
+
+
+
+ 1 byte,小整数值
+
+
+
+
+ 2 bytes,大整数值
+
+
+
+
+ 3 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 8 bytes,极大整数值
+
+
+
+
+ 4 bytes,单精度浮点数值
+
+
+
+
+ 8 bytes,双精度浮点数值
+
+
+
+
+ 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+
+
+
+
+ 3 bytes,日期值,YYYY-MM-DD
+
+
+
+
+ 3 bytes,时间值或持续时间,HH:MM:SS
+
+
+
+
+ 1 bytes,年份值,YYYY
+
+
+
+
+ 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+
+
+
+
+ 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+
+
+
+
+ 0-255 bytes,定长字符串
+
+
+
+
+ 0-65535 bytes,变长字符串
+
+
+
+
+ 0-255 bytes,不超过 255 个字符的二进制字符串
+
+
+
+
+ 0-255 bytes,短文本字符串
+
+
+
+
+ 0-65 535 bytes,二进制形式的长文本数据
+
+
+
+
+ 0-65 535 bytes,长文本数据
+
+
+
+
+ 0-16 777 215 bytes,二进制形式的中等长度文本数据
+
+
+
+
+ 0-16 777 215 bytes,中等长度文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,二进制形式的极大文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,极大文本数据
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 数据类型是否带符号
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 查询指定数据表的信息
+
+
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 是否为唯一值
+
+
+
+
+
+ 项目加载事件
+
+
+
+
+
+
+ 当前时间
+
+
+
+
+ 最后时间
+
+
+
+
+ 时间间隔
+
+
+
+
+ 接收数据偏移量
+
+
+
+
+ 接收数据缓存包
+
+
+
+
+ 串口波特率
+
+
+
+
+ 初始化串口波特率
+
+
+
+
+ 选择串口
+
+
+
+
+
+
+ 串口通信
+
+
+
+
+
+
+ 获取可用串口
+
+
+
+
+ 串口通讯开关
+
+
+
+
+
+
+ 关闭串口
+
+
+
+
+ 配置串口
+
+ 串口名
+ 串口波特率
+
+
+
+ 打开串口
+
+
+
+
+ 发送485串口数据
+
+
+
+
+
+
+ 接收485串口数据
+
+
+
+
+
+
+ 显示串口回复数据
+
+
+
+
+
+ 清除记录
+
+
+
+
+
+
+ 添加记录文本和颜色
+
+ 需要添加的记录内容
+ 需要设置的记录颜色
+
+
+
+ 添加记录
+
+
+
+
+
+
+ 解析串口数据
+
+
+
+
+
+ Byte数组转字符串
+
+
+
+
+
+
+ 读取核心参数信息-委托
+
+
+
+
+ 显示开关状态
+
+
+
+
+
+ 显示设备浓度
+
+
+
+
+
+ 显示工作天数
+
+
+
+
+
+ 显示当前时间
+
+
+
+
+
+ 将 Int32 转为 4 字节数组,低字节在前。
+
+
+
+
+ Int转2个字节Byte
+ 高字节在前,低字节在后
+
+
+
+
+
+
+ 和校验取余数
+ 求Byte数组的和校验取余数
+
+ Byte数组
+
+
+
+
+ 定期上报开关
+
+
+
+
+ 开启定时上报
+
+
+
+
+
+
+ 调试信息输出开关
+
+
+
+
+
+
+ 复位命令下发
+
+
+
+
+
+
+ 指定查询日志内容
+
+
+
+
+
+
+ 一键查询日志内容
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 数据时间结构
+
+
+
+
+ 解析表格排序
+
+
+
+
+ 将数据显示到表格中
+
+
+
+
+
+ 将字符串按 UTF-8 编码转成 Byte 数组。
+
+
+
+
+ 将 Byte 数组按 UTF-8 编码转成字符串。
+
+
+
+
+ 从原数组截取部分数据为新数组。
+
+ 源数组
+ 起始索引(0 起算)
+ 要截取的长度
+
+
+
+ 将 Byte 数组按指定编码转成字符串。
+ 缺省编码为 UTF-8。
+
+ 源数组
+ 编码,省略则 UTF-8
+
+
+
diff --git a/bin/Debug/Newtonsoft.Json.dll b/bin/Debug/Newtonsoft.Json.dll
new file mode 100644
index 0000000..341d08f
Binary files /dev/null and b/bin/Debug/Newtonsoft.Json.dll differ
diff --git a/bin/Debug/Newtonsoft.Json.xml b/bin/Debug/Newtonsoft.Json.xml
new file mode 100644
index 0000000..2c981ab
--- /dev/null
+++ b/bin/Debug/Newtonsoft.Json.xml
@@ -0,0 +1,11363 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets the naming strategy used to resolve how enum text is written.
+
+ The naming strategy used to resolve how enum text is written.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when serializing and deserializing.
+ The default value is true.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The naming strategy used to resolve how enum text is written.
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The of the used to write enum text.
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+ true if integers are allowed when serializing and deserializing; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Gets or sets a value indicating whether the dates before Unix epoch
+ should converted to and from JSON.
+
+
+ true to allow converting dates before Unix epoch to and from JSON;
+ false to throw an exception when a date being converted to or from JSON
+ occurred before Unix epoch. The default value is false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ true to allow converting dates before Unix epoch to and from JSON;
+ false to throw an exception when a date being converted to or from JSON
+ occurred before Unix epoch. The default value is false.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ true if special characters are encoded; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ The default JSON name table implementation.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Adds the specified string into name table.
+
+ The string to add.
+ This method is not thread-safe.
+ The resolved string.
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by ,
+ writes a Json.NET array attribute for collections, and encodes special characters.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A value to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+
+ A value to indicate whether to encode special characters when converting JSON to XML.
+ If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify
+ XML namespaces, attributes or processing directives. Instead special characters are encoded and written
+ as part of the XML element name.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Base class for a table of atomized string objects.
+
+
+
+
+ Gets a string containing the same characters as the specified range of characters in the given array.
+
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ A string containing the same characters as the specified range of characters in the given array.
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the type used when serializing the property's collection items.
+
+ The collection's items type.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is 64.
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is 64.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to read values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is 64.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ using values copied from the passed in .
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's property name table.
+
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Specifies how duplicate property names are handled when loading JSON.
+
+
+
+
+ Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used.
+
+
+
+
+ Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used.
+
+
+
+
+ Throw a when a duplicate property is encountered.
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a with the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets the with the specified name.
+ The exact name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The property name.
+ One of the enumeration values that specifies how the strings will be compared.
+ A matched with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when cloning JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a flag that indicates whether to copy annotations when cloning a .
+ The default value is true.
+
+
+ A flag that indicates whether to copy annotations when cloning a .
+
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+ The default value is .
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+ The default value is .
+
+ The JSON line info handling.
+
+
+
+ Gets or sets how duplicate property names in JSON objects are handled when loading JSON.
+ The default value is .
+
+ The JSON duplicate property name handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Gets or sets the comparison used to match property names while merging.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ The comparison used to match property names while merging.
+
+
+
+ Specifies the settings used when selecting JSON.
+
+
+
+
+ Gets or sets a timeout that will be used when executing regular expressions.
+
+ The timeout that will be used when executing regular expressions.
+
+
+
+ Gets or sets a flag that indicates whether an error should be thrown if
+ no tokens are found when evaluating part of the expression.
+
+
+ A flag that indicates whether an error should be thrown if
+ no tokens are found when evaluating part of the expression.
+
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a using a JSONPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JSONPath expression.
+
+ The used to select tokens.
+ A .
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JSONPath expression.
+
+
+ A that contains a JSONPath expression.
+
+ The used to select tokens.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A object to configure cloning settings.
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+ The initial path of the token. It is prepended to the returned .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ ToString() returns a non-JSON string value for tokens with a type of .
+ If you want the JSON for all token types then you should use .
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets the internally resolved for the contract's type.
+ This converter is used as a fallback converter when no other converter is resolved.
+ Setting will always override this converter.
+
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets the missing member handling used when deserializing this object.
+
+ The missing member handling.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets a value indicating whether has a value specified.
+
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ A kebab case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Hash code calculation
+
+
+
+
+
+ Object equality implementation
+
+
+
+
+
+
+ Compare to another NamingStrategy
+
+
+
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+ Specifies that an output will not be null even if the corresponding type allows it.
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+
+ Gets the return value condition.
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
+ the associated parameter matches this value.
+
+
+
+ Gets the condition parameter value.
+
+
+
diff --git a/bin/Debug/SqlSugar.dll b/bin/Debug/SqlSugar.dll
new file mode 100644
index 0000000..387a62e
Binary files /dev/null and b/bin/Debug/SqlSugar.dll differ
diff --git a/bin/Debug/System.Buffers.dll b/bin/Debug/System.Buffers.dll
new file mode 100644
index 0000000..f2d83c5
Binary files /dev/null and b/bin/Debug/System.Buffers.dll differ
diff --git a/bin/Debug/System.Buffers.xml b/bin/Debug/System.Buffers.xml
new file mode 100644
index 0000000..e243dce
--- /dev/null
+++ b/bin/Debug/System.Buffers.xml
@@ -0,0 +1,38 @@
+
+
+ System.Buffers
+
+
+
+ Provides a resource pool that enables reusing instances of type .
+ The type of the objects that are in the resource pool.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ A new instance of the class.
+
+
+ Creates a new instance of the class using the specifed configuration.
+ The maximum length of an array instance that may be stored in the pool.
+ 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.
+ A new instance of the class with the specified configuration.
+
+
+ Retrieves a buffer that is at least the requested length.
+ The minimum length of the array.
+ An array of type that is at least minimumLength in length.
+
+
+ Returns an array to the pool that was previously obtained using the method on the same instance.
+ A buffer to return to the pool that was previously obtained using the method.
+ Indicates whether the contents of the buffer should be cleared before reuse. If clearArray is set to true, and if the pool will store the buffer to enable subsequent reuse, the method will clear the array of its contents so that a subsequent caller using the method will not see the content of the previous caller. If clearArray is set to false or if the pool will release the buffer, the array's contents are left unchanged.
+
+
+ Gets a shared instance.
+ A shared instance.
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.Configuration.ConfigurationManager.dll b/bin/Debug/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000..bea9ae7
Binary files /dev/null and b/bin/Debug/System.Configuration.ConfigurationManager.dll differ
diff --git a/bin/Debug/System.Configuration.ConfigurationManager.xml b/bin/Debug/System.Configuration.ConfigurationManager.xml
new file mode 100644
index 0000000..fc2bea6
--- /dev/null
+++ b/bin/Debug/System.Configuration.ConfigurationManager.xml
@@ -0,0 +1,5265 @@
+
+
+
+ System.Configuration.ConfigurationManager
+
+
+
+ Specifies that an application settings property has a common value for all users of an application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Acts as a base class for deriving concrete wrapper classes to implement the application settings feature in Window Forms applications.
+
+
+ Occurs after the value of an application settings property is changed.
+
+
+ Occurs before the value of an application settings property is changed.
+
+
+ Occurs after the application settings are retrieved from storage.
+
+
+ Occurs before values are saved to the data store.
+
+
+ Initializes an instance of the class to its default state.
+
+
+ Initializes an instance of the class using the supplied owner component.
+ The component that will act as the owner of the application settings object.
+
+ is .
+
+
+ Initializes an instance of the class using the supplied owner component and settings key.
+ The component that will act as the owner of the application settings object.
+ A that uniquely identifies separate instances of the wrapper class.
+
+ is .
+
+
+ Initializes an instance of the class using the supplied settings key.
+ A that uniquely identifies separate instances of the wrapper class.
+
+
+ Returns the value of the named settings property for the previous version of the same application.
+ A containing the name of the settings property whose value is to be returned.
+ The property does not exist. The property count is zero or the property cannot be found in the data store.
+ An containing the value of the specified if found; otherwise, .
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Refreshes the application settings property values from persistent storage.
+
+
+ Restores the persisted application settings values to their corresponding default properties.
+ The configuration file could not be parsed.
+
+
+ Stores the current values of the application settings properties.
+
+
+ Updates application settings to reflect a more recent installation of the application.
+ The configuration file could not be parsed.
+
+
+ Gets the application settings context associated with the settings group.
+ A associated with the settings group.
+
+
+ Gets or sets the value of the specified application settings property.
+ A containing the name of the property to access.
+ There are no properties associated with the current wrapper or the specified property could not be found.
+ An attempt was made to set a read-only property.
+ The value supplied is of a type incompatible with the settings property, during a set operation.
+ The configuration file could not be parsed.
+ If found, the value of the named settings property; otherwise, .
+
+
+ Gets the collection of settings properties in the wrapper.
+ The associated settings provider could not be found or its instantiation failed.
+ A containing all the objects used in the current wrapper.
+
+
+ Gets a collection of property values.
+ A of property values.
+
+
+ Gets the collection of application settings providers used by the wrapper.
+ A containing all the objects used by the settings properties of the current settings wrapper.
+
+
+ Gets or sets the settings key for the application settings group.
+ A containing the settings key for the current settings group.
+
+
+ Represents a grouping of related application settings sections within a configuration file. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a method for reading values of a particular type from the configuration.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the value for a specified key from the property and returns an object of the specified type containing the value from the configuration.
+ The key for which to get the value.
+ The type of the object to return.
+
+ is .
+
+-or-
+
+ is .
+
+ does not exist in the configuration section.
+
+-or-
+
+ The value in the configuration section for is not of type .
+ The value of the specified key.
+
+
+ Provides configuration system support for the configuration section. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a configuration file that provides additional settings or overrides the settings specified in the element.
+ A configuration file that provides additional settings or overrides the settings specified in the element.
+
+
+ Gets a collection of key/value pairs that contains application settings.
+ A collection of key/value pairs that contains the application settings from the configuration file.
+
+
+ Provides dynamic validation of an object.
+
+
+ Initializes a new instance of the class.
+ The type of object that will be validated.
+ The used as the delegate.
+
+ is .
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+
+ if the parameter matches the type used as the first parameter when creating an instance of ; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Specifies a object to use for code validation. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the callback method.
+ The name of the method to call.
+
+
+ Gets or sets the type of the validator.
+ The of the current validator attribute instance.
+
+
+ Gets the validator instance.
+ The value of the property is .
+ The property is not set to a public static void method with one object parameter.
+ The current instance.
+
+
+ Represents a group of user-scoped application settings in a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the collection of client settings for the section.
+ A containing all the client settings found in the current configuration section.
+
+
+ Represents a collection of string elements separated by commas. This class cannot be inherited.
+
+
+ Creates a new instance of the class.
+
+
+ Adds a string to the comma-delimited collection.
+ A string value.
+
+
+ Adds all the strings in a string array to the collection.
+ An array of strings to add to the collection.
+
+
+ Clears the collection.
+
+
+ Creates a copy of the collection.
+ A copy of the .
+
+
+ Adds a string element to the collection at the specified index.
+ The index in the collection at which the new element will be added.
+ The value of the new element to add to the collection.
+
+
+ Removes a string element from the collection.
+ The string to remove.
+
+
+ Sets the collection object to read-only.
+
+
+ Returns a string representation of the object.
+ A string representation of the object.
+
+
+ Gets a value that specifies whether the collection has been modified.
+
+ if the has been modified; otherwise, .
+
+
+ Gets a value indicating whether the collection object is read-only.
+
+ if the specified string element in the is read-only; otherwise, .
+
+
+ Gets or sets a string element in the collection based on the index.
+ The index of the string element in the collection.
+ A string element in the collection.
+
+
+ Converts a comma-delimited string value to and from a object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a object to a object.
+ The used for type conversions.
+ The used during conversion.
+ The comma-separated to convert.
+ A containing the converted value.
+
+
+ Converts a object to a object.
+ The used for type conversions.
+ The used during conversion.
+ The value to convert.
+ The conversion type.
+ The representing the converted parameter, which is a .
+
+
+ Represents a configuration file that is applicable to a particular computer, application, or resource. This class cannot be inherited.
+
+
+ Returns the specified object.
+ The path to the section to be returned.
+ The specified object, or if the requested section does not exist.
+
+
+ Gets the specified object.
+ The path name of the to return.
+ The specified, or if the requested section group does not exist.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+ The configuration file could not be written to.
+
+-or-
+
+ The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+ A value that determines which property values to save.
+ The configuration file could not be written to.
+
+-or-
+
+ The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the current XML configuration file.
+ A value that determines which property values to save.
+
+ to save even if the configuration was not modified; otherwise, .
+ The configuration file could not be written to.
+
+-or-
+
+ The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+ The configuration file could not be written to.
+
+-or-
+
+ The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+ A value that determines which property values to save.
+ The configuration file could not be written to.
+
+-or-
+
+ The configuration file has changed.
+
+
+ Writes the configuration settings contained within this object to the specified XML configuration file.
+ The path and file name to save the configuration file to.
+ A value that determines which property values to save.
+
+ to save even if the configuration was not modified; otherwise, .
+
+ is null or an empty string ("").
+
+
+ Gets the object configuration section that applies to this object.
+ An object representing the configuration section that applies to this object.
+
+
+ Specifies a function delegate that is used to transform assembly strings in configuration files.
+ A delegate that transforms type strings. The default value is .
+
+
+ Gets a configuration-section object that applies to this object.
+ A configuration-section object representing the configuration section that applies to this object.
+
+
+ Gets the object for the object.
+ The object for the object.
+
+
+ Gets the physical path to the configuration file represented by this object.
+ The physical path to the configuration file represented by this object.
+
+
+ Gets a value that indicates whether a file exists for the resource represented by this object.
+
+ if there is a configuration file; otherwise, .
+
+
+ Gets the locations defined within this object.
+ A containing the locations defined within this object.
+
+
+ Gets or sets a value indicating whether the configuration file has an XML namespace.
+
+ if the configuration file has an XML namespace; otherwise, .
+
+
+ Gets the root for this object.
+ The root section group for this object.
+
+
+ Gets a collection of the section groups defined by this configuration.
+ A collection representing the collection of section groups for this object.
+
+
+ Gets a collection of the sections defined by this object.
+ A collection of the sections defined by this object.
+
+
+ Gets or sets the targeted version of .NET when a version earlier than the current one is targeted.
+ The name of the targeted version of .NET. The default value is , which indicates that the current version is targeted.
+
+
+ Specifies a function delegate that is used to transform type strings in configuration files.
+ A delegate that transforms type strings. The default value is .
+
+
+ Specifies the locations within the configuration-file hierarchy that can set or override the properties contained within a object.
+
+
+ The can be defined anywhere.
+
+
+ The can be defined only in the Machine.config file.
+
+
+ The can be defined in either the Machine.config file, the machine-level Web.config file found in the same directory as Machine.config, or the top-level application Web.config file found in the virtual-directory root, but not in subdirectories of a virtual root.
+
+
+ The can be defined in either the Machine.config file or the machine-level Web.config file found in the same directory as Machine.config, but not in application Web.config files.
+
+
+ Specifies the locations within the configuration-file hierarchy that can set or override the properties contained within a object.
+
+
+ The can be defined only in the Machine.config file.
+
+
+ The can be defined either in the Machine.config file or in the Exe.config file in the client application directory. This is the default value.
+
+
+ The can be defined in the Machine.config file, in the Exe.config file in the client application directory, in the User.config file in the roaming user directory, or in the User.config file in the local user directory.
+
+
+ The can be defined in the Machine.config file, in the Exe.config file in the client application directory, or in the User.config file in the roaming user directory.
+
+
+ Declaratively instructs .NET to create an instance of a configuration element collection. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The type of the property collection to create.
+
+ is .
+
+
+ Gets or sets the name of the configuration element.
+ The name that substitutes the standard name "add" for the configuration item.
+
+
+ Gets or sets the name for the configuration element.
+ The name that replaces the standard name "clear" for the configuration item.
+
+
+ Gets or sets the type of the attribute.
+ The type of the .
+
+
+ Gets the type of the collection element.
+ The type of the collection element.
+
+
+ Gets or sets the name for the configuration element.
+ The name that replaces the standard name "remove" for the configuration element.
+
+
+ The base class for the configuration converter types.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the conversion is allowed.
+ The object used for type conversions.
+ The to convert from.
+
+ if the conversion is allowed; otherwise, .
+
+
+ Determines whether the conversion is allowed.
+ The object used for type conversion.
+ The type to convert to.
+
+ if the conversion is allowed; otherwise, .
+
+
+ Represents a configuration element within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Reads XML from the configuration file.
+ The that reads from the configuration file.
+
+ to serialize only the collection key properties; otherwise, .
+ The element to read is locked.
+
+-or-
+
+ An attribute of the current node is not recognized.
+
+-or-
+
+ The lock status of the current node cannot be determined.
+
+
+ Compares the current instance to the specified object.
+ The object to compare with.
+
+ if the object to compare with is equal to the current instance; otherwise, . The default is .
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Returns the transformed version of the specified assembly name.
+ The name of the assembly.
+ The transformed version of the assembly name. If no transformer is available, the parameter value is returned unchanged. The property is if no transformer is available.
+
+
+ Returns the transformed version of the specified type name.
+ The name of the type.
+ The transformed version of the specified type name. If no transformer is available, the parameter value is returned unchanged. The property is if no transformer is available.
+
+
+ Sets the object to its initial state.
+
+
+ Used to initialize a default set of values for the object.
+
+
+ Indicates whether this configuration element has been modified since it was last saved or loaded, when implemented in a derived class.
+
+ if the element has been modified; otherwise, .
+
+
+ Gets a value indicating whether the object is read-only.
+
+ if the object is read-only; otherwise, .
+
+
+ Adds the invalid-property errors in this object, and in all subelements, to the passed list.
+ An object that implements the interface.
+
+
+ Gets a value indicating whether an unknown attribute is encountered during deserialization.
+ The name of the unrecognized attribute.
+ The value of the unrecognized attribute.
+
+ when an unknown attribute is encountered while deserializing; otherwise, .
+
+
+ Gets a value indicating whether an unknown element is encountered during deserialization.
+ The name of the unknown subelement.
+ The being used for deserialization.
+ The element identified by is locked.
+
+-or-
+
+ One or more of the element's attributes is locked.
+
+-or-
+
+ is unrecognized, or the element has an unrecognized attribute.
+
+-or-
+
+ The element has a Boolean attribute with an invalid value.
+
+-or-
+
+ An attempt was made to deserialize a property more than once.
+
+-or-
+
+ An attempt was made to deserialize a property that is not a valid member of the element.
+
+-or-
+
+ The element cannot contain a CDATA or text element.
+
+ when an unknown element is encountered while deserializing; otherwise, .
+
+
+ Throws an exception when a required property is not found.
+ The name of the required attribute that was not found.
+ In all cases.
+
+
+ Called after deserialization.
+
+
+ Called before serialization.
+ The that will be used to serialize the .
+
+
+ Resets the internal state of the object, including the locks and the properties collections.
+ The parent node of the configuration element.
+
+
+ Resets the value of the method to when implemented in a derived class.
+
+
+ Writes the contents of this configuration element to the configuration file when implemented in a derived class.
+ The that writes to the configuration file.
+
+ to serialize only the collection key properties; otherwise, .
+ The current attribute is locked at a higher configuration level.
+
+ if any data was actually serialized; otherwise, .
+
+
+ Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.
+ The that writes to the configuration file.
+ The name of the to be written.
+ The element has multiple child elements.
+
+ if writing was successful; otherwise, .
+
+
+ Sets a property to the specified value.
+ The element property to set.
+ The value to assign to the property.
+
+ if the locks on the property should be ignored; otherwise, .
+ Occurs if the element is read-only or is but the locks cannot be ignored.
+
+
+ Sets the property for the object and all subelements.
+
+
+ Modifies the object to remove all values that should not be saved.
+ A at the current level containing a merged view of the properties.
+ The parent , or if this is the top level.
+ One of the enumeration values that determines which property values to include.
+
+
+ Gets a reference to the top-level instance that represents the configuration hierarchy that the current instance belongs to.
+ The top-level instance that the current instance belongs to.
+
+
+ Gets an object that contains the non-customizable information and functionality of the object.
+ An that contains the non-customizable information and functionality of the .
+
+
+ Gets the object that represents the object itself.
+ The that represents the itself.
+
+
+ Gets the object for the object.
+ The current element is not associated with a context.
+ The for the .
+
+
+ Gets a value that indicates whether the property is .
+ false if the property is ; otherwise, .
+
+
+ Gets or sets a property or attribute of this configuration element.
+ The property to access.
+
+ is or does not exist within the element.
+
+ is read only or locked.
+ The specified property, attribute, or child element.
+
+
+ Gets or sets a property, attribute, or child element of this configuration element.
+ The name of the to access.
+
+ is read-only or locked.
+ The specified property, attribute, or child element.
+
+
+ Gets the collection of locked attributes.
+ The of locked attributes (properties) for the element.
+
+
+ Gets the collection of locked elements.
+ The of locked elements.
+
+
+ Gets the collection of locked attributes.
+ The of locked attributes (properties) for the element.
+
+
+ Gets the collection of locked elements.
+ The of locked elements.
+
+
+ Gets or sets a value indicating whether the element is locked.
+ The element has already been locked at a higher configuration level.
+
+ if the element is locked; otherwise, . The default is .
+
+
+ Gets the collection of properties.
+ The of properties for the element.
+
+
+ Represents a configuration element containing a collection of child elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new instance of the class.
+ The comparer to use.
+
+ is .
+
+
+ Adds a configuration element to the .
+ The to add.
+
+
+ Adds a configuration element to the configuration element collection.
+ The to add.
+
+ to throw an exception if the specified is already contained in the ; otherwise, .
+ The to add already exists in the and the parameter is .
+
+
+ Adds a configuration element to the configuration element collection.
+ The index location at which to add the specified .
+ The to add.
+
+
+ Removes all configuration element objects from the collection.
+ The configuration is read-only.
+
+-or-
+
+ A collection item has been locked in a higher-level configuration.
+
+
+ Gets the configuration element at the specified index location.
+ The index location of the to return.
+
+ is less than .
+
+-or-
+
+ There is no at the specified .
+ The at the specified index.
+
+
+ Returns the configuration element with the specified key.
+ The key of the element to return.
+ The with the specified key; otherwise, .
+
+
+ Returns an array of the keys for all of the configuration elements contained in the .
+ An array that contains the keys for all of the objects contained in the .
+
+
+ Gets the key for the at the specified index location.
+ The index location for the .
+
+ is less than .
+
+-or-
+
+ There is no at the specified .
+ The key for the specified .
+
+
+ Indicates the index of the specified .
+ The for the specified index location.
+ The index of the specified ; otherwise, -1.
+
+
+ Indicates whether the with the specified key has been removed from the .
+ The key of the element to check.
+
+ if the with the specified key has been removed; otherwise, . The default is .
+
+
+ Removes a from the collection.
+ The key of the to remove.
+ No with the specified key exists in the collection, the element has already been removed, or the element cannot be removed because the value of its is not .
+
+
+ Removes the at the specified index location.
+ The index location of the to remove.
+ The configuration is read-only.
+
+-or-
+
+ is less than or greater than the number of objects in the collection.
+
+-or-
+
+ The object has already been removed.
+
+-or-
+
+ The value of the object has been locked at a higher level.
+
+-or-
+
+ The object was inherited.
+
+-or-
+
+ The value of the object's is not or .
+
+
+ Copies the contents of the to an array.
+ Array to which to copy the contents of the .
+ Index location at which to begin copying.
+
+
+ When overridden in a derived class, creates a new .
+ A newly created .
+
+
+ Creates a new when overridden in a derived class.
+ The name of the to create.
+ A new with a specified name.
+
+
+ Compares the to the specified object.
+ The object to compare.
+
+ if the object to compare with is equal to the current instance; otherwise, . The default is .
+
+
+ Gets the element key for a specified configuration element when overridden in a derived class.
+ The to return the key for.
+ An that acts as the key for the specified .
+
+
+ Gets an which is used to iterate through the .
+ An which is used to iterate through the .
+
+
+ Gets a unique value representing the instance.
+ A unique value representing the current instance.
+
+
+ Indicates whether the specified exists in the .
+ The name of the element to verify.
+
+ if the element exists in the collection; otherwise, . The default is .
+
+
+ Indicates whether the specified can be removed from the .
+ The element to check.
+
+ if the specified can be removed from this ; otherwise, . The default is .
+
+
+ Indicates whether this has been modified since it was last saved or loaded when overridden in a derived class.
+
+ if any contained element has been modified; otherwise, .
+
+
+ Indicates whether the object is read only.
+
+ if the object is read only; otherwise, .
+
+
+ Causes the configuration system to throw an exception.
+ The name of the unrecognized element.
+ An input stream that reads XML from the configuration file.
+ The element specified in is the element.
+
+ starts with the reserved prefix "config" or "lock".
+
+ if the unrecognized element was deserialized successfully; otherwise, . The default is .
+
+
+ Resets the to its unmodified state when overridden in a derived class.
+ The representing the collection parent element, if any; otherwise, .
+
+
+ Resets the value of the property to when overridden in a derived class.
+
+
+ Writes the configuration data to an XML element in the configuration file when overridden in a derived class.
+ Output stream that writes XML to the configuration file.
+
+ to serialize the collection key; otherwise, .
+ One of the elements in the collection was added or replaced and starts with the reserved prefix "config" or "lock".
+
+ if the was written to the configuration file successfully.
+
+
+ Sets the property for the object and for all sub-elements.
+
+
+ Copies the to an array.
+ Array to which to copy this .
+ Index location at which to begin copying.
+
+
+ Reverses the effect of merging configuration information from different levels of the configuration hierarchy.
+ A object at the current level containing a merged view of the properties.
+ The parent object of the current element, or if this is the top level.
+ One of the enumeration value that determines which property values to include.
+
+
+ Gets or sets the name of the to associate with the add operation in the when overridden in a derived class.
+ The selected value starts with the reserved prefix "config" or "lock".
+ The name of the element.
+
+
+ Gets or sets the name for the to associate with the clear operation in the when overridden in a derived class.
+ The selected value starts with the reserved prefix "config" or "lock".
+ The name of the element.
+
+
+ Gets the type of the .
+ The of this collection.
+
+
+ Gets the number of elements in the collection.
+ The number of elements in the collection.
+
+
+ Gets the name used to identify this collection of elements in the configuration file when overridden in a derived class.
+ The name of the collection; otherwise, an empty string. The default is an empty string.
+
+
+ Gets or sets a value that specifies whether the collection has been cleared.
+ The configuration is read-only.
+
+ if the collection has been cleared; otherwise, . The default is .
+
+
+ Gets a value indicating whether access to the collection is synchronized.
+
+ if access to the is synchronized; otherwise, .
+
+
+ Gets or sets the name of the to associate with the remove operation in the when overridden in a derived class.
+ The selected value starts with the reserved prefix "config" or "lock".
+ The name of the element.
+
+
+ Gets an object used to synchronize access to the .
+ An object used to synchronize access to the .
+
+
+ Gets a value indicating whether an attempt to add a duplicate to the will cause an exception to be thrown.
+
+ if an attempt to add a duplicate to this will cause an exception to be thrown; otherwise, .
+
+
+ Specifies the type of a object.
+
+
+ The default type of . Collections of this type contain elements that can be merged across a hierarchy of configuration files. At any particular level within such a hierarchy, , , and directives are used to modify any inherited properties and specify new ones.
+
+
+ Same as , except that this type causes the object to sort its contents such that inherited elements are listed last.
+
+
+ Collections of this type contain elements that apply to the level at which they are specified, and to all child levels. A child level cannot modify the properties specified by a parent element of this type.
+
+
+ Same as , except that this type causes the object to sort its contents such that inherited elements are listed last.
+
+
+ Specifies the property of a configuration element. This class cannot be inherited.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ A object.
+
+ is .
+
+
+ Gets a object used to validate the object.
+ A object.
+
+
+ The exception that is thrown when a configuration error has occurred.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+ The current type is not a or a .
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The exception that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The path to the configuration file that caused this exception to be thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The inner exception that caused this exception to be thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The path to the configuration file that caused this exception to be thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The object that caused this exception to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message that describes why this exception was thrown.
+ The object that caused this exception to be thrown.
+
+
+ Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+
+
+ Gets the path to the configuration file that the internal was reading when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The path of the configuration file the internal object was accessing when the exception occurred.
+
+
+ Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The line number within the configuration file that contains the object being parsed when this configuration exception was thrown.
+
+
+ Gets the line number within the configuration file that the internal object was processing when this configuration exception was thrown.
+ The object that caused this exception to be thrown.
+ The line number within the configuration file that the object was accessing when the exception occurred.
+
+
+ Sets the object with the file name and line number at which this configuration exception occurred.
+ The object that holds the information to be serialized.
+ The contextual information about the source or destination.
+
+
+ Gets a collection of errors that detail the reasons this exception was thrown.
+ An object that contains errors that identify the reasons this exception was thrown.
+
+
+ Gets the path to the configuration file that caused this configuration exception to be thrown.
+ The path to the configuration file that caused this to be thrown.
+
+
+ Gets the line number within the configuration file at which this configuration exception was thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Gets an extended description of why this configuration exception was thrown.
+ An extended description of why this exception was thrown.
+
+
+ The exception that is thrown when a configuration system error has occurred.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+ The path to the configuration file that caused this to be thrown.
+ The line number within the configuration file at which this was thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The inner exception that caused this to be thrown, if any.
+ The that caused this to be thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The path to the configuration file that caused this to be thrown.
+ The line number within the configuration file at which this was thrown.
+
+
+ Initializes a new instance of the class.
+ A message describing why this exception was thrown.
+ The that caused this to be thrown.
+
+
+ Sets the object with the file name and line number at which this configuration exception occurred.
+ The object that holds the information to be serialized.
+ The contextual information about the source or destination.
+
+
+ Gets the path to the configuration file from which the internal object was loaded when this configuration exception was thrown.
+ The that caused this exception to be thrown.
+ A representing the node file name.
+
+
+ Gets the line number within the configuration file that the internal object represented when this configuration exception was thrown.
+ The that caused this exception to be thrown.
+ An representing the node line number.
+
+
+ Gets a description of why this configuration exception was thrown.
+ A description of why this exception was thrown.
+
+
+ Gets the path to the configuration file that caused this configuration exception to be thrown.
+ The path to the configuration file that caused this exception to be thrown.
+
+
+ Gets the line number within the configuration file at which this configuration exception was thrown.
+ The line number within the configuration file at which this exception was thrown.
+
+
+ Gets an extended description of why this configuration exception was thrown.
+ An extended description of why this exception was thrown.
+
+
+ Defines the configuration file mapping for the machine configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameter.
+ The name of the machine configuration file.
+
+
+ Creates a copy of the existing object.
+ A object.
+
+
+ Gets or sets the name of the machine configuration file name.
+ The machine configuration file name.
+
+
+ Represents a element within a configuration file.
+
+
+ Creates an instance of a Configuration object.
+ A Configuration object.
+
+
+ Gets the relative path to the resource whose configuration settings are represented by this object.
+ The relative path to the resource whose configuration settings are represented by this .
+
+
+ Contains a collection of objects.
+
+
+ Gets the object at the specified index.
+ The index location of the to return.
+ The at the specified index.
+
+
+ Contains a collection of locked configuration objects. This class cannot be inherited.
+
+
+ Locks a configuration object by adding it to the collection.
+ The name of the configuration object.
+ Occurs when the does not match an existing configuration object within the collection.
+
+
+ Clears all configuration objects from the collection.
+
+
+ Verifies whether a specific configuration object is locked.
+ The name of the configuration object to verify.
+
+ if the contains the specified configuration object; otherwise, .
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Gets an object, which is used to iterate through this collection.
+ An object.
+
+
+ Verifies whether a specific configuration object is read-only.
+ The name of the configuration object to verify.
+ The specified configuration object is not in the collection.
+
+ if the specified configuration object in the collection is read-only; otherwise, .
+
+
+ Removes a configuration object from the collection.
+ The name of the configuration object.
+ Occurs when the does not match an existing configuration object within the collection.
+
+
+ Locks a set of configuration objects based on the supplied list.
+ A comma-delimited string.
+ Occurs when an item in the parameter is not a valid lockable configuration attribute.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Gets a list of configuration objects contained in the collection.
+ A comma-delimited string that lists the lock configuration objects in the collection.
+
+
+ Gets the number of locked configuration objects contained in the collection.
+ The number of locked configuration objects contained in the collection.
+
+
+ Gets a value specifying whether the collection of locked objects has parent elements.
+
+ if the collection has parent elements; otherwise, .
+
+
+ Gets a value specifying whether the collection has been modified.
+
+ if the collection has been modified; otherwise, .
+
+
+ Gets a value specifying whether the collection is synchronized.
+
+ if the collection is synchronized; otherwise, .
+
+
+ Gets an object used to synchronize access to this collection.
+ An object used to synchronize access to this collection.
+
+
+ Provides access to configuration files for client applications. This class cannot be inherited.
+
+
+ Retrieves a specified configuration section for the current application's default configuration.
+ The configuration section path and name. Node names are separated by forward slashes, for example "system.net/mailSettings/smtp".
+ A configuration file could not be loaded.
+ The specified object, or if the section does not exist.
+
+
+ Opens the configuration file for the current application as a object.
+ One of the enumeration values that specifies the user level for which you are opening the configuration.
+ A configuration file could not be loaded.
+ The configuration file for the current application.
+
+
+ Opens the specified client configuration file as a object.
+ The path of the executable (exe) file.
+ A configuration file could not be loaded.
+ The specified configuration file.
+
+
+ Opens the machine configuration file on the current computer as a object.
+ A configuration file could not be loaded.
+ The machine configuration file.
+
+
+ Opens the specified client configuration file as a object that uses the specified file mapping and user level.
+ The configuration file to use instead of the application default configuration file.
+ One of the enumeration values that specifies the user level for which you are opening the configuration.
+ A configuration file could not be loaded.
+ The configuration object.
+
+
+ Opens the specified client configuration file as a object that uses the specified file mapping, user level, and preload option.
+ The configuration file to use instead of the default application configuration file.
+ One of the enumeration values that specifies the user level for which you are opening the configuration.
+
+ to preload all section groups and sections; otherwise, .
+ A configuration file could not be loaded.
+ The configuration object.
+
+
+ Opens the machine configuration file as a object that uses the specified file mapping.
+ The configuration file to use instead of the application default configuration file.
+ A configuration file could not be loaded.
+ The machine configuration file.
+
+
+ Refreshes the named section so the next time that it is retrieved it will be re-read from disk.
+ The configuration section name or the configuration path and section name of the section to refresh.
+
+
+ Gets the data for the current application's default configuration.
+ Could not retrieve a object with the application settings data.
+ The contents of the object for the current application's default configuration.
+
+
+ Gets the data for the current application's default configuration.
+ Could not retrieve a object.
+ The contents of the object for the current application's default configuration.
+
+
+ Represents an attribute or a child of a configuration element. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+ The default value of the configuration entity.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+ The default value of the configuration entity.
+ The type of the converter to apply.
+ The validator to use.
+ One of the enumeration values.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+ The default value of the configuration entity.
+ The type of the converter to apply.
+ The validator to use.
+ One of the enumeration values.
+ The description of the configuration entity.
+
+
+ Initializes a new instance of the class.
+ The name of the configuration entity.
+ The type of the configuration entity.
+ The default value of the configuration entity.
+ One of the enumeration values.
+
+
+ Gets the used to convert this into an XML representation for writing to the configuration file.
+ This cannot be converted.
+ A used to convert this into an XML representation for writing to the configuration file.
+
+
+ Gets the default value for this property.
+ An that can be cast to the type specified by the property.
+
+
+ Gets the description associated with the .
+ A value that describes the property.
+
+
+ Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+
+ if the property requires assembly name transformation; otherwise, .
+
+
+ Gets a value that indicates whether the property is the default collection of an element.
+
+ if the property is the default collection of an element; otherwise, .
+
+
+ Gets a value indicating whether this is the key for the containing object.
+
+ if this object is the key for the containing element; otherwise, . The default is .
+
+
+ Gets a value indicating whether this is required.
+
+ if the is required; otherwise, . The default is .
+
+
+ Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.
+
+ if the property requires type-name transformation; otherwise, .
+
+
+ Indicates whether the configuration property's parent configuration section is queried at serialization time to determine whether the configuration property should be serialized into XML.
+
+ if the parent configuration section should be queried; otherwise, .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ Gets the type of this object.
+ A representing the type of this object.
+
+
+ Gets the , which is used to validate this object.
+ The validator, which is used to validate this .
+
+
+ Declaratively instructs .NET to instantiate a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of class.
+ Name of the object defined.
+
+
+ Gets or sets the default value for the decorated property.
+ The object representing the default value of the decorated configuration-element property.
+
+
+ Gets or sets a value indicating whether this is the default property collection for the decorated configuration property.
+
+ if the property represents the default collection of an element; otherwise, . The default is .
+
+
+ Gets or sets a value indicating whether this is a key property for the decorated element property.
+
+ if the property is a key property for an element of the collection; otherwise, . The default is .
+
+
+ Gets or sets a value indicating whether the decorated element property is required.
+
+ if the property is required; otherwise, . The default is .
+
+
+ Gets the name of the decorated configuration-element property.
+ The name of the decorated configuration-element property.
+
+
+ Gets or sets the for the decorated configuration-element property.
+ One of the enumeration values associated with the property.
+
+
+ Represents a collection of configuration-element properties.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a configuration property to the collection.
+ The to add.
+
+
+ Removes all configuration property objects from the collection.
+
+
+ Specifies whether the configuration property is contained in this collection.
+ An identifier for the to verify.
+
+ if the specified is contained in the collection; otherwise, .
+
+
+ Copies this ConfigurationPropertyCollection to an array.
+ Array to which to copy.
+ Index at which to begin copying.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Removes a configuration property from the collection.
+ The to remove.
+
+ if the specified was removed; otherwise, .
+
+
+ Copies this collection to an array.
+ The array to which to copy.
+ The index location at which to begin copying.
+
+
+ Gets the number of properties in the collection.
+ The number of properties in the collection.
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread safe).
+
+ if access to the is synchronized; otherwise, .
+
+
+ Gets the collection item with the specified name.
+ The to return.
+ The with the specified .
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Specifies the options to apply to a property.
+
+
+ Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of .NET.
+
+
+ Indicates that the property is a default collection.
+
+
+ Indicates that the property is a collection key.
+
+
+ Indicates that the property is required.
+
+
+ Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of .NET.
+
+
+ Indicates whether the configuration property's parent configuration section should be queried at serialization time to determine whether the configuration property should be serialized into XML.
+
+
+ Indicates that no option applies to the property.
+
+
+ Determines which properties are written out to a configuration file.
+
+
+ Causes all properties to be written to the configuration file. This is useful mostly for creating information configuration files or moving configuration values from one machine to another.
+
+
+ Causes only properties that differ from inherited values to be written to the configuration file.
+
+
+ Causes only modified properties to be written to the configuration file, even when the value is the same as the inherited value.
+
+
+ Represents a section within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Reads XML from the configuration file.
+ The object, which reads from the configuration file.
+
+ found no elements in the configuration file.
+
+
+ Returns a custom object when overridden in a derived class.
+ The object representing the section.
+
+
+ Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.
+
+ if the element has been modified; otherwise, .
+
+
+ Resets the value of the method to when implemented in a derived class.
+
+
+ Creates an XML string containing an unmerged view of the object as a single section to write to a file.
+ The instance to use as the parent when performing the un-merge.
+ The name of the section to create.
+ The instance to use when writing to a string.
+ An XML string containing an unmerged view of the object.
+
+
+ Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The object that is a candidate for serialization.
+ The name of the object as it occurs in XML.
+ The target version of the .NET Framework.
+
+ if the should be serialized; otherwise, .
+
+
+ Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The object that is a candidate for serialization.
+ The name of the object as it occurs in XML.
+ The target version of the .NET Framework.
+ The parent element of the property.
+
+ if the should be serialized; otherwise, .
+
+
+ Indicates whether the current instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The target version of the .NET Framework.
+
+ if the current section should be serialized; otherwise, .
+
+
+ Gets a object that contains the non-customizable information and functionality of the object.
+ A that contains the non-customizable information and functionality of the .
+
+
+ Represents a collection of related sections within a configuration file.
+
+
+ Adds a object to the object.
+ The name of the section to be added.
+ The section to be added.
+
+
+ Clears this object.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index location at which to begin copying.
+
+ is .
+ The length of is less than the value of plus .
+
+
+ Gets the specified object contained in this object.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object contained in this object.
+ The name of the object to be returned.
+
+ is null or an empty string ("").
+ The object with the specified name.
+
+
+ Gets an enumerator that can iterate through this object.
+ An that can be used to iterate through this object.
+
+
+ Gets the key of the specified object contained in this object.
+ The index of the object whose key is to be returned.
+ The key of the object at the specified index.
+
+
+ Removes the specified object from this object.
+ The name of the section to be removed.
+
+
+ Removes the specified object from this object.
+ The index of the section to be removed.
+
+
+ Gets the specified object.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object.
+ The name of the object to be returned.
+ The object with the specified name.
+
+
+ Represents a group of related sections within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Forces the declaration for this object.
+
+
+ Forces the declaration for this object.
+
+ if the object must be written to the file; otherwise, .
+ The object is the root section group.
+
+-or-
+
+ The object has a location.
+
+
+ Indicates whether the current instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.
+ The target version of the .NET Framework.
+
+ if the current section group should be serialized; otherwise, .
+
+
+ Gets a value that indicates whether this object declaration is required.
+
+ if this declaration is required; otherwise, .
+
+
+ Gets a value that indicates whether this object is declared.
+
+ if this is declared; otherwise, . The default is .
+
+
+ Gets the name property of this object.
+ The name property of this object.
+
+
+ Gets the section group name associated with this .
+ The section group name of this object.
+
+
+ Gets a object that contains all the objects that are children of this object.
+ A object that contains all the objects that are children of this object.
+
+
+ Gets a object that contains all of objects within this object.
+ A object that contains all the objects within this object.
+
+
+ Gets or sets the type for this object.
+ The object is the root section group.
+
+-or-
+
+ The object has a location.
+ The section or group is already defined at another level.
+ The type of this object.
+
+
+ Represents a collection of objects.
+
+
+ Adds a object to this object.
+ The name of the object to be added.
+ The object to be added.
+
+
+ Clears the collection.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index location at which to begin copying.
+
+ is .
+ The length of is less than the value of plus .
+
+
+ Gets the specified object contained in the collection.
+ The index of the object to be returned.
+ The object at the specified index.
+
+
+ Gets the specified object from the collection.
+ The name of the object to be returned.
+
+ is null or an empty string ("").
+ The object with the specified name.
+
+
+ Gets an enumerator that can iterate through the object.
+ An that can be used to iterate through the object.
+
+
+ Gets the key of the specified object contained in this object.
+ The index of the section group whose key is to be returned.
+ The key of the object at the specified index.
+
+
+ Removes the object whose name is specified from this object.
+ The name of the section group to be removed.
+
+
+ Removes the object whose index is specified from this object.
+ The index of the section group to be removed.
+
+
+ Gets the object whose index is specified from the collection.
+ The index of the object to be returned.
+ The object at the specified index.
+
+ In C#, this property is the indexer for the class.
+
+
+ Gets the object whose name is specified from the collection.
+ The name of the object to be returned.
+ The object with the specified name.
+
+ In C#, this property is the indexer for the class.
+
+
+ Provides runtime versions 1.0 and 1.1 support for reading configuration sections and common configuration settings.
+
+
+ Returns the object for the passed configuration section name and path.
+ A configuration name and path, such as "system.net/settings".
+ Unable to retrieve the requested section.
+ The object for the passed configuration section name and path.
+
+
+ Gets a read-only collection of the application settings from the configuration file.
+ A read-only collection of the application settings from the configuration file.
+
+
+ Used to specify which configuration file is to be represented by the Configuration object.
+
+
+ Gets the that applies to all users.
+
+
+ Gets the roaming that applies to the current user.
+
+
+ Gets the local that applies to the current user.
+
+
+ Serves as the base class for the validator attribute types.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified validator type.
+ The validator type to use when creating an instance of .
+
+ is .
+
+ is not derived from .
+
+
+ Gets the validator attribute instance.
+ The current .
+
+
+ Gets the type of the validator attribute.
+ The of the current validator attribute instance.
+
+
+ Acts as a base class for deriving a validation class so that a value of an object can be verified.
+
+
+ Initializes an instance of the class.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+
+ if the parameter value matches the expected ; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+
+ Wraps the corresponding type and also carries the necessary information for reporting file-name and line numbers.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a configuration element attribute.
+ The prefix definition.
+ The name that is used locally.
+ The URL that is assigned to the namespace.
+ The attribute.
+
+
+ Creates an XML CData section.
+ The data to use.
+ The value.
+
+
+ Create an XML comment.
+ The comment data.
+ The value.
+
+
+ Creates a configuration element.
+ The prefix definition.
+ The name used locally.
+ The namespace for the URL.
+ The value.
+
+
+ Creates white spaces.
+ The data to use.
+ The value.
+
+
+ Create a text node.
+ The text to use.
+ The value.
+
+
+ Creates white space.
+ The data to use.
+ The value.
+
+
+ Loads the configuration file.
+ The name of the file.
+
+
+ Loads a single configuration element.
+ The name of the file.
+ The source for the reader.
+
+
+ Gets the configuration file name.
+ The configuration file name.
+
+
+ Gets the current node line number.
+ The line number for the current node.
+
+
+ Gets the configuration file name.
+ The file name.
+
+
+ Gets the configuration line number.
+ The line number.
+
+
+ Represents a single, named connection string in the connection strings configuration file section.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The name of the connection string.
+ The connection string.
+
+
+ Initializes a new instance of the class.
+ The name of the connection string.
+ The connection string.
+ The name of the provider to use with the connection string.
+
+
+ Returns a string representation of the object.
+ A string representation of the object.
+
+
+ Gets or sets the connection string.
+ The string value assigned to the property.
+
+
+ Gets or sets the name.
+ The string value assigned to the property.
+
+
+ Gets or sets the provider name property.
+ The property.
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+
+
+ Removes all the objects from the collection.
+
+
+ Returns the collection index of the passed object.
+ A object in the collection.
+ The collection index of the specified object.
+
+
+ Removes the specified object from the collection.
+ A object in the collection.
+
+
+ Removes the specified object from the collection.
+ The name of a object in the collection.
+
+
+ Removes the object at the specified index in the collection.
+ The index of a object in the collection.
+
+
+ Gets or sets the connection string at the specified index in the collection.
+ The index of a object in the collection.
+ The object at the specified index.
+
+
+ Gets or sets the object with the specified name in the collection.
+ The name of a object in the collection.
+ The object with the specified name; otherwise, .
+
+
+ Provides programmatic access to the connection strings configuration-file section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a collection of objects.
+ A collection of objects.
+
+
+ Encapsulates the context information that is associated with a object. This class cannot be inherited.
+
+
+ Provides an object containing configuration-section information based on the specified section name.
+ The name of the configuration section.
+ An object containing the specified section within the configuration.
+
+
+ Gets the context of the environment where the configuration property is being evaluated.
+ An object specifying the environment where the configuration property is being evaluated.
+
+
+ Gets a value specifying whether the configuration property is being evaluated at the machine configuration level.
+
+ if the configuration property is being evaluated at the machine configuration level; otherwise, .
+
+
+ Represents a basic configuration-section handler that exposes the configuration section's XML for both read and write access.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the default value for an application settings property.
+
+
+ Initializes an instance of the class.
+ A that represents the default value for the property.
+
+
+ Gets the default value for the application settings property.
+ A that represents the default value for the property.
+
+
+ Provides validation of an object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether an object can be validated, based on type.
+ The object type.
+
+ for all types being validated.
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+
+ Provides key/value pair configuration information from a configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ A configuration object.
+
+
+ Gets the XML attribute name to use as the key in a key/value pair.
+ A string value containing the name of the key attribute.
+
+
+ Gets the XML attribute name to use as the value in a key/value pair.
+ A string value containing the name of the value attribute.
+
+
+ Provides a object that uses the Windows data protection API (DPAPI) to encrypt and decrypt configuration data.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Decrypts the passed object.
+ The object to decrypt.
+
+ does not have set to "EncryptedData" and set to .
+
+-or-
+
+ does not have a child node named "CipherData" with a child node named "CipherValue".
+
+-or-
+
+ The child node named "CipherData" is an empty node.
+ A decrypted object.
+
+
+ Encrypts the passed object.
+ The object to encrypt.
+ An encrypted object.
+
+
+ Initializes the provider with default settings.
+ The provider name to use for the object.
+ A collection of values to use when initializing the object.
+
+ contains an unrecognized configuration setting.
+
+
+ Gets a value that indicates whether the object is using machine-specific or user-account-specific protection.
+
+ if the is using machine-specific protection; if it is using user-account-specific protection.
+
+
+ Contains meta-information about an individual element within the configuration. This class cannot be inherited.
+
+
+ Gets the errors for the associated element and subelements.
+ The collection containing the errors for the associated element and subelements.
+
+
+ Gets a value indicating whether the associated object is a collection.
+
+ if the associated object is a collection; otherwise, .
+
+
+ Gets a value that indicates whether the associated object cannot be modified.
+
+ if the associated object cannot be modified; otherwise, .
+
+
+ Gets a value indicating whether the associated object is in the configuration file.
+
+ if the associated object is in the configuration file; otherwise, .
+
+
+ Gets the line number in the configuration file where the associated object is defined.
+ The line number in the configuration file where the associated object is defined.
+
+
+ Gets a collection of the properties in the associated object.
+ A collection of the properties in the associated object.
+
+
+ Gets the source file where the associated object originated.
+ The source file where the associated object originated.
+
+
+ Gets the type of the associated object.
+ The type of the associated object.
+
+
+ Gets the object used to validate the associated object.
+ The object used to validate the associated object.
+
+
+ Defines the configuration file mapping for an .exe application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified machine configuration file name.
+ The name of the machine configuration file that includes the complete physical path (for example, c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config).
+
+
+ Creates a copy of the existing object.
+ An object.
+
+
+ Gets or sets the name of the configuration file.
+ The configuration file name.
+
+
+ Gets or sets the name of the configuration file for the local user.
+ The configuration file name.
+
+
+ Gets or sets the name of the configuration file for the roaming user.
+ The configuration file name.
+
+
+ Manages the path context for the current application. This class cannot be inherited.
+
+
+ Gets the current path for the application.
+ A string value containing the current path.
+
+
+ Gets an object representing the path level of the current application.
+ A object representing the path level of the current application.
+
+
+ Converts between a string and an enumeration type.
+
+
+ Initializes a new instance of the class.
+ The enumeration type to convert.
+
+ is .
+
+
+ Converts a to an type.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+
+ is null or an empty string ("").
+
+-or-
+
+ starts with a numeric character.
+
+-or-
+
+ includes white space.
+ The type that represents the parameter.
+
+
+ Converts an type to a value.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the parameter.
+
+
+ Defines extended capabilities for client-based application settings providers.
+
+
+ Returns the value of the specified settings property for the previous version of the same application.
+ A describing the current application usage.
+ The whose value is to be returned.
+ A containing the value of the specified property setting as it was last set in the previous version of the application; or if the setting cannot be found.
+
+
+ Resets the application settings associated with the specified application to their default values.
+ A describing the current application usage.
+
+
+ Indicates to the provider that the application has been upgraded. This offers the provider an opportunity to upgrade its stored settings as appropriate.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+
+
+ Handles the access to certain configuration sections.
+
+
+ Creates a configuration section handler.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ The created section handler object.
+
+
+ Provides standard configuration methods.
+
+
+ Gets the specified configuration.
+ The configuration key.
+ The object representing the configuration.
+
+
+ Used for initialization.
+
+
+ Provides the configuration setting for International Domain Name (IDN) processing in the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value of the configuration setting.
+ A that contains the current configuration setting for IDN processing.
+
+
+ Provides a wrapper type definition for configuration sections that are not handled by the types.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides a legacy section-handler definition for configuration sections that are not handled by the types.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds the specified configuration object to the section-handler collection.
+ The configuration settings in a corresponding parent configuration section.
+ The virtual path for which the configuration section handler computes configuration values. Normally this parameter is reserved and is .
+ An that contains the configuration information to be handled. Provides direct access to the XML contents of the configuration section.
+ The created configuration handler object.
+
+
+ Converts between a string and the standard infinite or integer value.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to an .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The Int32.MaxValue, if the parameter is the "infinite"; otherwise, the representing the parameter integer value.
+
+
+ Converts an .to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The "infinite" if the is Int32.MaxValue; otherwise, the representing the parameter.
+
+
+ Converts between a string and the standard infinite value.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The TimeSpan.MaxValue, if the parameter is the infinite; otherwise, the representing the parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The used during object conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the parameter is TimeSpan.MaxValue; otherwise, the representing the parameter in minutes.
+
+
+ Provides validation of an value.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum value.
+ An object that specifies the maximum value.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum value.
+ An object that specifies the maximum value.
+
+ to specify that the validation range is exclusive. Inclusive means the value to be validated must be within the specified range; exclusive means that it must be below the minimum or above the maximum.
+
+
+ Initializes a new instance of the class.
+ An object that specifies the minimum length of the integer value.
+ An object that specifies the maximum length of the integer value.
+ A value that specifies whether the validation range is exclusive.
+ An object that specifies a value that must be matched.
+
+ is less than .
+
+-or-
+
+ is greater than .
+
+
+ Determines whether the type of the object can be validated.
+ The type of the object.
+
+ if the parameter matches an value; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The value to be validated.
+
+
+ Declaratively instructs .NET to perform integer validation on a configuration property. This class cannot be inherited.
+
+
+ Creates a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range defined by the and property values.
+
+ if the value must be excluded; otherwise, . The default is .
+
+
+ Gets or sets the maximum value allowed for the property.
+ The selected value is less than .
+ An integer that indicates the allowed maximum value.
+
+
+ Gets or sets the minimum value allowed for the property.
+ The selected value is greater than .
+ An integer that indicates the allowed minimum value.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Delegates all members of the interface to another instance of a host.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration context.
+ A string representing the path to a configuration file.
+ A string representing a location subpath.
+ A representing a new configuration context.
+
+
+ Creates a deprecated configuration context.
+ A string representing the path to a configuration file.
+ A representing a deprecated configuration context.
+
+
+ Decrypts an encrypted configuration section.
+ An encrypted section of a configuration file.
+ An object containing the providers that encrypt and decrypt protected configuration data.
+ An object that provides programatic access to the configProtectedData configuration section.
+ A string representing a decrypted configuration section.
+
+
+ Deletes the object performing I/O tasks on a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+
+
+ Encrypts a section of a configuration object.
+ A section of the configuration that is not encrypted.
+ An object containing the providers that encrypt and decrypt protected configuration data.
+ An object that provides programatic access to the configProtectedData configuration section.
+ A string representing an encrypted section of the configuration object.
+
+
+ Returns a configuration path based on a location subpath.
+ A string representing the path to a configuration file.
+ A string representing a location subpath.
+ A string representing a configuration path.
+
+
+ Returns a representing the type of the configuration.
+ A string representing the configuration type.
+
+ if an exception should be thrown if an error is encountered; if an exception should not be thrown if an error is encountered.
+ A representing the type of the configuration.
+
+
+ Returns a string representing the type name of the configuration object.
+ A object.
+ A string representing the type name of the configuration object.
+
+
+ Sets the specified permission set if available within the host object.
+ An object.
+ A object.
+
+ if the host has finished initialization; otherwise, .
+
+
+ Returns the name of a object performing I/O tasks on a configuration file.
+ A string representing the path to a configuration file.
+ A string representing the name of a object performing I/O tasks on a configuration file.
+
+
+ Returns the name of a object performing I/O tasks on a configuration source.
+ The name of a object performing I/O tasks on a configuration file.
+ A string representing the configuration source.
+ A string representing the name of a object performing I/O tasks on a configuration source.
+
+
+ Returns a object representing the version of a object performing I/O tasks on a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object representing the version of a object performing I/O tasks on a configuration file.
+
+
+ Instructs the host to impersonate and returns an object required internally by .NET.
+ An value.
+
+
+ Initializes the configuration host.
+ An object.
+ A parameter object containing the values used for initializing the configuration host.
+
+
+ Initializes the host for configuration.
+ A string representing a location subpath (passed by reference).
+ A string representing the path to a configuration file.
+ The location configuration path.
+ The configuration root element.
+ A parameter object representing the parameters used to initialize the host.
+
+
+ Returns a value indicating whether the configuration is above the application configuration in the configuration hierarchy.
+ A string representing the path to a configuration file.
+
+ if the configuration is above the application configuration in the configuration hierarchy; otherwise, .
+
+
+ Returns a value indicating whether a configuration record is required for the host configuration initialization.
+ A string representing the path to a configuration file.
+
+ if a configuration record is required for the host configuration initialization; otherwise, .
+
+
+ Restricts or allows definitions in the host configuration.
+ A string representing the path to a configuration file.
+ The object.
+ The object.
+
+ if the grant or restriction of definitions in the host configuration was successful; otherwise, .
+
+
+ Returns a value indicating whether the file path used by a object to read a configuration file is a valid path.
+ The name of a object performing I/O tasks on a configuration file.
+
+ if the path used by a object to read a configuration file is a valid path; otherwise, .
+
+
+ Returns a value indicating whether a configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands.
+ The object.
+
+ if the configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands; otherwise, .
+
+
+ Returns a value indicating whether the initialization of a configuration object is considered delayed.
+ The object.
+
+ if the initialization of a configuration object is considered delayed; otherwise, .
+
+
+ Returns a value indicating whether the configuration object supports a location tag.
+ A string representing the path to a configuration file.
+
+ if the configuration object supports a location tag; otherwise, .
+
+
+ Returns a value indicating whether a configuration path is to a configuration node whose contents should be treated as a root.
+ A string representing the path to a configuration file.
+
+ if the configuration path is to a configuration node whose contents should be treated as a root; otherwise, .
+
+
+ Returns a value indicating whether the configuration path is trusted.
+ A string representing the path to a configuration file.
+
+ if the configuration path is trusted; otherwise, .
+
+
+ Opens a object to read a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ The object specified by .
+
+
+ Opens a object to read a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+
+ to assert permissions; otherwise, .
+ The object specified by .
+
+
+ Opens a object for writing to a configuration file or for writing to a temporary file used to build a configuration file. Allows a object to be designated as a template for copying file attributes.
+ The name of a object performing I/O tasks on a configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object (passed by reference).
+ A object.
+
+
+ Opens a object for writing to a configuration file. Allows a object to be designated as a template for copying file attributes.
+ The name of a object performing I/O tasks on a configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object performing I/O tasks on the configuration file (passed by reference).
+
+ to assert permissions; otherwise, .
+ The object specified by the parameter.
+
+
+ Returns a value indicating whether the entire configuration file could be read by a designated object.
+ A string representing the path to a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+
+ if the entire configuration file could be read by the object designated by ; otherwise, .
+
+
+ Instructs the object to read a designated section of its associated configuration file.
+ A string representing the name of a section group in the configuration file.
+ A string representing the name of a section in the configuration file.
+
+ if a section of the configuration file designated by the and parameters can be read by a object; otherwise, .
+
+
+ Invokes the delegated host's method that refreshes configuration paths.
+
+
+ Indicates that a new configuration record requires a complete initialization.
+ An object.
+
+
+ Instructs the host to monitor an associated object for changes in a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object to receive the returned data representing the changes in the configuration file.
+ An instance containing changed configuration settings.
+
+
+ Instructs the host object to stop monitoring an associated object for changes in a configuration file.
+ The name of a object performing I/O tasks on a configuration file.
+ A object.
+
+
+ Verifies that a configuration definition is allowed for a configuration record.
+ A string representing the path to a configuration file.
+ An object.
+ A object.
+ An object.
+
+
+ Indicates that all writing to the configuration file has completed.
+ The name of a object performing I/O tasks on a configuration file.
+
+ if writing to the configuration file completed successfully; otherwise, .
+ The write context of the object performing I/O tasks on the configuration file.
+
+
+ Indicates that all writing to the configuration file has completed and specifies whether permissions should be asserted.
+ The name of a object performing I/O tasks on a configuration file.
+
+ to indicate that writing was completed successfully; otherwise, .
+ The write context of the object performing I/O tasks on the configuration file.
+
+ to assert permissions; otherwise, .
+
+
+ Determines if the delegated host has a local configuration.
+
+ if the current instance has a local configuration; otherwise, .
+
+
+ Determines if the delegated host has a roaming configuration.
+
+ if the current instance has a roaming configuration; otherwise, .
+
+
+ Gets or sets the object.
+ A object.
+
+
+ Determines if the application configuration file comes from a non-local URI (that is, http://) or is a local file.
+
+ if the delegated host's sections belong to and the configuration file for the application is downloaded via HTTP using ; otherwise, .
+
+
+ Gets a value indicating whether the configuration is remote.
+
+ if the configuration is remote; otherwise, .
+
+
+ Gets a value indicating whether the host configuration supports change notifications.
+
+ if the host supports change notifications; otherwise, .
+
+
+ Gets a value indicating whether the host configuration supports location tags.
+
+ if the host supports location tags; otherwise, .
+
+
+ Gets a value indicating whether the host configuration has path support.
+
+ if the host configuration has path support; otherwise, .
+
+
+ Gets a value indicating whether the host configuration supports refresh.
+
+ if the host configuration supports refresh; otherwise, .
+
+
+ Defines an interface used by .NET to support creating error configuration records.
+
+
+ Gets a string specifying the file name related to the configuration details.
+ A string specifying a filename.
+
+
+ Gets an integer specifying the line number related to the configuration details.
+ An integer specifying a line number.
+
+
+ Defines an interface used by .NET to support the initialization of configuration properties.
+
+
+ Initializes a configuration object.
+ The type of configuration host.
+ An array of configuration host parameters.
+
+
+ Gets the configuration host.
+ An object that is used by .NET to initialize application configuration properties.
+
+
+ Gets the root of the configuration hierarchy.
+ An object.
+
+
+ Defines an interface used by .NET to support configuration management.
+
+
+ Ensures that the networking configuration is loaded.
+
+
+ Defines an interface used by .NET to initialize configuration properties.
+
+
+ Gets the configuration file name related to the application path.
+ A string value representing a configuration file name.
+
+
+ Gets the local configuration directory of the application based on the entry assembly.
+ A string representing the local configuration directory.
+
+
+ Gets the local configuration path of the application based on the entry assembly.
+ A string value representing the local configuration path of the application.
+
+
+ Gets the product name of the application based on the entry assembly.
+ A string value representing the product name of the application.
+
+
+ Gets the product version of the application based on the entry assembly.
+ A string value representing the product version of the application.
+
+
+ Gets the roaming configuration directory of the application based on the entry assembly.
+ A string value representing the roaming configuration directory of the application.
+
+
+ Gets the roaming user's configuration path based on the application's entry assembly.
+ A string value representing the roaming user's configuration path.
+
+
+ Gets the configuration path for the Machine.config file.
+ A string value representing the path of the Machine.config file.
+
+
+ Gets a value representing the configuration system's status.
+
+ if the configuration system is in the process of being initialized; otherwise, .
+
+
+ Gets a value that specifies whether user configuration settings are supported.
+
+ if the configuration system supports user configuration settings; otherwise, .
+
+
+ Gets the name of the file used to store user configuration settings.
+ A string specifying the name of the file used to store user configuration.
+
+
+ Defines interfaces that allow the internal .NET infrastructure to customize configuration.
+
+
+ Returns the path to the application configuration file.
+ A string representing the path to the application configuration file.
+
+
+ Returns a string representing the path to the known local user configuration file.
+ A string representing the path to the known local user configuration file.
+
+
+ Returns a string representing the path to the known roaming user configuration file.
+ A string representing the path to the known roaming user configuration file.
+
+
+ Returns a value indicating whether a configuration file path is the same as a currently known application configuration file path.
+ A string representing the path to the application configuration file.
+
+ if a string representing a configuration path is the same as a path to the application configuration file; if a string representing a configuration path is not the same as a path to the application configuration file.
+
+
+ Returns a value indicating whether a configuration file path is the same as the configuration file path for the currently known local user.
+ A string representing the path to the application configuration file.
+
+ if a string representing a configuration path is the same as a path to a known local user configuration file; otherwise, .
+
+
+ Returns a value indicating whether a configuration file path is the same as the configuration file path for the currently known roaming user.
+ A string representing the path to an application configuration file.
+
+ if a string representing a configuration path is the same as a path to a known roaming user configuration file; otherwise, .
+
+
+ Defines the interfaces used by the internal design time API to create a object.
+
+
+ Creates and initializes a object.
+ The of the object to be created.
+ A parameter array of that contains the parameters to be applied to the created object.
+ A object.
+
+
+ Normalizes a location subpath of a path to a configuration file.
+ A string representing the path to the configuration file.
+ An instance of or .
+ A normalized subpath string.
+
+
+ Defines interfaces used by internal .NET structures to initialize application configuration properties.
+
+
+ Creates and returns a context object for a of an application configuration.
+ A string representing the path of the application configuration file.
+ A string representing a subpath location of the configuration element.
+ A context object for a object of an application configuration.
+
+
+ Creates and returns a deprecated context object of the application configuration.
+ A string representing a path to an application configuration file.
+ A deprecated context object of the application configuration.
+
+
+ Decrypts an encrypted configuration section and returns it as a string.
+ An encrypted XML string representing a configuration section.
+ The object.
+ The object.
+ A decrypted configuration section as a string.
+
+
+ Deletes the object performing I/O tasks on the application configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+
+ Encrypts a configuration section and returns it as a string.
+ An XML string representing a configuration section to encrypt.
+ The object.
+ The object.
+ An encrypted configuration section represented as a string.
+
+
+ Returns the complete path to an application configuration file based on the location subpath.
+ A string representing the path of the application configuration file.
+ The subpath location of the configuration file.
+ A string representing the complete path to an application configuration file.
+
+
+ Returns a object representing the type of the configuration object.
+ The type name.
+
+ to throw an exception if an error occurs; otherwise, .
+ A object representing the type of the configuration object.
+
+
+ Returns a string representing a type name from the object representing the type of the configuration.
+ A object.
+ A string representing the type name from a object representing the type of the configuration.
+
+
+ Associates the configuration with a object.
+ An object.
+ The object to associate with the configuration.
+
+ to indicate the configuration host is has completed building associated permissions; otherwise, .
+
+
+ Returns a string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+ A string representing the path of the application configuration file.
+ A string representing the configuration file name associated with the I/O tasks on the configuration file.
+
+
+ Returns a string representing the configuration file name associated with the object performing I/O tasks on a remote configuration file.
+ A string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+ A string representing a path to a remote configuration file.
+ A string representing the configuration file name associated with the object performing I/O tasks on the configuration file.
+
+
+ Returns the version of the object associated with configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The version of the object associated with configuration file.
+
+
+ Instructs the host to impersonate and returns an object required by the internal .NET structure.
+ An value.
+
+
+ Initializes a configuration host.
+ The configuration root object.
+ The parameter object containing the values used for initializing the configuration host.
+
+
+ Initializes a configuration object.
+ The subpath location of the configuration file.
+ A string representing the path of the application configuration file.
+ A string representing the location of a configuration path.
+ The object.
+ The parameter object containing the values used for initializing the configuration host.
+
+
+ Returns a value indicating whether the configuration file is located at a higher level in the configuration hierarchy than the application configuration.
+ A string representing the path of the application configuration file.
+
+ the configuration file is located at a higher level in the configuration hierarchy than the application configuration; otherwise, .
+
+
+ Returns a value indicating whether a child record is required for a child configuration path.
+ A string representing the path of the application configuration file.
+
+ if child record is required for a child configuration path; otherwise, .
+
+
+ Determines if a different definition is allowable for an application configuration object.
+ A string representing the path of the application configuration file.
+ A object.
+ A object.
+
+ if a different definition is allowable for an application configuration object; otherwise, .
+
+
+ Returns a value indicating whether the file path used by a object to read a configuration file is a valid path.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+ if the path used by a object to read a configuration file is a valid path; otherwise, .
+
+
+ Returns a value indicating whether a configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands.
+ The object.
+
+ if the configuration section requires a fully trusted code access security level and does not allow the attribute to disable implicit link demands; otherwise, .
+
+
+ Returns a value indicating whether the initialization of a configuration object is considered delayed.
+ The object.
+
+ if the initialization of a configuration object is considered delayed; otherwise, .
+
+
+ Returns a value indicating whether the configuration object supports a location tag.
+ A string representing the path of the application configuration file.
+
+ if the configuration object supports a location tag; otherwise, .
+
+
+ Returns a value indicating whether a configuration path is to a configuration node whose contents should be treated as a root.
+ A string representing the path of the application configuration file.
+
+ if the configuration path is to a configuration node whose contents should be treated as a root; otherwise, .
+
+
+ Returns a value indicating whether the configuration path is trusted.
+ A string representing the path of the application configuration file.
+
+ if the configuration path is trusted; otherwise, .
+
+
+ Opens a to read a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object.
+
+
+ Opens a object to read a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+ to assert permissions; otherwise, .
+ The object specified by .
+
+
+ Opens a object for writing to a configuration file or for writing to a temporary file used to build a configuration file. Allows a object to be designated as a template for copying file attributes.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The name of a object from which file attributes are to be copied as a template.
+ The write context of the object.
+ A object.
+
+
+ Opens a object for writing to a configuration file. Allows a object to be designated as a template for copying file attributes.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ The name of a from which file attributes are to be copied as a template.
+ The write context of the object performing I/O tasks on the configuration file.
+
+ to assert permissions; otherwise, .
+ The object specified by .
+
+
+ Returns a value that indicates whether the entire configuration file could be read by a designated object.
+ A string representing the path of the application configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+ if the entire configuration file could be read by the object designated by ; otherwise, .
+
+
+ Instructs the object to read a designated section of its associated configuration file.
+ A string representing the identifying name of a configuration file section group.
+ A string representing the identifying name of a configuration file section.
+
+ if a section of the configuration file designated by and could be read by a object; otherwise, .
+
+
+ Indicates a new configuration record requires a complete initialization.
+ An object.
+
+
+ Instructs the object to monitor an associated object for changes in a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object to receive the returned data representing the changes in the configuration file.
+ An containing changed configuration settings.
+
+
+ Instructs the object to stop monitoring an associated object for changes in a configuration file.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+ A object.
+
+
+ Verifies that a configuration definition is allowed for a configuration record.
+ A string representing the path of the application configuration file.
+ A object.
+ A object.
+ An object.
+
+
+ Indicates that all writing to the configuration file has completed.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+ if the write to the configuration file was completed successfully; otherwise, .
+ The write context of the object performing I/O tasks on the configuration file.
+
+
+ Indicates that all writing to the configuration file has completed and specifies whether permissions should be asserted.
+ A string representing the name of the object performing I/O tasks on the configuration file.
+
+ to indicate the write was completed successfully; otherwise, .
+ The write context of the object performing I/O tasks on the configuration file.
+
+ to assert permissions; otherwise, .
+
+
+ Returns a value indicating whether the configuration is remote.
+
+ if the configuration is remote; otherwise, .
+
+
+ Returns a value indicating whether the host configuration supports change notification.
+
+ if the configuration supports change notification; otherwise, .
+
+
+ Returns a value indicating whether the host configuration supports location tags.
+
+ if the configuration supports location tags; otherwise, .
+
+
+ Returns a value indicating whether the host configuration supports path tags.
+
+ if the configuration supports path tags; otherwise, .
+
+
+ Returns a value indicating whether the host configuration supports configuration refresh.
+
+ if the configuration supports configuration refresh; otherwise, .
+
+
+ Defines interfaces used by internal .NET structures to support creation of new configuration records.
+
+
+ Returns an object representing a section of a configuration from the last-known-good (LKG) configuration.
+ A string representing a key to a configuration section.
+ An instance representing the section of the last-known-good configuration specified by .
+
+
+ Returns an instance representing a section of a configuration file.
+ A string representing a key to a configuration section.
+ An instance representing a section of a configuration file.
+
+
+ Causes a specified section of the configuration object to be reinitialized.
+ A string representing a key to a configuration section that is to be refreshed.
+
+
+ Removes a configuration record.
+
+
+ Grants the configuration object the permission to throw an exception if an error occurs during initialization.
+
+
+ Gets a string representing a configuration file path.
+ A string representing a configuration file path.
+
+
+ Returns a value indicating whether an error occurred during initialization of a configuration object.
+
+ if an error occurred during initialization of a configuration object; otherwise, .
+
+
+ Returns the name of a object performing I/O tasks on the configuration file.
+ A string representing the name of a object performing I/O tasks on the configuration file.
+
+
+ Defines interfaces used by internal .NET structures to support a configuration root object.
+
+
+ Represents the method that handles the event of an object.
+
+
+ Represents the method that handles the event of a object.
+
+
+ Returns an object representing a configuration specified by a configuration path.
+ A string representing the path to a configuration file.
+ An object representing a configuration specified by .
+
+
+ Returns an representing the data in a section of a configuration file.
+ A string representing a section of a configuration file.
+ A string representing the path to a configuration file.
+ An representing the data in a section of a configuration file.
+
+
+ Returns a value representing the file path of the nearest configuration ancestor that has configuration data.
+ The path of configuration file.
+ A string representing the file path of the nearest configuration ancestor that has configuration data.
+
+
+ Returns an object representing a unique configuration record for given configuration path.
+ The path of the configuration file.
+ An object representing a unique configuration record for a given configuration path.
+
+
+ Initializes a configuration object.
+ An object.
+
+ if design time; if run time.
+
+
+ Finds and removes a configuration record and all its children for a given configuration path.
+ The path of the configuration file.
+
+
+ Returns a value indicating whether the configuration is a design-time configuration.
+
+ if the configuration is a design-time configuration; if the configuration is not a design-time configuration.
+
+
+ Defines an interface used by the configuration system to set the class.
+
+
+ Indicates that initialization of the configuration system has completed.
+
+
+ Provides hierarchical configuration settings and extensions specific to ASP.NET to the configuration system.
+ An object used by the class.
+
+ if the initialization process of the configuration system is complete; otherwise, .
+
+
+ Defines an interface used by .NET to initialize application configuration properties.
+
+
+ Returns the configuration object based on the specified key.
+ The configuration key value.
+ A configuration object.
+
+
+ Refreshes the configuration system based on the specified section name.
+ The name of the configuration section.
+
+
+ Gets a value indicating whether the user configuration is supported.
+
+ if the user configuration is supported; otherwise, .
+
+
+ Defines a class that allows the .NET infrastructure to specify event arguments for configuration events.
+
+
+ Initializes a new instance of the class.
+ A configuration path.
+
+
+ Gets or sets the configuration path related to the object.
+ A string value specifying the configuration path.
+
+
+ Defines a class used by the .NET infrastructure to support configuration events.
+ The source object of the event.
+ A configuration event argument.
+
+
+ Represents a method for hosts to call when a monitored stream has changed.
+ The name of the object performing I/O tasks on the configuration file.
+
+
+ Defines standard functionality for controls or libraries that store and retrieve application settings.
+
+
+ Reads the control's application settings into their corresponding properties and updates the control's state.
+
+
+ Resets the control's application settings properties to their default values.
+
+
+ Persists the control's application settings properties.
+
+
+ Gets or sets a value indicating whether the control should automatically persist its application settings properties.
+
+ if the control should automatically persist its state; otherwise, .
+
+
+ Gets or sets the value of the application settings key for the current instance of the control.
+ A containing the settings key for the current instance of the control.
+
+
+ Provides the configuration setting for International Resource Identifier (IRI) processing in the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value of the configuration setting.
+ A Boolean that indicates if International Resource Identifier (IRI) processing is enabled.
+
+
+ Provides an interface for defining an alternate application settings provider.
+
+
+ Returns the settings provider compatible with the specified settings property.
+ The that requires serialization.
+ If found, the that can persist the specified settings property; otherwise, .
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection based on the supplied parameters.
+ A .
+
+
+ Adds a object to the collection based on the supplied parameters.
+ A string specifying the key.
+ A string specifying the value.
+
+
+ Clears the collection.
+
+
+ When overridden in a derived class, the method creates a new object.
+ A newly created .
+
+
+ Gets the element key for a specified configuration element when overridden in a derived class.
+ The to which the key should be returned.
+ An object that acts as the key for the specified .
+
+
+ Removes a object from the collection.
+ A string specifying the .
+
+
+ Gets the keys to all items contained in the collection.
+ A string array.
+
+
+ Gets the object based on the supplied parameter.
+ The key of the contained in the collection.
+ A configuration element, or if the key does not exist in the collection.
+
+
+ Gets a collection of configuration properties.
+ A collection of configuration properties.
+
+
+ Gets a value indicating whether an attempt to add a duplicate object to the collection will cause an exception to be thrown.
+
+ if an attempt to add a duplicate to the will cause an exception to be thrown; otherwise, .
+
+
+ Represents a configuration element that contains a key/value pair.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The key of the .
+ The value of the .
+
+
+ Sets the object to its initial state.
+
+
+ Gets the key of the object.
+ The key of the .
+
+
+ Gets the collection of properties.
+ The of properties for the element.
+
+
+ Gets or sets the value of the object.
+ The value of the .
+
+
+ Provides persistence for application settings classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the value of the named settings property for the previous version of the same application.
+ A that describes where the application settings property is used.
+ The whose value is to be returned.
+ A representing the application setting if found; otherwise, .
+
+
+ Returns the collection of setting property values for the specified application instance and settings property group.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+ A containing the values for the specified settings property group.
+
+
+ Initializes the provider.
+ The friendly name of the provider.
+ A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
+
+
+ Resets all application settings properties associated with the specified application to their default values.
+ A describing the current application usage.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+
+ Sets the values of the specified group of property settings.
+ A describing the current application usage.
+ A representing the group of property settings to set.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+ -or-
+
+ There was a general failure saving the settings to the configuration file.
+
+
+ Attempts to migrate previous user-scoped settings from a previous version of the same application.
+ A describing the current application usage.
+ A containing the settings property group whose values are to be retrieved.
+ A user-scoped setting was encountered but the current configuration only supports application-scoped settings.
+
+ -or-
+
+ The previous version of the configuration file could not be accessed.
+
+
+ Gets or sets the name of the currently running application.
+ A string that contains the application's display name.
+
+
+ Provides validation of an value.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the value.
+ An value that specifies the maximum length of the value.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the value.
+ An value that specifies the maximum length of the value.
+ A value that specifies whether the validation range is exclusive.
+
+
+ Initializes a new instance of the class.
+ An value that specifies the minimum length of the value.
+ An value that specifies the maximum length of the value.
+ A value that specifies whether the validation range is exclusive.
+ An value that specifies a specific value that must be matched.
+
+ is equal to or less than .
+
+-or-
+
+ is less than .
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+
+ if the parameter matches an value; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Declaratively instructs .NET to perform long-integer validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range defined by the and property values.
+
+ if the value must be excluded; otherwise, . The default is .
+
+
+ Gets or sets the maximum value allowed for the property.
+ The selected value is less than .
+ A long integer that indicates the allowed maximum value.
+
+
+ Gets or sets the minimum value allowed for the property.
+ The selected value is greater than .
+ An integer that indicates the allowed minimum value.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+
+
+ Clears the .
+
+
+ Removes a object from the collection based on the provided parameter.
+ A object.
+
+
+ Removes a object from the collection based on the provided parameter.
+ The name of the object.
+
+
+ Gets the keys to all items contained in the .
+ A string array.
+
+
+ Gets or sets the object based on the supplied parameter.
+ The name of the contained in the collection.
+ A object.
+
+
+ A configuration element that contains a name and value. This class cannot be inherited.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ The name of the object.
+ The value of the object.
+
+
+ Gets the name of the object.
+ The name of the object.
+
+
+ Gets or sets the value of the object.
+ The value of the object.
+
+
+ Provides access to a configuration file. This type supports the .NET configuration infrastructure and is not intended to be used directly from your code.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ The parent object.
+ The configuration context object.
+ The section XML node.
+ The file specified in the attribute of exists but cannot be loaded.
+
+-or-
+
+ The attribute of does not match the root element of the file specified in the attribute.
+ A configuration object.
+
+
+ Provides name/value-pair configuration information from a configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a new configuration handler and adds it to the section-handler collection based on the specified parameters.
+ Parent object.
+ Configuration context object.
+ Section XML node.
+ A configuration object.
+
+
+ Gets the XML attribute name to use as the key in a key/value pair.
+ A value containing the name of the key attribute.
+
+
+ Gets the XML attribute name to use as the value in a key/value pair.
+ A value containing the name of the value attribute.
+
+
+ Specifies that a settings provider should disable any logic that gets invoked when an application upgrade is detected. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the override behavior of a configuration element for configuration elements in child directories.
+
+
+ The configuration setting of the element or group can be overridden by configuration settings that are in child directories.
+
+
+ The configuration setting of the element or group cannot be overridden by configuration settings that are in child directories.
+
+
+ The configuration setting of the element or group will be overridden by configuration settings that are in child directories if explicitly allowed by a parent element of the current configuration element or group. Permission to override is specified by using the attribute.
+
+
+ Provides validation of a object. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Determines whether the object type can be validated.
+ The object type.
+
+ if the parameter matches a object; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+ is .
+
+ cannot be resolved as a positive value.
+
+
+ Declaratively instructs .NET to perform time validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Contains meta-information on an individual property within the configuration. This type cannot be inherited.
+
+
+ Gets the object related to the configuration attribute.
+ A object.
+
+
+ Gets an object containing the default value related to a configuration attribute.
+ An object containing the default value of the configuration attribute.
+
+
+ Gets the description of the object that corresponds to a configuration attribute.
+ The description of the configuration attribute.
+
+
+ Gets a value specifying whether the configuration attribute is a key.
+
+ if the configuration attribute is a key; otherwise, .
+
+
+ Gets a value specifying whether the configuration attribute is locked.
+
+ if the object is locked; otherwise, .
+
+
+ Gets a value specifying whether the configuration attribute has been modified.
+
+ if the object has been modified; otherwise, .
+
+
+ Gets a value specifying whether the configuration attribute is required.
+
+ if the object is required; otherwise, .
+
+
+ Gets the line number in the configuration file related to the configuration attribute.
+ A line number of the configuration file.
+
+
+ Gets the name of the object that corresponds to a configuration attribute.
+ The name of the object.
+
+
+ Gets the source file that corresponds to a configuration attribute.
+ The source file of the object.
+
+
+ Gets the of the object that corresponds to a configuration attribute.
+ The of the object.
+
+
+ Gets a object related to the configuration attribute.
+ A object.
+
+
+ Gets or sets an object containing the value related to a configuration attribute.
+ An object containing the value for the object.
+
+
+ Gets a object related to the configuration attribute.
+ A object.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Copies the entire collection to a compatible one-dimensional , starting at the specified index of the target array.
+ A one-dimensional that is the destination of the elements copied from the collection. The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+ The property of is less than + .
+
+
+ Gets an object, which is used to iterate through this collection.
+ An object, which is used to iterate through this .
+
+
+ Gets the object in the collection, based on the specified property name.
+ The name of the configuration attribute contained in the object.
+ A object.
+
+
+ Specifies the level in the configuration hierarchy where a configuration property value originated.
+
+
+ The configuration property value originates from the property.
+
+
+ The configuration property value is inherited from a parent level in the configuration.
+
+
+ The configuration property value is defined at the current level of the hierarchy.
+
+
+ Provides access to the protected-configuration providers for the current application's configuration file.
+
+
+ The name of the data protection provider.
+
+
+ The name of the protected data section.
+
+
+ The name of the RSA provider.
+
+
+ Gets the name of the default protected-configuration provider.
+ The name of the default protected-configuration provider.
+
+
+ Gets a collection of the installed protected-configuration providers.
+ A collection of installed objects.
+
+
+ The base class to create providers for encrypting and decrypting protected configuration data.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Decrypts the passed object from a configuration file.
+ The object to decrypt.
+ The object containing decrypted data.
+
+
+ Encrypts the passed object from a configuration file.
+ The object to encrypt.
+ The object containing encrypted data.
+
+
+ Provides a collection of objects.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+
+ is .
+
+ is not a object.
+ The object to add already exists in the collection.
+
+-or-
+
+ The collection is read-only.
+
+
+ Gets a object in the collection with the specified name.
+ The name of a object in the collection.
+ The object with the specified name, or if there is no object with that name.
+
+
+ Provides programmatic access to the configuration section. This class cannot be inherited.
+
+
+ Initializes a new instance of the class using default settings.
+
+
+ Gets or sets the name of the default object in the collection property.
+ The name of the default object in the collection property.
+
+
+ Gets a collection of all the objects in all participating configuration files.
+ A collection of all the objects in all participating configuration files.
+
+
+ Represents a group of configuration elements that configure the providers for the configuration section.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a collection that represents the properties of the providers for the protected configuration data.
+ A that represents the properties of the providers for the protected configuration data.
+
+
+ Gets a collection of objects that represent the properties of the providers for the protected configuration data.
+ A collection of objects that represent the properties of the providers for the protected configuration data.
+
+
+ Provides a base implementation for the extensible provider model.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes the configuration builder.
+ The friendly name of the provider.
+ A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
+ The name of the provider is .
+ The name of the provider has a length of zero.
+ An attempt is made to call on a provider after the provider has already been initialized.
+
+
+ Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).
+ A brief, friendly description suitable for display in administrative tools or other UIs.
+
+
+ Gets the friendly name used to refer to the provider during configuration.
+ The friendly name used to refer to the provider during configuration.
+
+
+ Represents a collection of provider objects that inherit from .
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a provider to the collection.
+ The provider to be added.
+ The collection is read-only.
+
+ is .
+ The of is .
+
+-or-
+
+ The length of the of is less than 1.
+
+
+ Removes all items from the collection.
+ The collection is set to read-only.
+
+
+ Copies the contents of the collection to the given array starting at the specified index.
+ The array to copy the elements of the collection to.
+ The index of the collection item at which to start the copying process.
+
+
+ Returns an object that implements the interface to iterate through the collection.
+ An object that implements to iterate through the collection.
+
+
+ Removes a provider from the collection.
+ The name of the provider to be removed.
+ The collection has been set to read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+ The array to copy the elements of the collection to.
+ The index of the array at which to start copying provider instances from the collection.
+
+
+ Gets the number of providers in the collection.
+ The number of providers in the collection.
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread safe).
+
+ in all cases.
+
+
+ Gets the provider with the specified name.
+ The key by which the provider is identified.
+ The provider with the specified name.
+
+
+ Gets the current object.
+ The current object.
+
+
+ The exception that is thrown when a configuration provider error has occurred. This exception class is also used by providers to throw exceptions when internal errors occur within the provider that do not map to other pre-existing exception classes.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class.
+ The object that holds the information to deserialize.
+ Contextual information about the source or destination.
+
+
+ Creates a new instance of the class.
+ A message describing why this was thrown.
+
+
+ Creates a new instance of the class.
+ A message describing why this was thrown.
+ The exception that caused this to be thrown.
+
+
+ Represents the configuration elements associated with a provider.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The name of the provider to configure settings for.
+ The type of the provider to configure settings for.
+
+
+ Gets or sets the name of the provider configured by this class.
+ The name of the provider.
+
+
+ Gets a collection of user-defined parameters for the provider.
+ A of parameters for the provider.
+
+
+ Gets or sets the type of the provider configured by this class.
+ The fully qualified namespace and class name for the type of provider configured by this instance.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ The object to add.
+
+
+ Clears the collection.
+
+
+ Removes an element from the collection.
+ The name of the object to remove.
+
+
+ Gets or sets a value at the specified index in the collection.
+ The index of the to return.
+ The specified .
+
+
+ Gets an item from the collection.
+ A string reference to the object within the collection.
+ A object contained in the collection.
+
+
+ Provides validation of a string based on the rules provided by a regular expression.
+
+
+ Initializes a new instance of the class.
+ A string that specifies a regular expression.
+
+ is null or an empty string ("").
+
+
+ Determines whether the type of the object can be validated.
+ The type of object.
+
+ if the parameter matches a string; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+ does not conform to the parameters of the class.
+
+
+ Declaratively instructs .NET to perform string validation on a configuration property using a regular expression. This class cannot be inherited.
+
+
+ Initializes a new instance of the object.
+ The string to use for regular expression validation.
+
+
+ Gets the string used to perform regular-expression validation.
+ The string containing the regular expression used to filter the string assigned to the decorated configuration-element property.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Provides a instance that uses RSA encryption to encrypt and decrypt configuration data.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a key to the RSA key container.
+ The size of the key to add.
+
+ to indicate that the key is exportable; otherwise, .
+
+
+ Decrypts the XML node passed to it.
+ The to decrypt.
+ The decrypted XML node.
+
+
+ Removes a key from the RSA key container.
+
+
+ Encrypts the XML node passed to it.
+ The to encrypt.
+ An encrypted object.
+
+
+ Exports an RSA key from the key container.
+ The file name and path to export the key to.
+
+ to indicate that private parameters are exported; otherwise, .
+
+ is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+
+ is .
+ The specified path, file name, or both exceed the system-defined maximum length.
+ The specified path is invalid, such as being on an unmapped drive.
+ An error occurred while opening the file.
+
+ specified a file that is read-only.
+
+ -or-
+
+ This operation is not supported on the current platform.
+
+ -or-
+
+ specified a directory.
+
+ -or-
+
+ The caller does not have the required permission.
+ The file specified in was not found.
+
+ is in an invalid format.
+ The caller does not have the required permission.
+
+
+ Imports an RSA key into the key container.
+ The file name and path to import the key from.
+
+ to indicate that the key is exportable; otherwise, .
+
+ is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+
+ is .
+ The specified path, file name, or both exceed the system-defined maximum length.
+ The specified path is invalid, such as being on an unmapped drive.
+ An error occurred while opening the file.
+
+ specified a file that is write-only.
+
+ -or-
+
+ This operation is not supported on the current platform.
+
+ -or-
+
+ specified a directory.
+
+ -or-
+
+ The caller does not have the required permission.
+ The file specified in was not found.
+
+ is in an invalid format.
+
+
+ Gets the name of the Windows cryptography API (crypto API) cryptographic service provider (CSP).
+ The name of the CryptoAPI cryptographic service provider.
+
+
+ Gets the name of the key container.
+ The name of the key container.
+
+
+ Gets the public key used by the provider.
+ An object that contains the public key used by the provider.
+
+
+ Gets a value indicating whether the provider uses FIPS.
+
+ if the provider uses FIPS; otherwise, .
+
+
+ Gets a value that indicates whether the object is using the machine key container.
+
+ if the object is using the machine key container; otherwise, .
+
+
+ Gets a value that indicates whether the provider is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data.
+
+ if the object is using Optimal Asymmetric Encryption Padding (OAEP) key exchange data; otherwise, .
+
+
+ Represents an element in a class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the value of the GenericUriParserOptions entry from a instance.
+ The value of GenericUriParserOptions entry.
+
+
+ Gets the value of the Name entry from a instance.
+ The protocol used by this schema setting.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ The index of the specified .
+ The for the specified index location.
+ The index of the specified ; otherwise, -1.
+
+
+ Gets the default collection type of .
+ The default collection type of .
+
+
+ Gets an item at the specified index in the collection.
+ The index of the to return.
+ The parameter is less than zero.
+
+ -or-
+
+ The item specified by the parameter is or has been removed.
+ The specified .
+
+
+ Gets an item from the collection.
+ A string reference to the object within the collection.
+ A object contained in the collection.
+
+
+ Contains metadata about an individual section within the configuration hierarchy. This class cannot be inherited.
+
+
+ Forces the associated configuration section to appear in the configuration file.
+
+
+ Forces the associated configuration section to appear in the configuration file, or removes an existing section from the configuration file.
+
+ if the associated section should be written in the configuration file; otherwise, .
+
+ is and the associated section cannot be exported to the child configuration file, or it is undeclared.
+
+
+ Gets the configuration section that contains the configuration section associated with this object.
+ The method is invoked from a parent section.
+ The configuration section that contains the that is associated with this object.
+
+
+ Returns an XML node object that represents the associated configuration-section object.
+ This configuration object is locked and cannot be edited.
+ The XML representation for this configuration section.
+
+
+ Marks a configuration section for protection.
+ The name of the protection provider to use.
+ The property is set to .
+
+-or-
+
+ The target section is already a protected data section.
+
+
+ Causes the associated configuration section to inherit all its values from the parent section.
+ This method cannot be called outside editing mode.
+
+
+ Sets the object to an XML representation of the associated configuration section within the configuration file.
+ The XML to use.
+
+ is .
+
+
+ Removes the protected configuration encryption from the associated configuration section.
+
+
+ Gets or sets a value that indicates where in the configuration file hierarchy the associated configuration section can be defined.
+ The selected value conflicts with a value that is already defined.
+ A value that indicates where in the configuration file hierarchy the associated object can be declared.
+
+
+ Gets or sets a value that indicates where in the configuration file hierarchy the associated configuration section can be declared.
+ The selected value conflicts with a value that is already defined.
+ A value that indicates where in the configuration file hierarchy the associated object can be declared for .exe files.
+
+
+ Gets or sets a value that indicates whether the configuration section allows the attribute.
+ The selected value conflicts with a value that is already defined.
+
+ if the attribute is allowed; otherwise, . The default is .
+
+
+ Gets or sets a value that indicates whether the associated configuration section can be overridden by lower-level configuration files.
+
+ if the section can be overridden; otherwise, . The default is .
+
+
+ Gets or sets the name of the include file in which the associated configuration section is defined, if such a file exists.
+ The name of the include file in which the associated is defined, if such a file exists; otherwise, an empty string ("").
+
+
+ Gets or sets a value that indicates whether the associated configuration section will be saved even if it has not been modified.
+
+ if the associated object will be saved even if it has not been modified; otherwise, . The default is .
+
+Note: If the configuration file is saved (even if there are no modifications), ASP.NET restarts the application1.exe.config.
+
+
+ Gets or sets a value that indicates whether the settings that are specified in the associated configuration section are inherited by applications that reside in a subdirectory of the relevant application.
+
+ if the settings specified in this object are inherited by child applications; otherwise, . The default is .
+
+
+ Gets a value that indicates whether the configuration section must be declared in the configuration file.
+
+ if the associated object must be declared in the configuration file; otherwise, .
+
+
+ Gets a value that indicates whether the associated configuration section is declared in the configuration file.
+
+ if this is declared in the configuration file; otherwise, . The default is .
+
+
+ Gets a value that indicates whether the associated configuration section is locked.
+
+ if the section is locked; otherwise, .
+
+
+ Gets a value that indicates whether the associated configuration section is protected.
+
+ if this is protected; otherwise, . The default is .
+
+
+ Gets the name of the associated configuration section.
+ The complete name of the configuration section.
+
+
+ Gets or sets the enumeration value that specifies whether the associated configuration section can be overridden by child configuration files.
+ An attempt was made to change both the and properties, which is not supported for compatibility reasons.
+ One of the enumeration values.
+
+
+ Gets or sets a value that specifies the default override behavior of a configuration section by child configuration files.
+ The override behavior is specified in a parent configuration section.
+ One of the enumeration values.
+
+
+ Gets the override behavior of a configuration section that is in turn based on whether child configuration files can lock the configuration section.
+ One of the enumeration values.
+
+
+ Gets the protected configuration provider for the associated configuration section.
+ The protected configuration provider for this object.
+
+
+ Gets a value that indicates whether the associated configuration section requires access permissions.
+ The selected value conflicts with a value that is already defined.
+
+ if the attribute is set to ; otherwise, . The default is .
+
+
+ Gets or sets a value that specifies whether a change in an external configuration include file requires an application restart.
+ The selected value conflicts with a value that is already defined.
+
+ if a change in an external configuration include file requires an application restart; otherwise, . The default is .
+
+
+ Gets the name of the associated configuration section.
+ The name of the associated object.
+
+
+ Gets or sets the section class name.
+ The selected value is or an empty string ("").
+ The selected value conflicts with a value that is already defined.
+ The name of the class that is associated with this section.
+
+
+ Represents a custom settings attribute used to associate settings information with a settings property.
+
+
+ Initializes a new instance of the class.
+
+
+ Provides data for the event.
+
+
+ Initializes an instance of the class.
+ A containing the name of the application setting.
+ A containing a category description of the setting. Often this parameter is set to the application settings group name.
+ A containing the application settings key.
+ An that contains the new value to be assigned to the application settings property.
+
+ to cancel the event; otherwise, .
+
+
+ Gets the new value being assigned to the application settings property.
+ An that contains the new value to be assigned to the application settings property.
+
+
+ Gets the application settings property category.
+ A containing a category description of the setting. Typically, this parameter is set to the application settings group name.
+
+
+ Gets the application settings key associated with the property.
+ A containing the application settings key.
+
+
+ Gets the name of the application setting associated with the application settings property.
+ A containing the name of the application setting.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically an application settings wrapper class derived from the class.
+ A containing the data for the event.
+
+
+ Represents a simplified configuration element used for updating elements in the configuration. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ The name of the object.
+ A object. This object is an enumeration used as the serialization scheme to store configuration settings.
+
+
+ Compares the current instance to the specified object.
+ The object to compare with.
+
+ if the instance is equal to the specified object; otherwise, .
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Gets or sets the name of the object.
+ The name of the object.
+
+
+ Gets or sets the serialization mechanism used to persist the values of the object.
+ A object.
+
+
+ Gets or sets the value of a object by using a object.
+ A object containing the value of the object.
+
+
+ Contains a collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ The object to add to the collection.
+
+
+ Removes all objects from the collection.
+
+
+ Gets a object from the collection.
+ A string value representing the object in the collection.
+ A object.
+
+
+ Removes a object from the collection.
+ A object.
+
+
+ Gets the type of the configuration collection.
+ The object of the collection.
+
+
+ Represents a collection of key/value pairs used to describe a configuration object as well as a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A collection of key/value pairs that are related to configuration settings.
+
+
+ Constructor for deserializing a instance from state file (binary serialization).
+ The containing all the data needed to deserialize the object.
+ The describing the source and destination of the given serialized stream.
+
+
+ Provides the base class used to support user property settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes internal properties used by object.
+ The settings context related to the settings properties.
+ The settings properties that will be accessible from the instance.
+ The initialized providers that should be used when loading and saving property values.
+
+
+ Stores the current values of the settings properties.
+
+
+ Provides a class that is synchronized (thread safe).
+ The class used to support user property settings.
+ A class that is synchronized.
+
+
+ Gets the associated settings context.
+ A associated with the settings instance.
+
+
+ Gets a value indicating whether access to the object is synchronized (thread safe).
+
+ if access to the is synchronized; otherwise, .
+
+
+ Gets or sets the value of the specified settings property.
+ A containing the name of the property to access.
+ There are no properties associated with the current object, or the specified property could not be found.
+ An attempt was made to set a read-only property.
+ The value supplied is of a type incompatible with the settings property, during a set operation.
+ If found, the value of the named settings property.
+
+
+ Gets the collection of settings properties.
+ A collection containing all the objects.
+
+
+ Gets a collection of settings property values.
+ A collection of objects representing the actual data values for the properties managed by the instance.
+
+
+ Gets a collection of settings providers.
+ A containing objects.
+
+
+ Provides contextual information that the provider can use when persisting settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Constructor for deserializing a instance from state file (binary serialization).
+ The containing all the data needed to deserialize the object.
+ The describing the source and destination of the given serialized stream.
+
+
+ Provides a string that describes an individual configuration property. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ The used as descriptive text.
+
+
+ Gets the descriptive text for the associated configuration property.
+ A containing the descriptive text for the associated configuration property.
+
+
+ Provides a string that describes an application settings property group. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A containing the descriptive text for the application settings group.
+
+
+ The descriptive text for the application settings properties group.
+ A containing the descriptive text for the application settings group.
+
+
+ Specifies a name for application settings property group. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A containing the name of the application settings property group.
+
+
+ Gets the name of the application settings property group.
+ A containing the name of the application settings property group.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+ A object from which settings are loaded.
+
+
+ Gets the settings provider used to store configuration settings.
+ A settings provider.
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically the settings class.
+ A object that contains the event data.
+
+
+ Provides values to indicate which services should be made available to application settings.
+
+
+ Enables application settings to be stored in roaming user profiles. For more information about roaming user profiles, see Isolated Storage and Roaming.
+
+
+ Specifies special services for application settings properties. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A value that enumerates the services being requested.
+
+
+ Gets the set of special services that have been requested.
+ A value that results from using the logical operator to combine all the enumeration values corresponding to the requested services.
+
+
+ Used internally as the class that represents metadata about an individual configuration property.
+
+
+ Initializes a new instance of the class, based on the supplied parameter.
+ Specifies a copy of an existing object.
+
+
+ Initializes a new instance of the class. based on the supplied parameter.
+ Specifies the name of an existing object.
+
+
+ Creates a new instance of the class based on the supplied parameters.
+ The name of the object.
+ The type of object.
+ A object to use for persistence.
+ A value specifying whether the object is read-only.
+ The default value of the object.
+ A object. This object is an enumeration used to set the serialization scheme for storing application settings.
+ A object.
+ A Boolean value specifying whether an error will be thrown when the property is unsuccessfully deserialized.
+ A Boolean value specifying whether an error will be thrown when the property is unsuccessfully serialized.
+
+
+ Gets a object containing the attributes of the object.
+ A object.
+
+
+ Gets or sets the default value of the object.
+ An object containing the default value of the object.
+
+
+ Gets or sets a value specifying whether a object is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the name of the .
+ The name of the .
+
+
+ Gets or sets the type for the .
+ The type for the .
+
+
+ Gets or sets the provider for the .
+ A object.
+
+
+ Gets or sets a object for the .
+ A object.
+
+
+ Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully deserialized.
+
+ if the error will be thrown when the property is unsuccessfully deserialized; otherwise, .
+
+
+ Gets or sets a value specifying whether an error will be thrown when the property is unsuccessfully serialized.
+
+ if the error will be thrown when the property is unsuccessfully serialized; otherwise, .
+
+
+ Contains a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+ The collection is read-only.
+
+
+ Removes all objects from the collection.
+ The collection is read-only.
+
+
+ Creates a copy of the existing collection.
+ A class.
+
+
+ Copies this object to an array.
+ The array to copy the object to.
+ The index at which to begin copying.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Performs additional, custom processing when adding to the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing after adding to the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing when clearing the contents of the instance.
+
+
+ Performs additional, custom processing after clearing the contents of the instance.
+
+
+ Performs additional, custom processing when removing the contents of the instance.
+ A object.
+
+
+ Performs additional, custom processing after removing the contents of the instance.
+ A object.
+
+
+ Removes a object from the collection.
+ The name of the object.
+ The collection is read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets a value that specifies the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets a value that indicates whether access to the collection is synchronized (thread safe).
+
+ if access to the is synchronized; otherwise, .
+
+
+ Gets the collection item with the specified name.
+ The name of the object.
+ The object with the specified .
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Provides an exception for read-only objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class based on a supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class based on supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Provides an exception for objects that are not found.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Contains the value of a settings property that can be loaded and stored by an instance of .
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ Specifies a object.
+
+
+ Gets or sets whether the value of a object has been deserialized.
+
+ if the value of a object has been deserialized; otherwise, .
+
+
+ Gets or sets whether the value of a object has changed.
+
+ if the value of a object has changed; otherwise, .
+
+
+ Gets the name of the property from the associated object.
+ The name of the object.
+
+
+ Gets the object.
+ The object that describes the object.
+
+
+ Gets or sets the value of the object.
+ While attempting to use the default value from the property, an error occurred. Either the attempt to convert property to a valid type failed, or the resulting value was not compatible with the type defined by .
+ The value of the object. When this value is set, the property is set to and is set to .
+
+ When a value is first accessed from the property, and if the value was initially stored into the object as a serialized representation using the property, the property will trigger deserialization of the underlying value. As a side effect, the property will be set to .
+
+ If this chain of events occurs in ASP.NET, and if an error occurs during the deserialization process, the error is logged using the health-monitoring feature of ASP.NET. By default, this means that deserialization errors will show up in the Application Event Log when running under ASP.NET. If this process occurs outside of ASP.NET, and if an error occurs during deserialization, the error is suppressed, and the remainder of the logic during deserialization occurs. If there is no serialized value to deserialize when the deserialization is attempted, then object will instead attempt to return a default value if one was configured as defined on the associated instance. In this case, if the property was set to either , or to the string "[null]", then the object will initialize the property to either for reference types, or to the default value for the associated value type. On the other hand, if property holds a valid object reference or string value (other than "[null]"), then the property is returned instead.
+
+ If there is no serialized value to deserialize when the deserialization is attempted, and no default value was specified, then an empty string will be returned for string types. For all other types, a default instance will be returned by calling - for reference types this means an attempt will be made to create an object instance using the parameterless constructor. If this attempt fails, then is returned.
+
+
+ Gets or sets the serialized value of the object.
+ The serialization options for the property indicated the use of a string type converter, but a type converter was not available.
+ The serialized value of a object.
+
+
+ Gets a Boolean value specifying whether the value of the object is the default value as defined by the property value on the associated object.
+
+ if the value of the object is the default value; otherwise, .
+
+
+ Contains a collection of settings property values that map objects to objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a object to the collection.
+ A object.
+ An attempt was made to add an item to the collection, but the collection was marked as read-only.
+
+
+ Removes all objects from the collection.
+
+
+ Creates a copy of the existing collection.
+ A class.
+
+
+ Copies this collection to an array.
+ The array to copy the collection to.
+ The index at which to begin copying.
+
+
+ Gets the object as it applies to the collection.
+ The object as it applies to the collection.
+
+
+ Removes a object from the collection.
+ The name of the object.
+ An attempt was made to remove an item from the collection, but the collection was marked as read-only.
+
+
+ Sets the collection to be read-only.
+
+
+ Gets a value that specifies the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets a value that indicates whether access to the collection is synchronized (thread safe).
+
+ if access to the collection is synchronized; otherwise, .
+
+
+ Gets an item from the collection.
+ A object.
+ The object with the specified .
+
+
+ Gets the object to synchronize access to the collection.
+ The object to synchronize access to the collection.
+
+
+ Provides an exception that is thrown when an invalid type is used with a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination of the serialized stream.
+
+
+ Initializes a new instance of the class based on the supplied parameter.
+ A string containing an exception message.
+
+
+ Initializes a new instance of the class based on the supplied parameters.
+ A string containing an exception message.
+ The exception that is the cause of the current exception.
+
+
+ Acts as a base class for deriving custom settings providers in the application settings architecture.
+
+
+ Initializes an instance of the class.
+
+
+ Returns the collection of settings property values for the specified application instance and settings property group.
+ A describing the current application use.
+ A containing the settings property group whose values are to be retrieved.
+ A containing the values for the specified settings property group.
+
+
+ Sets the values of the specified group of property settings.
+ A describing the current application usage.
+ A representing the group of property settings to set.
+
+
+ Gets or sets the name of the currently running application.
+ A that contains the application's shortened name, which does not contain a full path or extension, for example, SimpleAppSettings.
+
+
+ Specifies the settings provider used to provide storage for the current application settings class or property. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ A containing the name of the settings provider.
+
+
+ Initializes a new instance of the class.
+ A containing the settings provider type.
+
+
+ Gets the type name of the settings provider.
+ A containing the name of the settings provider.
+
+
+ Represents a collection of application settings providers.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a new settings provider to the collection.
+ A to add to the collection.
+ The parameter is not of type .
+
+ -or-
+
+ The property of the provider parameter is null or an empty string.
+
+ -or-
+
+ A settings provider with the same already exists in the collection.
+ The collection is read-only.
+ The parameter is .
+
+
+ Gets the settings provider in the collection that matches the specified name.
+ A containing the friendly name of the settings provider.
+ The parameter is .
+ The collection is read-only when setting this value.
+ If found, the whose name matches that specified by the name parameter; otherwise, .
+
+
+ Represents the method that will handle the event.
+ The source of the event, typically a data container or data-bound collection.
+ A that contains the event data.
+
+
+ Determines the serialization scheme used to store application settings.
+
+
+ The settings property is serialized using binary object serialization.
+
+
+ The settings provider has implicit knowledge of the property or its type and picks an appropriate serialization mechanism. Often used for custom serialization.
+
+
+ The settings property is serialized as plain text.
+
+
+ The settings property is serialized as XML using XML serialization.
+
+
+ Specifies the serialization mechanism that the settings provider should use. This class cannot be inherited.
+
+
+ Initializes an instance of the class.
+ A enumerated value that specifies the serialization scheme.
+
+
+ Gets the enumeration value that specifies the serialization scheme.
+ A enumerated value that specifies the serialization scheme.
+
+
+ Contains the XML representing the serialized value of the setting. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Compares the current instance to the specified object.
+ The object to compare.
+
+ if the instance is equal to the specified object; otherwise, .
+
+
+ Gets a unique value representing the current instance.
+ A unique value representing the current instance.
+
+
+ Gets or sets the value of a object by using an object.
+ An object containing the value of a .
+
+
+ Handles configuration sections that are represented by a single XML tag in the .config file.
+
+
+ Initializes a new instance of the class.
+
+
+ Used internally to create a new instance of this object.
+ The parent of this object.
+ The context of this object.
+ The object in the configuration.
+ The created object handler.
+
+
+ Specifies the special setting category of a application settings property.
+
+
+ The configuration property represents a connection string, typically for a data store or network resource.
+
+
+ The configuration property represents a Uniform Resource Locator (URL) to a Web service.
+
+
+ Indicates that an application settings property has a special significance. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ A enumeration value defining the category of the application settings property.
+
+
+ Gets the value describing the special setting category of the application settings property.
+ A enumeration value defining the category of the application settings property.
+
+
+ Provides validation of a string.
+
+
+ Initializes a new instance of the class, based on a supplied parameter.
+ An integer that specifies the minimum length of the string value.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ An integer that specifies the minimum length of the string value.
+ An integer that specifies the maximum length of the string value.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ An integer that specifies the minimum length of the string value.
+ An integer that specifies the maximum length of the string value.
+ A string that represents invalid characters.
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+
+ if the parameter matches a string; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+ is less than or greater than as defined in the constructor.
+
+-or-
+
+ contains invalid characters.
+
+
+ Declaratively instructs .NET to perform string validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the invalid characters for the property.
+ The string that contains the set of characters that are not allowed for the property.
+
+
+ Gets or sets the maximum length allowed for the string to assign to the property.
+ The selected value is less than .
+ An integer that indicates the maximum allowed length for the string to assign to the property.
+
+
+ Gets or sets the minimum allowed value for the string to assign to the property.
+ The selected value is greater than .
+ An integer that indicates the allowed minimum length for the string to assign to the property.
+
+
+ Gets an instance of the class.
+ A current settings in a validator instance.
+
+
+ Validates that an object is a derived class of a specified type.
+
+
+ Initializes a new instance of the class.
+ The base class to validate against.
+
+ is .
+
+
+ Determines whether an object can be validated based on type.
+ The object type.
+
+ if the parameter matches a type that can be validated; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The object value.
+
+ is not of a that can be derived from as defined in the constructor.
+
+
+ Declaratively instructs .NET to perform validation on a configuration property. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The base class type.
+
+
+ Gets the base type of the object being validated.
+ The base type of the object being validated.
+
+
+ Gets the validator attribute instance.
+ The current instance.
+
+
+ Converts a time span expressed in minutes.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The representing the parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The representing the parameter in minutes.
+
+
+ Converts a expressed in minutes or as a standard infinite time span.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The TimeSpan.MaxValue, if the parameter is the "infinite"; otherwise, the representing the parameter in minutes.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the parameter is TimeSpan.MaxValue; otherwise, the representing the parameter in minutes.
+
+
+ Converts a time span expressed in seconds.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+
+ cannot be parsed as an integer value.
+ The representing the parameter in seconds.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the parameter in minutes.
+
+
+ Converts a expressed in seconds or as a standard infinite time span.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to a .
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The TimeSpan.MaxValue, if the parameter is the "infinite"; otherwise, the representing the parameter in seconds.
+
+
+ Converts a to a. .
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert.
+ The conversion type.
+ The "infinite", if the parameter is TimeSpan.MaxValue; otherwise, the representing the parameter in seconds.
+
+
+ Provides validation of a object.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+ A value that specifies whether the validation range is exclusive.
+
+
+ Initializes a new instance of the class, based on supplied parameters.
+ A object that specifies the minimum time allowed to pass validation.
+ A object that specifies the maximum time allowed to pass validation.
+ A value that specifies whether the validation range is exclusive.
+ An value that specifies a number of seconds.
+
+ is less than .
+
+-or-
+
+ is greater than .
+
+
+ Determines whether the type of the object can be validated.
+ The type of the object.
+
+ if the parameter matches a value; otherwise, .
+
+
+ Determines whether the value of an object is valid.
+ The value of an object.
+
+
+ Declaratively instructs .NET to perform time validation on a configuration property. This class cannot be inherited.
+
+
+ Gets the absolute maximum value allowed.
+
+
+ Gets the absolute minimum value allowed.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that indicates whether to include or exclude the integers in the range as defined by and .
+
+ if the value must be excluded; otherwise, . The default is .
+
+
+ Gets the absolute maximum value.
+ The allowed maximum value.
+
+
+ Gets or sets the relative maximum value.
+ The selected value represents less than .
+ The allowed maximum value.
+
+
+ Gets the absolute minimum value.
+ The allowed minimum value.
+
+
+ Gets or sets the relative minimum value.
+ The selected value represents more than .
+ The minimum allowed value.
+
+
+ Gets an instance of the class.
+ The validator instance.
+
+
+ Converts between type and string values. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a object to a object.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ The value cannot be resolved.
+ The that represents the parameter.
+
+
+ Converts a object to a object.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ The that represents the parameter.
+
+
+ Represents the Uri section within a configuration file.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an object that contains the configuration setting for International Domain Name (IDN) processing in the class.
+ The configuration setting for International Domain Name (IDN) processing in the class.
+
+
+ Gets an object that contains the configuration setting for International Resource Identifiers (IRI) parsing in the class.
+ The configuration setting for International Resource Identifiers (IRI) parsing in the class.
+
+
+ Gets a object that contains the configuration settings for scheme parsing in the class.
+ The configuration settings for scheme parsing in the class.
+
+
+ Specifies that an application settings group or property contains distinct values for each user of an application. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents a grouping of related user settings sections within a configuration file. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents a method to be called after the validation of an object.
+ The callback method.
+
+
+ Converts a string to its canonical format.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a to canonical form.
+ The object used for type conversions.
+ The object used during conversion.
+ The object to convert.
+ An object representing the converted value.
+
+
+ Converts a to canonical form.
+ The object used for type conversions.
+ The object used during conversion.
+ The value to convert to.
+ The type to convert to.
+ An object representing the converted value.
+
+
+
+ Registers the configuration system to apply settings from configuration files to and related classes.
+
+
+ Represents the configuration section used by classes in the namespace.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the suffix to append to a file name indicated by a when an assembly is declared with a or a .
+ The bitmap suffix.
+
+
+ Provides the possible values for the configuration setting of the in the namespace.
+
+
+ This value will convert any Unicode domain names to their Punycode equivalents (IDN names).
+
+
+ This value will convert all external Unicode domain names to use the Punycode equivalents (IDN names). In this case to handle international names on the local Intranet, the DNS servers that are used for the Intranet should support Unicode names.
+
+
+ Don't convert any Unicode domain names to use Punycode.
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.Data.SQLite.1.0.119.0.Fakes.fakesconfig b/bin/Debug/System.Data.SQLite.1.0.119.0.Fakes.fakesconfig
new file mode 100644
index 0000000..778166b
Binary files /dev/null and b/bin/Debug/System.Data.SQLite.1.0.119.0.Fakes.fakesconfig differ
diff --git a/bin/Debug/System.Data.SQLite.EF6.dll b/bin/Debug/System.Data.SQLite.EF6.dll
new file mode 100644
index 0000000..6ffaf9d
Binary files /dev/null and b/bin/Debug/System.Data.SQLite.EF6.dll differ
diff --git a/bin/Debug/System.Data.SQLite.Linq.dll b/bin/Debug/System.Data.SQLite.Linq.dll
new file mode 100644
index 0000000..3fc6b9b
Binary files /dev/null and b/bin/Debug/System.Data.SQLite.Linq.dll differ
diff --git a/bin/Debug/System.Data.SQLite.dll b/bin/Debug/System.Data.SQLite.dll
new file mode 100644
index 0000000..ecc1c11
Binary files /dev/null and b/bin/Debug/System.Data.SQLite.dll differ
diff --git a/bin/Debug/System.Diagnostics.DiagnosticSource.dll b/bin/Debug/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..b58b31a
Binary files /dev/null and b/bin/Debug/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/bin/Debug/System.Diagnostics.DiagnosticSource.xml b/bin/Debug/System.Diagnostics.DiagnosticSource.xml
new file mode 100644
index 0000000..d94e6d2
--- /dev/null
+++ b/bin/Debug/System.Diagnostics.DiagnosticSource.xml
@@ -0,0 +1,1886 @@
+
+
+
+ System.Diagnostics.DiagnosticSource
+
+
+
+ Represents an operation with context to be used for logging.
+
+
+ Occurs when the value changes.
+
+
+ Initializes a new instance of the class.
+ The name of the operation.
+
+
+ Updates the to have a new baggage item with the specified key and value.
+ The baggage key.
+ The baggage value.
+
+ for convenient chaining.
+
+
+ Adds the specified activity event to the events list.
+ The activity event to add.
+
+ for convenient chaining.
+
+
+ Updates the activity to have a tag with an additional and .
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Updates the to have a new tag with the provided and .
+ The tag key.
+ The tag value.
+
+ for convenient chaining.
+
+
+ Stops the activity if it is already started and notifies any event listeners. Nothing will happen otherwise.
+
+
+ When overriden by a derived type, this method releases any allocated resources.
+
+ if the method is being called from the finalizer; if calling from user code.
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the objects attached to this Activity object.
+
+ .
+
+
+ Enumerates the tags attached to this Activity object.
+
+ .
+
+
+ Returns the value of a key-value pair added to the activity with .
+ The baggage key.
+ The value of the key-value-pair item if it exists, or if it does not exist.
+
+
+ Returns the object mapped to the specified property name.
+ The name associated to the object.
+ The object mapped to the property name, if one is found; otherwise, .
+
+
+ Returns the value of the Activity tag mapped to the input key/>.
+ Returns if that key does not exist.
+ The tag key string.
+ The tag value mapped to the input key.
+
+
+ Add or update the Activity baggage with the input key and value.
+ If the input value is - if the collection has any baggage with the same key, then this baggage will get removed from the collection.
+ - otherwise, nothing will happen and the collection will not change.
+ If the input value is not - if the collection has any baggage with the same key, then the value mapped to this key will get updated with the new input value.
+ - otherwise, the key and value will get added as a new baggage to the collection.
+ Baggage item will be updated/removed only if it was originaly added to the current activity. Items inherited from the parents will not be changed/removed, new item would be added to current activity baggage instead.
+ The baggage key name
+ The baggage value mapped to the input key
+
+ for convenient chaining.
+
+
+ Attaches any custom object to this activity. If the specified was previously associated with another object, the property will be updated to be associated with the new instead. It is recommended to use a unique property name to avoid conflicts with anyone using the same value.
+ The name to associate the value with.
+ The object to attach and map to the property name.
+
+
+ Updates the to set its as the difference between and the specified stop time.
+ The UTC stop time.
+
+ for convenient chaining.
+
+
+ Sets the ID format on this before it is started.
+ One of the enumeration values that specifies the format of the property.
+
+ for convenient chaining.
+
+
+ Sets the parent ID using the W3C convention of a TraceId and a SpanId.
+ The parent activity's TraceId.
+ The parent activity's SpanId.
+ One of the enumeration values that specifies flags defined by the W3C standard that are associated with an activity.
+
+ for convenient chaining.
+
+
+ Updates this to indicate that the with an ID of caused this .
+ The ID of the parent operation.
+
+ for convenient chaining.
+
+
+ Sets the start time of this .
+ The start time in UTC.
+
+ for convenient chaining.
+
+
+ Sets the status code and description on the current activity object.
+ The status code
+ The error status description
+
+ for convenient chaining.
+
+
+ Adds or update the activity tag with the input key and value.
+ The tag key name.
+ The tag value mapped to the input key.
+
+ for convenient chaining.
+
+
+ Starts the activity.
+
+ for convenient chaining.
+
+
+ Stops the activity.
+
+
+ Gets or sets the flags (defined by the W3C ID specification) associated with the activity.
+ the flags associated with the activity.
+
+
+ Gets a collection of key/value pairs that represents information that is passed to children of this .
+ Information that's passed to children of this .
+
+
+ Gets the context of the activity. Context becomes valid only if the activity has been started.
+ The context of the activity, if the activity has been started; otherwise, returns the default context.
+
+
+ Gets or sets the current operation () for the current thread. This flows across async calls.
+ The current operation for the current thread.
+
+
+ Gets or sets the default ID format for the .
+
+
+ Gets or sets the display name of the activity.
+ A string that represents the activity display name.
+
+
+ Gets the duration of the operation.
+ The delta between and the end time if the has ended ( or was called), or if the has not ended and was not called.
+
+
+ Gets the list of all the activity events attached to this activity.
+ An enumeration of activity events attached to this activity. If the activity has no events, returns an empty enumeration.
+
+
+ Gets or sets a value that detrmines if the is always used to define the default ID format.
+
+ to always use the ; otherwise, .
+
+
+ Gets a value that indicates whether the parent context was created from remote propagation.
+
+
+ Gets an identifier that is specific to a particular request.
+ The activity ID.
+
+
+ Gets the format for the .
+ The format for the .
+
+
+ Gets or sets a value that indicates whether this activity should be populated with all the propagation information, as well as all the other properties, such as links, tags, and events.
+
+ if the activity should be populated; otherwise.
+
+
+ Gets a value that indicates whether this object is stopped or not.
+
+
+ Gets the relationship between the activity, its parents, and its children in a trace.
+ One of the enumeration values that indicate relationship between the activity, its parents, and its children in a trace.
+
+
+ Gets the list of all the activity links attached to this activity.
+ An enumeration of activity links attached to this activity. If the activity has no links, returns an empty enumeration.
+
+
+ Gets the operation name.
+ The name of the operation.
+
+
+ Gets the parent that created this activity.
+ The parent of this , if it is from the same process, or if this instance has no parent (it is a root activity) or if the parent is from outside the process.
+
+
+ Gets the ID of this activity's parent.
+ The parent ID, if one exists, or if it does not.
+
+
+ Gets the parent's .
+ The parent's .
+
+
+ Gets a value that indicates whether the W3CIdFlags.Recorded flag is set.
+
+ if the W3CIdFlags.Recorded flag is set; otherwise, .
+
+
+ Gets the root ID of this .
+ The root ID, or if the current instance has either a or an .
+
+
+ Gets the activity source associated with this activity.
+
+
+ Gets the SPAN part of the .
+ The ID for the SPAN part of , if the has the W3C format; otherwise, a zero .
+
+
+ Gets the time when the operation started.
+ The UTC time that the operation started.
+
+
+ Gets status code of the current activity object.
+
+
+ Gets the status description of the current activity object.
+
+
+ Gets the list of tags that represent information to log along with the activity. This information is not passed on to the children of this activity.
+ A key-value pair enumeration of tags and objects.
+
+
+ Gets a collection of key/value pairs that represent information that will be logged along with the to the logging system.
+ Information that will be logged along with the to the logging system.
+
+
+ Gets the TraceId part of the .
+ The ID for the TraceId part of the , if the ID has the W3C format; otherwise, a zero TraceId.
+
+
+ When starting an Activity which does not have a parent context, the Trace Id will automatically be generated using random numbers.
+ TraceIdGenerator can be used to override the runtime's default Trace Id generation algorithm.
+
+
+ Gets or sets the W3C header.
+ The W3C header.
+
+
+ Enumerates the data stored on an object.
+ Type being enumerated.
+
+
+ Returns an enumerator that iterates through the data stored on an Activity object.
+
+ .
+
+
+ Advances the enumerator to the next element of the data.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Gets the element at the current position of the enumerator.
+
+
+ Provides data for the event.
+
+
+ Gets the object after the event.
+
+
+ Gets the object before the event.
+
+
+ A representation that conforms to the W3C TraceContext specification. It contains two identifiers: a TraceId and a SpanId, along with a set of common TraceFlags and system-specific TraceState values.
+
+
+ Construct a new activity context instance using the specified arguments.
+ A trace identifier.
+ A span identifier.
+ Contain details about the trace.
+ Carries system-specific configuration data.
+ Indicates if the context is propagated from a remote parent.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether this instance and a specified object have the same value.
+ The object to compare to this instance.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Parses a W3C trace context headers to an object.
+ The W3C trace parent header.
+ The trace state.
+ The trace parent is invalid.
+ The object created from the parsing operation.
+
+
+ Tries to parse the W3C trace context headers to the object.
+ The W3C trace parent header.
+ The W3C trace state.
+
+ to propagate the context from the remote parent; otherwise, .
+ When this method returns, contains the object created from the parsing operation.
+
+ if the operation succeeds; otherwise.
+
+
+ Tries to parse the W3C trace context headers to an object.
+ The W3C trace parent header.
+ The W3C trace state.
+ When this method returns , the object created from the parsing operation.
+
+ if the parsing was successful; otherwise.
+
+
+ Indicates if the activity context was propagated from a remote parent.
+
+ if it was propagated from a remote parent; otherwise.
+
+
+ The Id of the request as known by the caller.
+ The Span Id in the context.
+
+
+ The flags defined by the W3C standard along with the ID for the activity.
+ The context tracing flags.
+
+
+ The trace identifier.
+ The tracing identifier in the context.
+
+
+ Holds the W3C 'tracestate' header.
+ A string representing the W3C 'tracestate' header.
+
+
+ Encapsulates all the information that is sent to the activity listener, to make decisions about the creation of the activity instance, as well as its state.
+
+The possible generic type parameters are or .
+ The type of the property. Should be either or .
+
+
+ Gets the activity kind which the activity will be created with.
+ One of the enumeration values that represent an activity kind.
+
+
+ Gets the enumeration of activity links that the activity will be created with.
+ An enumeration of activity links.
+
+
+ Gets the name to use as OperationName of the activity that will get created.
+ A string representing the activity name.
+
+
+ Gets the parent context or parent Id that the activity will get created with.
+ The parent of the activity, represented either as a or as an .
+
+
+ Gets the collection that is used to add more tags during the sampling process. The added tags are also added to the created Activity if it is decided that it should be created by the callbacks.
+ The Activity tags collection.
+
+
+ Gets the activity source that creates the activity.
+ An activity source object.
+
+
+ Gets the tags that the activity will be created with.
+ A key-value pair enumeration of tags associated with the activity.
+
+
+ Gets the trace Id to use in the Activity object if it is decided that it should be created by callbacks.
+ The trace Id.
+
+
+ Gets or initializes the trace state to use when creating the Activity.
+
+
+ Represents an event containing a name and a timestamp, as well as an optional list of tags.
+
+
+ Initializes a new activity event instance using the specified name and the current time as the event timestamp.
+ The event name.
+
+
+ Initializes a new activity event instance using the specified name, timestamp and tags.
+ The event name.
+ The event timestamp. Timestamp must only be used for the events that happened in the past, not at the moment of this call.
+ The event tags.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Gets the activity event name.
+ A string representing the activity event name.
+
+
+ Gets the collection of tags associated with the event.
+ A key-value pair enumeration containing the tags associated with the event.
+
+
+ Gets the activity event timestamp.
+ A datetime offset representing the activity event timestamp.
+
+
+ Specifies the format of the property.
+
+
+ The hierarchical format.
+
+
+ An unknown format.
+
+
+ The W3C format.
+
+
+ Describes the relationship between the activity, its parents and its children in a trace.
+
+
+ Outgoing request to the external component.
+
+
+ Output received from an external component.
+
+
+ Internal operation within an application, as opposed to operations with remote parents or children. This is the default value.
+
+
+ Output provided to external components.
+
+
+ Requests incoming from external component.
+
+
+ Activities may be linked to zero or more activity context instances that are causally related.
+
+Activity links can point to activity contexts inside a single trace or across different traces.
+
+Activity links can be used to represent batched operations where an activity was initiated by multiple initiating activities, each representing a single incoming item being processed in the batch.
+
+
+ Constructs a new activity link, which can be linked to an activity.
+ The trace activity context.
+ The key-value pair list of tags associated to the activity context.
+
+
+ Enumerate the tags attached to this object.
+
+ .
+
+
+ Indicates whether the current activity link is equal to another activity link.
+ The activity link to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Indicates whether the current activity link is equal to another object.
+ The object to compare.
+
+ if the current activity link is equal to ; otherwise, .
+
+
+ Provides a hash function for the current that's suitable for hashing algorithms and data structures, such as hash tables.
+ A hash code for the current .
+
+
+ Determines whether two specified values are equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are equal; otherwise, .
+
+
+ Determines whether two specified values are not equal.
+ The first value to compare.
+ The second value to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Retrieves the activity context inside this activity link.
+
+
+ Retrieves the key-value pair enumeration of tags attached to the activity context.
+ An enumeration of tags attached to the activity context.
+
+
+ Allows listening to the start and stop activity events and gives the opportunity to decide creating an activity for sampling scenarios.
+
+
+ Construct a new activity listener object to start listeneing to the activity events.
+
+
+ Unregisters this activity listener object from listening to activity events.
+
+
+ Gets or sets the callback used to listen to the activity start event.
+ An activity callback instance used to listen to the activity start event.
+
+
+ Gets or sets the callback used to listen to the activity stop event.
+ An activity callback instance used to listen to the activity stop event.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that is used to decide if creating objects with a specific data state is allowed.
+ A sample activity instance.
+
+
+ Gets or sets the callback that allows deciding if activity object events that were created using the activity source object should be listened or not.
+
+ to listen events; otherwise.
+
+
+ Enumeration values used by to indicate the amount of data to collect for the related . Requesting more data causes a greater performance overhead.
+
+
+ The activity object should be populated with all the propagation information and also all other properties such as Links, Tags, and Events. Using this value causes to return .
+
+
+ The activity object should be populated the same as the case. Additionally, Activity.Recorded is set to . For activities using the W3C trace ids, this sets a flag bit in the ID that will be propagated downstream requesting that the trace is recorded everywhere.
+
+
+ The activity object does not need to be created.
+
+
+ The activity object needs to be created. It will have a Name, a Source, an Id and Baggage. Other properties are unnecessary and will be ignored by this listener.
+
+
+ Provides APIs to create and start objects and to register objects to listen to the events.
+
+
+ Constructs an activity source object with the specified .
+ The name of the activity source object.
+ The version of the component publishing the tracing info.
+
+
+ Adds a listener to the activity starting and stopping events.
+ The activity listener object to use for listening to the activity events.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity
+ The
+ The created object or if there is no any event listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ If the Activity object is created, it will not automatically start. Callers will need to call to start it.
+ The operation name of the Activity.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Creates a new object if there is any listener to the Activity, returns otherwise.
+ The operation name of the Activity.
+ The
+ The parent Id to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The default Id format to use.
+ The created object or if there is no any listener.
+
+
+ Disposes the activity source object, removes the current instance from the global list, and empties the listeners list.
+
+
+ Checks if there are any listeners for this activity source.
+
+ if there is a listener registered for this activity source; otherwise, .
+
+
+ Creates and starts a new object if there is any listener to the Activity events, returns otherwise.
+ The
+ The parent object to initialize the created Activity object with.
+ The optional tags list to initialize the created Activity object with.
+ The optional list to initialize the created Activity object with.
+ The optional start timestamp to set on the created Activity object.
+ The operation name of the Activity.
+ The created object or if there is no any listener.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name and activity kind.
+ The operation name of the activity.
+ The activity kind.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent activity context, tags, optional activity link and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent object to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Creates a new activity if there are active listeners for it, using the specified name, activity kind, parent Id, tags, optional activity links and optional start time.
+ The operation name of the activity.
+ The activity kind.
+ The parent Id to initialize the created activity object with.
+ The optional tags list to initialize the created activity object with.
+ The optional list to initialize the created activity object with.
+ The optional start timestamp to set on the created activity object.
+ The created activity object, if it had active listeners, or if it has no event listeners.
+
+
+ Returns the activity source name.
+ A string that represents the activity source name.
+
+
+ Returns the activity source version.
+ A string that represents the activity source version.
+
+
+ Represents a formatted based on a W3C standard.
+
+
+ Copies the 8 bytes of the current to a specified span.
+ The span to which the 8 bytes of the SpanID are to be copied.
+
+
+ Creates a new value from a read-only span of eight bytes.
+ A read-only span of eight bytes.
+
+ does not contain eight bytes.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of 16 hexadecimal characters.
+ A span that contains 16 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new span ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new span ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new span ID.
+
+
+ Determines whether this instance and the specified instance have the same value.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ the current instance and a specified object, which also must be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the SpanId.
+ The hash code of the SpanId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is the same as the SpanId of ; otherwise, .
+
+
+ Determine whether two specified instances have unequal values.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the SpanId of is different from the SpanId of ; otherwise, .
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Returns a 16-character hexadecimal string that represents this span ID.
+ The 16-character hexadecimal string representation of this span ID.
+
+
+ Define the status code of the Activity which indicate the status of the instrumented operation.
+
+
+ Status code indicating an error is encountered during the operation.
+
+
+ Status code indicating the operation has been validated and completed successfully.
+
+
+ Unset status code is the default value indicating the status code is not initialized.
+
+
+ ActivityTagsCollection is a collection class used to store tracing tags.
+
+This collection will be used with classes like and .
+
+This collection behaves as follows:
+- The collection items will be ordered according to how they are added.
+- Don't allow duplication of items with the same key.
+- When using the indexer to store an item in the collection:
+ - If the item has a key that previously existed in the collection and the value is , the collection item matching the key will be removed from the collection.
+ - If the item has a key that previously existed in the collection and the value is not , the new item value will replace the old value stored in the collection.
+ - Otherwise, the item will be added to the collection.
+- Add method will add a new item to the collection if an item doesn't already exist with the same key. Otherwise, it will throw an exception.
+
+
+ Create a new instance of the collection.
+
+
+ Create a new instance of the collection and store the input list items in the collection.
+ Initial list to store in the collection.
+
+
+ Adds an item to the collection.
+ Key and value pair of the tag to add to the collection.
+
+ already exists in the list.
+
+ is .
+
+
+ Adds a tag with the provided key and value to the collection. This collection doesn't allow adding two tags with the same key.
+ The tag key.
+ The tag value.
+
+
+ Removes all items from the collection.
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Determines whether the collection contains an element with the specified key.
+ The key to locate in the .
+
+ if the collection contains tag with that key. otherwise.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The array that is the destination of the elements copied from collection.
+ The zero-based index in array at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator for the .
+
+
+ Removes the first occurrence of a specific item from the collection.
+ The tag key value pair to remove.
+
+ if item was successfully removed from the collection; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Removes the tag with the specified key from the collection.
+ The tag key.
+
+ if the item existed and removed. otherwise.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The tag key.
+ The tag value.
+ When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
+
+
+ Gets the number of elements contained in the collection.
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the collection is read-only. This always returns .
+ Always returns .
+
+
+ Gets or sets a specified collection item.
+
+ When setting a value to this indexer property, the following behavior is observed:
+- If the key previously existed in the collection and the value is , the collection item matching the key will get removed from the collection.
+- If the key previously existed in the collection and the value is not , the value will replace the old value stored in the collection.
+- Otherwise, a new item will get added to the collection.
+ The key of the value to get or set.
+ The object mapped to the key.
+
+
+ Get the list of the keys of all stored tags.
+ An containing the keys of the object that implements .
+
+
+ Get the list of the values of all stored tags.
+ An containing the values in the object that implements .
+
+
+ Enumerates the elements of an .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Specifies flags defined by the W3C standard that are associated with an activity.
+
+
+ The activity has not been marked.
+
+
+ The activity (or more likely its parents) has been marked as useful to record.
+
+
+ Represents a whose format is based on a W3C standard.
+
+
+ Copies the 16 bytes of the current to a specified span.
+ The span to which the 16 bytes of the trace ID are to be copied.
+
+
+ Creates a new value from a read-only span of 16 bytes.
+ A read-only span of 16 bytes.
+
+ does not contain eight bytes.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of 32 hexadecimal characters.
+ A span that contains 32 hexadecimal characters.
+
+ does not contain 16 hexadecimal characters.
+
+-or-
+
+The characters in are not all lower-case hexadecimal characters or all zeros.
+ The new trace ID.
+
+
+ Creates a new value from a read-only span of UTF8-encoded bytes.
+ A read-only span of UTF8-encoded bytes.
+ The new trace ID.
+
+
+ Creates a new based on a random number (that is very likely to be unique).
+ The new .
+
+
+ Determines whether the current instance and a specified are equal.
+ The instance to compare.
+
+ if has the same hex value as the current instance; otherwise, .
+
+
+ Determines whether this instance and a specified object, which must also be an instance, have the same value.
+ The object to compare.
+
+ if is an instance of and has the same hex value as the current instance; otherwise, .
+
+
+ Returns the hash code of the TraceId.
+ The hash code of the TraceId.
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is the same as the TraceId of ; otherwise, .
+
+
+ Determines whether two specified instances have the same value.
+ The first instance to compare.
+ The second instance to compare.
+
+ if the TraceId of is different from the TraceId of ; otherwise, .
+
+
+ Returns a 32-character hexadecimal string that represents this span ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Returns a 32-character hexadecimal string that represents this trace ID.
+ The 32-character hexadecimal string representation of this trace ID.
+
+
+ Provides an implementation of the abstract class that represents a named place to which a source sends its information (events).
+
+
+ Creates a new .
+ The name of this .
+
+
+ Disposes the NotificationListeners.
+
+
+ Determines whether there are any registered subscribers.
+
+ if there are any registered subscribers, otherwise.
+
+
+ Checks whether the is enabled.
+ The name of the event to check.
+
+ if notifications are enabled; otherwise, .
+
+
+ Checks if any subscriber to the diagnostic events is interested in receiving events with this name. Subscribers indicate their interest using a delegate provided in .
+ The name of the event to check.
+ The object that represents a context.
+ The object that represents a context.
+
+ if it is enabled, otherwise.
+
+
+ Invokes the OnActivityExport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Invokes the OnActivityImport method of all the subscribers.
+ The activity affected by an external event.
+ An object that represents the incoming request.
+
+
+ Adds a subscriber.
+ A subscriber.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name and up to two context objects.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or to if an event filter is not desirable.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, optionally filters events based on their name and up to two context objects, and specifies methods to call when providers import or export activites from outside the process.
+ A subscriber.
+ A delegate that filters events based on their name and up to two context objects (which can be ), or if an event filter is not desirable.
+ An action delegate that receives the activity affected by an external event and an object that represents the incoming request.
+ An action delegate that receives the activity affected by an external event and an object that represents the outgoing request.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Adds a subscriber, and optionally filters events based on their name.
+ A subscriber.
+ A delegate that filters events based on their name (). The delegate should return if the event is enabled.
+ A reference to an interface that allows the listener to stop receiving notifications before the has finished sending them.
+
+
+ Returns a string with the name of this DiagnosticListener.
+ The name of this DiagnosticListener.
+
+
+ Logs a notification.
+ The name of the event to log.
+ An object that represents the payload for the event.
+
+
+ Gets the collection of listeners for this .
+
+
+ Gets the name of this .
+ The name of the .
+
+
+ An abstract class that allows code to be instrumented for production-time logging of rich data payloads for consumption within the process that was instrumented.
+
+
+ Initializes an instance of the class.
+
+
+ Verifies if the notification event is enabled.
+ The name of the event being written.
+
+ if the notification event is enabled, otherwise.
+
+
+ Verifies it the notification event is enabled.
+ The name of the event being written.
+ An object that represents the additional context for IsEnabled. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) to check if consumer wants to get notifications for such events at all. Based on that, producer may call IsEnabled(string, object, object) again with non- context.
+ Optional. An object that represents the additional context for IsEnabled. by default. Consumers should expect to receive which may indicate that producer called pure IsEnabled(string) or producer passed all necessary context in .
+
+ if the notification event is enabled, otherwise.
+
+
+ Transfers state from an activity to some event or operation, such as an outgoing HTTP request, that will occur outside the process.
+ The activity affected by an external event.
+ An object that represents the outgoing request.
+
+
+ Transfers state to an activity from some event or operation, such as an incoming request, that occurred outside the process.
+ The activity affected by an external event.
+ A payload that represents the incoming request.
+
+
+ Starts an and writes a start event.
+ The to be started.
+ An object that represent the value being passed as a payload for the event.
+ The started activity for convenient chaining.
+
+
+
+
+
+
+
+ Stops the given , maintains the global activity, and notifies consumers that the was stopped.
+ The activity to be stopped.
+ An object that represents the value passed as a payload for the event.
+
+
+
+
+
+
+
+ Provides a generic way of logging complex payloads.
+ The name of the event being written.
+ An object that represents the value being passed as a payload for the event. This is often an anonymous type which contains several sub-values.
+
+
+
+
+
+
+
+ An implementation of determines if and how distributed context information is encoded and decoded as it traverses the network.
+ The encoding can be transported over any network protocol that supports string key-value pairs. For example, when using HTTP, each key-value pair is an HTTP header.
+ injects values into and extracts values from carriers as string key-value pairs.
+
+
+ Initializes an instance of the class. This constructor is protected and only meant to be called from parent classes.
+
+
+ Returns the default propagator object that will be initialized with.
+ An instance of the class.
+
+
+ Returns a propagator that does not transmit any distributed context information in outbound network messages.
+ An instance of the class.
+
+
+ Returns a propagator that attempts to act transparently, emitting the same data on outbound network requests that was received on the inbound request.
+ When encoding the outbound message, this propagator uses information from the request's root Activity, ignoring any intermediate Activities that may have been created while processing the request.
+ An instance of the class.
+
+
+ Extracts the baggage key-value pair list from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation baggage list from the carrier.
+ Returns the extracted key-value pair list from the carrier.
+
+
+ Extracts the trace ID and trace state from an incoming request represented by the carrier. For example, from the headers of an HTTP request.
+ The medium from which values will be read.
+ The callback method to invoke to get the propagation trace ID and state from the carrier.
+ When this method returns, contains the trace ID extracted from the carrier.
+ When this method returns, contains the trace state extracted from the carrier.
+
+
+ Injects the trace values stored in the object into a carrier. For example, into the headers of an HTTP request.
+ The Activity object has the distributed context to inject to the carrier.
+ The medium in which the distributed context will be stored.
+ The callback method to invoke to set a named key-value pair on the carrier.
+
+
+ Get or set the process-wide propagator object to use as the current selected propagator.
+ The currently selected process-wide propagator object.
+
+
+ Gets the set of field names this propagator is likely to read or write.
+ The list of fields that will be used by the DistributedContextPropagator.
+
+
+ Represents the callback method that's used in the extract methods of propagators. The callback is invoked to look up the value of a named field.
+ The medium used by propagators to read values from.
+ The propagation field name.
+ When this method returns, contains the value that corresponds to . The value is non- if there is only one value for the input field name.
+ When this method returns, contains a collection of values that correspond to . The value is non- if there is more than one value for the input field name.
+
+
+ Represents the callback method that's used in propagators' inject methods. This callback is invoked to set the value of a named field.
+ Propagators may invoke it multiple times in order to set multiple fields.
+ The medium used by propagators to write values to.
+ The propagation field name.
+ The value corresponding to .
+
+
+ Represents an instrument that supports adding non-negative values. For example, you might call counter.Add(1) each time a request is processed to track the total number of requests. Most metric viewers display counters using a rate (requests/sec), by default, but can also display a cumulative total.
+ The type that the counter represents.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Adds the increment value of the measurement.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records the increment value of the measurement.
+ The increment measurement.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Represents a metrics instrument that can be used to report arbitrary values that are likely to be statistically meaningful, for example, the request duration. Call to create a Histogram object.
+ The type that the histogram represents.
+
+
+ Records a measurement value.
+ The measurement value.
+
+
+ Records a measurement value.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement value.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+
+
+
+
+ Base class of all metrics instrument classes
+
+
+ Protected constructor to initialize the common instrument properties like the meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+
+
+
+
+
+
+
+ Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
+
+
+ Gets the instrument description.
+
+
+ Gets a value that indicates if there are any listeners for this instrument.
+
+
+ Gets a value that indicates whether the instrument is an observable instrument.
+
+
+ Gets the Meter that created the instrument.
+
+
+ Gets the instrument name.
+
+
+
+ Gets the instrument unit of measurements.
+
+
+ The base class for all non-observable instruments.
+ The type that the instrument represents.
+
+
+ Create the metrics instrument using the properties meter, name, description, and unit.
+ The meter that created the instrument.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+
+
+
+
+
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ The tags associated with the measurement.
+
+
+ Records a measurement by notifying all objects that are listening to this instrument.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+
+
+ Stores one observed metrics value and its associated tags. This type is used by an Observable instrument's Observe() method when reporting current measurements.
+ The type that the measurement represents.
+
+
+ Initializes a new instance of using the specified value.
+ The measurement value.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Initializes a new instance of using the specified value and list of tags.
+ The measurement value.
+ The list of tags associated with the measurement.
+
+
+ Gets the measurement tags list.
+
+
+ Gets the measurement value.
+
+
+ A delegate to represent the Meterlistener callbacks that are used when recording measurements.
+ The instrument that sent the measurement.
+ The measurement value.
+ A span of key-value pair tags associated with the measurement.
+ The state object originally passed to method.
+ The type that the measurement represents.
+
+
+ Meter is the class responsible for creating and tracking the Instruments.
+
+
+
+
+
+ Initializes a new instance of using the specified meter name.
+ The Meter name.
+
+
+ Initializes a new instance of using the specified meter name and version.
+ The Meter name.
+ The optional Meter version.
+
+
+
+
+
+
+
+
+ Create a metrics Counter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new counter.
+
+
+
+
+
+
+
+
+
+ Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new histogram.
+
+
+
+
+
+
+
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe() is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement..
+ A new observable counter.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe() is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableCounter, which is an instrument that reports monotonically increasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe() is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable counter.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe() is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe() is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableGauge, which is an asynchronous instrument that reports non-additive values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when ObservableCounter{T}.Observe() is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable gauge.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+
+
+
+
+
+
+
+
+ Creates an ObservableUpDownCounter object. ObservableUpDownCounter is an Instrument that reports increasing or decreasing values when the instrument is being observed.
+ The instrument name. Cannot be .
+ The callback to call to get the measurements when the is called by
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new observable up down counter.
+
+
+
+
+
+
+
+
+
+
+ Create a metrics UpDownCounter object.
+ The instrument name. Cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+ The numerical type of the measurement.
+ A new up down counter.
+
+
+
+
+
+
+
+
+
+ Dispose the Meter which will disable all instruments created by this meter.
+
+
+
+
+
+ Gets the Meter name.
+ The Meter name
+
+
+
+
+ Gets the Meter version.
+ The Meter version.
+
+
+
+
+
+
+
+
+
+ The MeterListener is class used to listen to the metrics instrument measurements recording.
+
+
+ Initializes a new instance of the class.
+
+
+ Stops listening to a specific instrument measurement recording.
+ The instrument to stop listening to.
+ The state object originally passed to method.
+
+
+ Disposes the listeners which will stop it from listening to any instrument.
+
+
+ Starts listening to a specific instrument measurement recording.
+ The instrument to listen to.
+ A state object that will be passed back to the callback getting measurements events.
+
+
+ Calls all Observable instruments that the listener is listening to, and calls with every collected measurement.
+
+
+ Sets a callback for a specific numeric type to get the measurement recording notification from all instruments which enabled listening and was created with the same specified numeric type.
+ If a measurement of type T is recorded and a callback of type T is registered, that callback will be used.
+ The callback which can be used to get measurement recording of numeric type T.
+ The type of the numeric measurement.
+
+
+ Enables the listener to start listening to instruments measurement recording.
+
+
+ Gets or sets the callback to get notified when an instrument is published.
+ The callback to get notified when an instrument is published.
+
+
+ Gets or sets the callback to get notified when the measurement is stopped on some instrument.
+ This can happen when the Meter or the Listener is disposed or calling on the listener.
+ The callback to get notified when the measurement is stopped on some instrument.
+
+
+
+
+
+
+
+
+
+
+ Represents a metrics-observable instrument that reports monotonically increasing values when the instrument is being observed, for example, CPU time (for different processes, threads, user mode, or kernel mode). Call to create the observable counter object.
+ The type that the observable counter represents.
+
+
+ Represents an observable instrument that reports non-additive values when the instrument is being observed, for example, the current room temperature. Call to create the observable counter object.
+
+
+
+ ObservableInstrument{T} is the base class from which all metrics observable instruments will inherit.
+ The type that the observable instrument represents.
+
+
+ Initializes a new instance of the class using the specified meter, name, description, and unit.
+ All classes that extend ObservableInstrument{T} must call this constructor when constructing objects of the extended class.
+ The meter that created the instrument.
+ The instrument name. cannot be .
+ Optional instrument unit of measurements.
+ Optional instrument description.
+
+
+
+
+
+
+
+
+
+ Fetches the current measurements being tracked by this instrument. All classes extending ObservableInstrument{T} need to implement this method.
+ The current measurements tracked by this instrument.
+
+
+ Gets a value that indicates if the instrument is an observable instrument.
+
+ if the instrument is metrics-observable; otherwise.
+
+
+ A metrics-observable instrument that reports increasing or decreasing values when the instrument is being observed.
+Use this instrument to monitor the process heap size or the approximate number of items in a lock-free circular buffer, for example.
+To create an ObservableUpDownCounter object, use the methods.
+ The type that the counter represents.
+
+
+ An instrument that supports reporting positive or negative metric values.
+ UpDownCounter may be used in scenarios like reporting the change in active requests or queue size.
+ The type that the UpDownCounter represents.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A first key-value pair tag associated with the measurement.
+ A second key-value pair tag associated with the measurement.
+ A third key-value pair tag associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A list of key-value pair tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A of tags associated with the measurement.
+
+
+ Records the delta value of the measurement. The delta can be positive, negative, or zero.
+ The amount to be added, which can be positive, negative, or zero.
+ A span of key-value pair tags associated with the measurement.
+
+
+ A delegate that defines the signature of the callbacks used in the sampling process.
+ The Activity creation options used by callbacks to decide creating the Activity object or not.
+ The type of the requested parent to create the Activity object with. Should be either a string or an instance.
+ An object containing the sampling results, which indicate the amount of data to collect for the related .
+
+
+ Represents a list of tags that can be accessed by index. Provides methods to search, sort, and manipulate lists.
+
+
+ Initializes a new instance of using the specified .
+ A span of tags to initialize the list with.
+
+
+ Adds a tag to the list.
+ The key-value pair of the tag to add to the list.
+
+
+ Adds a tag with the specified and to the list.
+ The tag key.
+ The tag value.
+
+
+ Removes all elements from the .
+
+
+ Determines whether a tag is in the .
+ The tag to locate in the .
+
+ if item is found in the ; otherwise, .
+
+
+ Copies the entire to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional Array that is the destination of the elements copied from . The Array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than 0 or greater than or equal to the length.
+
+
+ Copies the contents of this into a destination span.
+ The destination object.
+
+ The number of elements in the source is greater than the number of elements that the destination span.
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Searches for the specified tag and returns the zero-based index of the first occurrence within the entire .
+ The tag to locate in the .
+ The zero-based index of the first ocurrence of in the tag list.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which the item should be inserted.
+ The tag to insert.
+
+ is less than 0 or is greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The tag to remove from the .
+
+ if is successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the element at the specified index of the .
+ The zero-based index of the element to remove.
+
+ index is less than 0 or is greater than .
+
+
+ Returns an enumerator that iterates through the .
+ An enumerator that iterates through the .
+
+
+ Gets the number of tags contained in the .
+ The number of elements contained in the .
+
+
+ Gets a value indicating whether the is read-only. This property will always return .
+
+ Always returns .
+
+
+ Gets or sets the tags at the specified index.
+ The item index.
+
+ is not a valid index in the .
+ The element at the specified index.
+
+
+ An enumerator for traversing a tag list collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Advances the enumerator to the next element of the collection.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.IO.Pipelines.dll b/bin/Debug/System.IO.Pipelines.dll
new file mode 100644
index 0000000..c534b2c
Binary files /dev/null and b/bin/Debug/System.IO.Pipelines.dll differ
diff --git a/bin/Debug/System.IO.Pipelines.xml b/bin/Debug/System.IO.Pipelines.xml
new file mode 100644
index 0000000..c6f2b61
--- /dev/null
+++ b/bin/Debug/System.IO.Pipelines.xml
@@ -0,0 +1,341 @@
+
+
+
+ System.IO.Pipelines
+
+
+
+ Result returned by call.
+
+
+ Initializes a new instance of struct setting the and flags.
+
+ to indicate the current operation that produced this was canceled by ; otherwise, .
+
+ to indicate the reader is no longer reading data written to the .
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the current operation was canceled; otherwise, .
+
+
+ Gets a value that indicates the reader is no longer reading data written to the .
+
+ if the reader is no longer reading data written to the ; otherwise, .
+
+
+ Defines a class that provides a duplex pipe from which data can be read from and written to.
+
+
+ Gets the half of the duplex pipe.
+
+
+ Gets the half of the duplex pipe.
+
+
+ The default and implementation.
+
+
+ Initializes a new instance of the class using as options.
+
+
+ Initializes a new instance of the class with the specified options.
+ The set of options for this pipe.
+
+
+ Resets the pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Gets the for this pipe.
+ A instance for this pipe.
+
+
+ Represents a set of options.
+
+
+ Initializes a new instance of the class with the specified parameters.
+ The pool of memory blocks to be used for buffer management.
+ The to be used to execute callbacks and async continuations.
+ The used to execute callbacks and async continuations.
+ The number of bytes in the before starts blocking. A value of zero prevents from ever blocking, effectively making the number of bytes in the unlimited.
+ The number of bytes in the when stops blocking.
+ The minimum size of the segment requested from .
+
+ if asynchronous continuations should be executed on the they were captured on; otherwise. This takes precedence over the schedulers specified in and .
+
+
+ Gets the default instance of .
+ A object initialized with default parameters.
+
+
+ Gets the minimum size of the segment requested from the .
+ The minimum size of the segment requested from the .
+
+
+ Gets the number of bytes in the when starts blocking.
+ The number of bytes in the when starts blocking.
+
+
+ Gets the object used for buffer management.
+ A pool of memory blocks used for buffer management.
+
+
+ Gets the used to execute callbacks and async continuations.
+ A that is used to execute callbacks and async continuations.
+
+
+ Gets the number of bytes in the when stops blocking.
+ The number of bytes in the when stops blocking.
+
+
+ Gets a value that determines if asynchronous callbacks and continuations should be executed on the they were captured on. This takes precedence over the schedulers specified in and .
+
+ if asynchronous callbacks and continuations should be executed on the they were captured on; otherwise, .
+
+
+ Gets the used to execute callbacks and async continuations.
+ A object used to execute callbacks and async continuations.
+
+
+ Defines a class that provides access to a read side of pipe.
+
+
+ Initializes a new instance of the class.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
+ Marks the extent of the data that has been successfully processed.
+
+
+ Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
+ Marks the extent of the data that has been successfully processed.
+ Marks the extent of the data that has been read and examined.
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels to currently pending or if none is pending next call to , without completing the .
+
+
+ Signals to the producer that the consumer is done reading.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe reader instance as being complete, meaning no more data will be read from it.
+ An optional exception that indicates the failure that caused the reader to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a specified buffer size and cancellation token.
+ The pipe writer to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified stream, using a specified cancellation token.
+ The stream to which the contents of the current stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe reader will wrap.
+ The options to configure the pipe reader.
+ A that wraps the .
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Asynchronously reads a sequence of bytes from the current .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous read operation.
+
+
+ Attempts to synchronously read data the .
+ When this method returns , this value is set to a instance that represents the result of the read call; otherwise, this value is set to .
+
+ if data was available, or if the call was canceled or the writer was completed; otherwise, .
+
+
+ Abstraction for running and callbacks and continuations.
+
+
+ Initializes new a instance.
+
+
+ Requests to be run on scheduler with being passed in.
+ The single-parameter action delegate to schedule.
+ The parameter to pass to the delegate.
+
+
+ The implementation that runs callbacks inline.
+ A instance that runs callbacks inline.
+
+
+ The implementation that queues callbacks to the thread pool.
+ A instance that queues callbacks to the thread pool.
+
+
+ Defines a class that provides a pipeline to which data can be written.
+
+
+ Initializes a new instance of the class.
+
+
+ Notifies the that bytes were written to the output or . You must request a new buffer after calling to continue writing more data; you cannot write to a previously acquired buffer.
+ The number of bytes written to the or .
+
+
+ Returns a representation of the .
+ An optional flag that indicates whether disposing the returned leaves open () or completes ().
+ A stream that represents the .
+
+
+ Cancels the pending operation. If there is none, cancels next operation, without completing the .
+
+
+ Marks the as being complete, meaning no more items will be written to it.
+ Optional indicating a failure that's causing the pipeline to complete.
+
+
+ Marks the current pipe writer instance as being complete, meaning no more data will be written to it.
+ An optional exception that indicates the failure that caused the pipeline to complete.
+ A value task that represents the asynchronous complete operation.
+
+
+ Asynchronously reads the bytes from the specified stream and writes them to the .
+ The stream from which the contents will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Creates a wrapping the specified .
+ The stream that the pipe writer will wrap.
+ The options to configure the pipe writer.
+ A that wraps the .
+
+
+ Makes bytes written available to and runs continuation.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents and wraps the asynchronous flush operation.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty memory buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A memory buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Returns a to write to that is at least the requested size, as specified by the parameter.
+ The minimum length of the returned . If 0, a non-empty buffer of arbitrary size is returned.
+ The requested buffer size is not available.
+ A buffer of at least bytes. If is 0, returns a non-empty buffer of arbitrary size.
+
+
+ Registers a callback that executes when the side of the pipe is completed.
+ The callback to register.
+ The state object to pass to when it's invoked.
+
+
+ Writes the specified byte memory range to the pipe and makes data accessible to the .
+ The read-only byte memory region to write.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous write operation, and wraps the flush asynchronous operation.
+
+
+ Represents the result of a call.
+
+
+ Creates a new instance of setting and flags.
+ The read-only sequence containing the bytes of data that were read in the call.
+ A flag that indicates if the operation that produced this was canceled by .
+ A flag that indicates whether the end of the data stream has been reached.
+
+
+ Gets the that was read.
+ A read-only sequence containing the bytes of data that were read in the call.
+
+
+ Gets a value that indicates whether the current operation was canceled.
+
+ if the operation that produced this was canceled by ; otherwise, .
+
+
+ Gets a value that indicates whether the end of the data stream has been reached.
+
+ if the end of the data stream has been reached; otherwise, .
+
+
+ Provides extension methods for that support read and write operations directly into pipes.
+
+
+ Asynchronously reads the bytes from the and writes them to the specified , using a cancellation token.
+ The stream from which the contents of the current stream will be copied.
+ The writer to which the contents of the source stream will be copied.
+ The token to monitor for cancellation requests. The default value is .
+ A task that represents the asynchronous copy operation.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a 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 completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+ The threshold of remaining bytes in the buffer before a new buffer is allocated. The default value is 1024.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ The buffer size.
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the threshold of remaining bytes in the buffer before a new buffer is allocated.
+ The minimum read size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+ Represents a set of options for controlling the creation of the .
+
+
+ Initializes a instance, optionally specifying a memory pool, a minimum buffer size, and whether the underlying stream should be left open after the completes.
+ The memory pool to use when allocating memory. The default value is .
+ The minimum buffer size to use when renting memory from the . The default value is 4096.
+
+ to leave the underlying stream open after the completes; to close it. The default is .
+
+
+ Gets the value that indicates if the underlying stream should be left open after the completes.
+
+ if the underlying stream should be left open after the completes; otherwise, .
+
+
+ Gets the minimum buffer size to use when renting memory from the .
+ An integer representing the minimum buffer size.
+
+
+ Gets the to use when allocating memory.
+ A memory pool instance.
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.Memory.dll b/bin/Debug/System.Memory.dll
new file mode 100644
index 0000000..4617199
Binary files /dev/null and b/bin/Debug/System.Memory.dll differ
diff --git a/bin/Debug/System.Memory.xml b/bin/Debug/System.Memory.xml
new file mode 100644
index 0000000..4d12fd7
--- /dev/null
+++ b/bin/Debug/System.Memory.xml
@@ -0,0 +1,355 @@
+
+
+ System.Memory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.Numerics.Vectors.dll b/bin/Debug/System.Numerics.Vectors.dll
new file mode 100644
index 0000000..0865972
Binary files /dev/null and b/bin/Debug/System.Numerics.Vectors.dll differ
diff --git a/bin/Debug/System.Numerics.Vectors.xml b/bin/Debug/System.Numerics.Vectors.xml
new file mode 100644
index 0000000..da34d39
--- /dev/null
+++ b/bin/Debug/System.Numerics.Vectors.xml
@@ -0,0 +1,2621 @@
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents a 3x2 matrix.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of value1 and value2.
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around axis, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation matrix.
+
+
+ Creates a view matrix.
+ The position of the camera.
+ The target towards which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ fieldOfView is less than or equal to zero.
+ -or-
+ fieldOfView is greater than or equal to .
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+ The perspective projection matrix.
+ nearPlaneDistance is less than or equal to zero.
+ -or-
+ farPlaneDistance is less than or equal to zero.
+ -or-
+ nearPlaneDistance is greater than or equal to farPlaneDistance.
+
+
+ Creates a matrix that reflects the coordinate system about a specified plane.
+ The plane about which to create a reflection.
+ A new matrix expressing the reflection.
+
+
+ Creates a matrix for rotating points around the X axis.
+ The amount, in radians, by which to rotate around the X axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the X axis from a center point.
+ The amount, in radians, by which to rotate around the X axis.
+ The center point.
+ The rotation matrix.
+
+
+ The amount, in radians, by which to rotate around the Y axis from a center point.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Y axis.
+ The amount, in radians, by which to rotate around the Y-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The rotation matrix.
+
+
+ Creates a matrix for rotating points around the Z axis from a center point.
+ The amount, in radians, by which to rotate around the Z-axis.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale equally on each axis.
+ The uniform scaling factor.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scales equally on each axis with a center point.
+ The uniform scaling factor.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.
+ The direction from which the light that will cast the shadow is coming.
+ The plane onto which the new matrix should flatten geometry so as to cast a shadow.
+ A new matrix that can be used to flatten geometry onto the specified plane from the specified direction.
+
+
+ Creates a translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ The amount to translate on the X axis.
+ The amount to translate on the Y axis.
+ The amount to translate on the Z axis.
+ The translation matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+ true if matrix was decomposed successfully; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+ true if the two matrices are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+ true if matrix was converted successfully; otherwise, false.
+
+
+ Indicates whether the current matrix is the identity matrix.
+ true if the current matrix is the identity matrix; otherwise, false.
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of matrix2.
+ The interpolated matrix.
+
+
+ The first element of the first row.
+
+
+
+ The second element of the first row.
+
+
+
+ The third element of the first row.
+
+
+
+ The fourth element of the first row.
+
+
+
+ The first element of the second row.
+
+
+
+ The second element of the second row.
+
+
+
+ The third element of the second row.
+
+
+
+ The fourth element of the second row.
+
+
+
+ The first element of the third row.
+
+
+
+ The second element of the third row.
+
+
+
+ The third element of the third row.
+
+
+
+ The fourth element of the third row.
+
+
+
+ The first element of the fourth row.
+
+
+
+ The second element of the fourth row.
+
+
+
+ The third element of the fourth row.
+
+
+
+ The fourth element of the fourth row.
+
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Represents a three-dimensional plane.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from the X, Y, and Z components of its normal, and its distance from the origin on that normal.
+ The X component of the normal.
+ The Y component of the normal.
+ The Z component of the normal.
+ The distance of the plane along its normal from the origin.
+
+
+ Creates a object that contains three specified points.
+ The first point defining the plane.
+ The second point defining the plane.
+ The third point defining the plane.
+ The plane containing the three points.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+ true if the two planes are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ The normal vector of the plane.
+
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to plane.
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the value1 rotation followed by the value2 rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of value.
+
+
+ Creates a quaternion from a vector and an angle to rotate about the vector.
+ The vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ The yaw angle, in radians, around the Y axis.
+ The pitch angle, in radians, around the X axis.
+ The roll angle, in radians, around the Z axis.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+ true if the current instance is the identity quaternion; otherwise, false.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of quaternion2 in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of value1 and value2.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing value1 by value2.
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if the two quaternions are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+ true if value1 and value2 are not equal; otherwise, false.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in value2 from its corresponding element in value1.
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ The rotation component of the quaternion.
+
+
+
+ The X value of the vector component of the quaternion.
+
+
+
+ The Y value of the vector component of the quaternion.
+
+
+
+ The Z value of the vector component of the quaternion.
+
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The vector type. T can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+
+
+ Creates a vector from a specified array.
+ A numeric array.
+ values is null.
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ A numeric array.
+ The starting index position from which to create the vector.
+ values is null.
+ index is less than zero.
+ -or-
+ The length of values minus index is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+ destination is null.
+ The number of elements in the current vector is greater than the number of elements available in the destination array.
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in destination at which to begin the copy operation.
+ destination is null.
+ The number of elements in the current instance is greater than the number of elements available from startIndex to the end of the destination array.
+ index is less than zero or greater than the last index in destination.
+
+
+ Returns the number of elements stored in the vector.
+ The number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ true if the current instance and other are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ true if the current instance and obj are equal; otherwise, false. The method returns false if obj is null, or if obj is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+ The element at index index.
+ index is less than zero.
+ -or-
+ index is greater than or equal to .
+
+
+ Returns a vector containing all ones.
+ A vector containing all ones.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise And of left and right.
+
+
+ Returns a new vector by performing a bitwise Or operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise Or of the elements in left and right.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a new vector by performing a bitwise XOr operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector that results from the bitwise XOr of the elements in left and right.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ The reinterpreted vector.
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if any element pairs in left and right are equal. false if no element pairs are equal.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ The scaled vector.
+
+
+ Multiplies a vector by the given scalar.
+ The scalar value.
+ The source vector.
+ The scaled vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The one's complement vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates a given vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using default formatting.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns a vector containing all zeroes.
+ A vector containing all zeroes.
+
+
+ Provides a collection of static convenience methods for creating, manipulating, combining, and converting generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise And operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise Or operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new double-precision vector with elements selected between two specified double-precision source vectors based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The new vector with elements selected based on the mask.
+
+
+ Creates a new vector of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose values are the result of dividing the first vector's elements by the corresponding elements in the second vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element pair in left and right is equal; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all elements in left are greater than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is greater than or equal to the corresponding element in right; otherwise, false.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+ true if vector operations are subject to hardware acceleration; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than the corresponding element in right; otherwise, false.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if all of the elements in left are less than or equal to the corresponding elements in right; otherwise, false.
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ true if any element in left is less than or equal to the corresponding element in right; otherwise, false.
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The product vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new vector by performing a bitwise exclusive Or (XOr) operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1).
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns the reflection of a vector off a surface that has the specified normal.
+ The source vector.
+ The normal of the surface being reflected off.
+ The reflected vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0)..
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ array is multidimensional.
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+ array is null.
+ The number of elements in the current instance is greater than in the array.
+ index is less than zero.
+ -or-
+ index is greater than or equal to the array length.
+ array is multidimensional.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+ true if the two vectors are equal; otherwise, false.
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+ true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of value2.
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing left by right.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are equal; otherwise, false.
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+ true if left and right are not equal; otherwise, false.
+
+
+ Multiplies two vectors together.
+ The first vector.
+ The second vector.
+ The product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting right from left.
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A or that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A or that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0)..
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ The vector (0,0,1,0).
+
+
+ The W component of the vector.
+
+
+
+ The X component of the vector.
+
+
+
+ The Y component of the vector.
+
+
+
+ The Z component of the vector.
+
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0).
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll b/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..c5ba4e4
Binary files /dev/null and b/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml b/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
new file mode 100644
index 0000000..9d79492
--- /dev/null
+++ b/bin/Debug/System.Runtime.CompilerServices.Unsafe.xml
@@ -0,0 +1,291 @@
+
+
+
+ System.Runtime.CompilerServices.Unsafe
+
+
+
+ Contains generic, low-level functionality for manipulating pointers.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of offset to pointer.
+
+
+ Adds an element offset to the given void pointer.
+ The void pointer to add the offset to.
+ The offset to add.
+ The type of void pointer.
+ A new void pointer that reflects the addition of offset to the specified pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Adds a byte offset to the given reference.
+ The reference to add the offset to.
+ The offset to add.
+ The type of reference.
+ A new reference that reflects the addition of byte offset to pointer.
+
+
+ Determines whether the specified references point to the same location.
+ The first reference to compare.
+ The second reference to compare.
+ The type of reference.
+
+ if and point to the same location; otherwise, .
+
+
+ Casts the given object to the specified type.
+ The object to cast.
+ The type which the object will be cast to.
+ The original object, casted to the given type.
+
+
+ Reinterprets the given reference as a reference to a value of type .
+ The reference to reinterpret.
+ The type of reference to reinterpret.
+ The desired type of the reference.
+ A reference to a value of type .
+
+
+ Returns a pointer to the given by-ref parameter.
+ The object whose pointer is obtained.
+ The type of object.
+ A pointer to the given value.
+
+
+ Reinterprets the given read-only reference as a reference.
+ The read-only reference to reinterpret.
+ The type of reference.
+ A reference to a value of type .
+
+
+ Reinterprets the given location as a reference to a value of type .
+ The location of the value to reference.
+ The type of the interpreted location.
+ A reference to a value of type .
+
+
+ Determines the byte offset from origin to target from the given references.
+ The reference to origin.
+ The reference to target.
+ The type of reference.
+ Byte offset from origin to target i.e. - .
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A pointer to the value to copy.
+ The type of value to copy.
+
+
+ Copies a value of type to the given location.
+ The location to copy to.
+ A reference to the value to copy.
+ The type of value to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Copies bytes from the source address to the destination address without assuming architecture dependent alignment of the addresses.
+ The destination address to copy to.
+ The source address to copy from.
+ The number of bytes to copy.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Initializes a block of memory at the given location with a given initial value without assuming architecture dependent alignment of the address.
+ The address of the start of the memory block to initialize.
+ The value to initialize the block to.
+ The number of bytes to initialize.
+
+
+ Returns a value that indicates whether a specified reference is greater than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is greater than ; otherwise, .
+
+
+ Returns a value that indicates whether a specified reference is less than another specified reference.
+ The first value to compare.
+ The second value to compare.
+ The type of the reference.
+
+ if is less than ; otherwise, .
+
+
+ Determines if a given reference to a value of type is a null reference.
+ The reference to check.
+ The type of the reference.
+
+ if is a null reference; otherwise, .
+
+
+ Returns a reference to a value of type that is a null reference.
+ The type of the reference.
+ A reference to a value of type that is a null reference.
+
+
+ Reads a value of type from the given location.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Reads a value of type from the given location without assuming architecture dependent alignment of the addresses.
+ The location to read from.
+ The type to read.
+ An object of type read from the given location.
+
+
+ Returns the size of an object of the given type parameter.
+ The type of object whose size is retrieved.
+ The size of an object of type .
+
+
+ Bypasses definite assignment rules for a given value.
+ The uninitialized object.
+ The type of the uninitialized object.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of offset from pointer.
+
+
+ Subtracts an element offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of offset from pointer.
+
+
+ Subtracts an element offset from the given void pointer.
+ The void pointer to subtract the offset from.
+ The offset to subtract.
+ The type of the void pointer.
+ A new void pointer that reflects the subtraction of offset from the specified pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subtraction of byte offset from pointer.
+
+
+ Subtracts a byte offset from the given reference.
+ The reference to subtract the offset from.
+ The offset to subtract.
+ The type of reference.
+ A new reference that reflects the subraction of byte offset from pointer.
+
+
+ Returns a to a boxed value.
+ The value to unbox.
+ The type to be unboxed.
+
+ is , and is a non-nullable value type.
+
+ is not a boxed value type.
+
+-or-
+
+ is not a boxed .
+
+ cannot be found.
+ A to the boxed value .
+
+
+ Writes a value of type to the given location.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+ Writes a value of type to the given location without assuming architecture dependent alignment of the addresses.
+ The location to write to.
+ The value to write.
+ The type of value to write.
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/System.Threading.Tasks.Extensions.dll b/bin/Debug/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000..eeec928
Binary files /dev/null and b/bin/Debug/System.Threading.Tasks.Extensions.dll differ
diff --git a/bin/Debug/System.Threading.Tasks.Extensions.xml b/bin/Debug/System.Threading.Tasks.Extensions.xml
new file mode 100644
index 0000000..5e02a99
--- /dev/null
+++ b/bin/Debug/System.Threading.Tasks.Extensions.xml
@@ -0,0 +1,166 @@
+
+
+ System.Threading.Tasks.Extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a value type that wraps a and a TResult, only one of which is used.
+ The result.
+
+
+ Initializes a new instance of the class using the supplied task that represents the operation.
+ The task.
+ The task argument is null.
+
+
+ Initializes a new instance of the class using the supplied result of a successful operation.
+ The result.
+
+
+ Retrieves a object that represents this .
+ The object that is wrapped in this if one exists, or a new object that represents the result.
+
+
+ Configures an awaiter for this value.
+ true to attempt to marshal the continuation back to the captured context; otherwise, false.
+ The configured awaiter.
+
+
+ Creates a method builder for use with an async method.
+ The created builder.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare with the current object.
+ true if the specified object is equal to the current object; otherwise, false.
+
+
+ Creates an awaiter for this value.
+ The awaiter.
+
+
+ Returns the hash code for this instance.
+ The hash code for the current object.
+
+
+ Gets a value that indicates whether this object represents a canceled operation.
+ true if this object represents a canceled operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a completed operation.
+ true if this object represents a completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a successfully completed operation.
+ true if this object represents a successfully completed operation; otherwise, false.
+
+
+ Gets a value that indicates whether this object represents a failed operation.
+ true if this object represents a failed operation; otherwise, false.
+
+
+ Compares two values for equality.
+ The first value to compare.
+ The second value to compare.
+ true if the two values are equal; otherwise, false.
+
+
+ Determines whether two values are unequal.
+ The first value to compare.
+ The seconed value to compare.
+ true if the two values are not equal; otherwise, false.
+
+
+ Gets the result.
+ The result.
+
+
+ Returns a string that represents the current object.
+ A string that represents the current object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/ZstdSharp.dll b/bin/Debug/ZstdSharp.dll
new file mode 100644
index 0000000..cf1281f
Binary files /dev/null and b/bin/Debug/ZstdSharp.dll differ
diff --git a/bin/Debug/app.publish/NT318校时工具.exe b/bin/Debug/app.publish/NT318校时工具.exe
new file mode 100644
index 0000000..3765361
Binary files /dev/null and b/bin/Debug/app.publish/NT318校时工具.exe differ
diff --git a/bin/Debug/cs/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/cs/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..aaf41bf
Binary files /dev/null and b/bin/Debug/cs/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/de/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/de/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..9d97c4d
Binary files /dev/null and b/bin/Debug/de/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/es/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/es/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..187e7f9
Binary files /dev/null and b/bin/Debug/es/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/fr/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/fr/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..5418cdf
Binary files /dev/null and b/bin/Debug/fr/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/it/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/it/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..62b73af
Binary files /dev/null and b/bin/Debug/it/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/ja/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/ja/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..985be3f
Binary files /dev/null and b/bin/Debug/ja/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/ko/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/ko/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..53990b4
Binary files /dev/null and b/bin/Debug/ko/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/pl/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/pl/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..5621794
Binary files /dev/null and b/bin/Debug/pl/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/pt-BR/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/pt-BR/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..c437a4f
Binary files /dev/null and b/bin/Debug/pt-BR/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/ru/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/ru/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..aa4469e
Binary files /dev/null and b/bin/Debug/ru/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/tr/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/tr/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..e3d6c0c
Binary files /dev/null and b/bin/Debug/tr/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/twitter.ico b/bin/Debug/twitter.ico
new file mode 100644
index 0000000..354a08f
Binary files /dev/null and b/bin/Debug/twitter.ico differ
diff --git a/bin/Debug/x64/SQLite.Interop.dll b/bin/Debug/x64/SQLite.Interop.dll
new file mode 100644
index 0000000..0a92107
Binary files /dev/null and b/bin/Debug/x64/SQLite.Interop.dll differ
diff --git a/bin/Debug/x64/sqlite3.dll b/bin/Debug/x64/sqlite3.dll
new file mode 100644
index 0000000..983c1d5
Binary files /dev/null and b/bin/Debug/x64/sqlite3.dll differ
diff --git a/bin/Debug/x86/SQLite.Interop.dll b/bin/Debug/x86/SQLite.Interop.dll
new file mode 100644
index 0000000..03a3381
Binary files /dev/null and b/bin/Debug/x86/SQLite.Interop.dll differ
diff --git a/bin/Debug/x86/sqlite3.dll b/bin/Debug/x86/sqlite3.dll
new file mode 100644
index 0000000..d5d1586
Binary files /dev/null and b/bin/Debug/x86/sqlite3.dll differ
diff --git a/bin/Debug/zh-Hans/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/zh-Hans/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..19c5c48
Binary files /dev/null and b/bin/Debug/zh-Hans/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/bin/Debug/zh-Hant/Microsoft.QualityTools.Testing.Fakes.resources.dll b/bin/Debug/zh-Hant/Microsoft.QualityTools.Testing.Fakes.resources.dll
new file mode 100644
index 0000000..7c73c97
Binary files /dev/null and b/bin/Debug/zh-Hant/Microsoft.QualityTools.Testing.Fakes.resources.dll differ
diff --git a/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.vb b/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.vb
new file mode 100644
index 0000000..e7dcac5
--- /dev/null
+++ b/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.vb
@@ -0,0 +1,7 @@
+'
+ Option Strict Off
+ Option Explicit On
+
+ Imports System
+ Imports System.Reflection
+
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..bc6a7be
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..0e482d0
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/obj/Debug/NT2406_Tool.vbproj.AssemblyReference.cache b/obj/Debug/NT2406_Tool.vbproj.AssemblyReference.cache
new file mode 100644
index 0000000..f5e894a
Binary files /dev/null and b/obj/Debug/NT2406_Tool.vbproj.AssemblyReference.cache differ
diff --git a/obj/Debug/NT2406_Tool.vbproj.CopyComplete b/obj/Debug/NT2406_Tool.vbproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Debug/NT2406_Tool.vbproj.CoreCompileInputs.cache b/obj/Debug/NT2406_Tool.vbproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..b3a2592
--- /dev/null
+++ b/obj/Debug/NT2406_Tool.vbproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+1cf511f27698c6c2e0d41b1a35b550bad9cc2126
diff --git a/obj/Debug/NT2406_Tool.vbproj.FileListAbsolute.txt b/obj/Debug/NT2406_Tool.vbproj.FileListAbsolute.txt
new file mode 100644
index 0000000..a76141b
--- /dev/null
+++ b/obj/Debug/NT2406_Tool.vbproj.FileListAbsolute.txt
@@ -0,0 +1,79 @@
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT2406_Tool.vbproj.GenerateResource.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT2406_Tool.vbproj.CoreCompileInputs.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.1.0.119.0.Fakes.fakesconfig
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\FlexCell.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Google.Protobuf.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Microsoft.QualityTools.Testing.Fakes.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\MySql.Data.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\SqlSugar.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Buffers.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.EF6.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.Linq.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Memory.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ZstdSharp.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Google.Protobuf.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Google.Protobuf.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\MySql.Data.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Buffers.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Memory.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\cs\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\de\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\es\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\fr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\it\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ja\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ko\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\pl\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\pt-BR\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ru\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\tr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\zh-Hans\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\zh-Hant\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT2406_Tool.vbproj.CopyComplete
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT2406_Tool.vbprojFakesResolveAssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT2406_Tool.vbproj.AssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\x86\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\x64\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.exe.config
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.TrustInfo.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.Form1.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.Resources.resources
diff --git a/obj/Debug/NT2406_Tool.vbproj.GenerateResource.cache b/obj/Debug/NT2406_Tool.vbproj.GenerateResource.cache
new file mode 100644
index 0000000..2935d33
Binary files /dev/null and b/obj/Debug/NT2406_Tool.vbproj.GenerateResource.cache differ
diff --git a/obj/Debug/NT2406_Tool.vbprojFakesResolveAssemblyReference.cache b/obj/Debug/NT2406_Tool.vbprojFakesResolveAssemblyReference.cache
new file mode 100644
index 0000000..c9a6871
Binary files /dev/null and b/obj/Debug/NT2406_Tool.vbprojFakesResolveAssemblyReference.cache differ
diff --git a/obj/Debug/NT318.vbproj.AssemblyReference.cache b/obj/Debug/NT318.vbproj.AssemblyReference.cache
new file mode 100644
index 0000000..f5e894a
Binary files /dev/null and b/obj/Debug/NT318.vbproj.AssemblyReference.cache differ
diff --git a/obj/Debug/NT318.vbproj.CoreCompileInputs.cache b/obj/Debug/NT318.vbproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..113cb6a
--- /dev/null
+++ b/obj/Debug/NT318.vbproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+aa595453693a194bf7c9e546e0ce3cdfb12e363c
diff --git a/obj/Debug/NT318.vbproj.FileListAbsolute.txt b/obj/Debug/NT318.vbproj.FileListAbsolute.txt
new file mode 100644
index 0000000..e544986
--- /dev/null
+++ b/obj/Debug/NT318.vbproj.FileListAbsolute.txt
@@ -0,0 +1,79 @@
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\x86\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\x64\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT318校时工具.exe.config
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT318校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT318校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT318校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT318校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT318校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.1.0.119.0.Fakes.fakesconfig
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\FlexCell.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Google.Protobuf.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Microsoft.QualityTools.Testing.Fakes.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\MySql.Data.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\SqlSugar.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Buffers.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.EF6.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.Linq.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Memory.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ZstdSharp.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Google.Protobuf.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Google.Protobuf.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\MySql.Data.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Buffers.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Memory.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\cs\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\de\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\es\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\fr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\it\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ja\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ko\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\pl\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\pt-BR\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ru\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\tr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\zh-Hans\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\zh-Hant\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.Form1.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.Resources.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318.vbproj.GenerateResource.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318.vbproj.CoreCompileInputs.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.TrustInfo.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318.vbproj.CopyComplete
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318.vbprojFakesResolveAssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT318.vbproj.AssemblyReference.cache
diff --git a/obj/Debug/NT318.vbproj.GenerateResource.cache b/obj/Debug/NT318.vbproj.GenerateResource.cache
new file mode 100644
index 0000000..9708372
Binary files /dev/null and b/obj/Debug/NT318.vbproj.GenerateResource.cache differ
diff --git a/obj/Debug/NT318.vbprojFakesResolveAssemblyReference.cache b/obj/Debug/NT318.vbprojFakesResolveAssemblyReference.cache
new file mode 100644
index 0000000..f5e894a
Binary files /dev/null and b/obj/Debug/NT318.vbprojFakesResolveAssemblyReference.cache differ
diff --git a/obj/Debug/NT318校时工具.Form1.resources b/obj/Debug/NT318校时工具.Form1.resources
new file mode 100644
index 0000000..e92ff39
Binary files /dev/null and b/obj/Debug/NT318校时工具.Form1.resources differ
diff --git a/obj/Debug/NT318校时工具.Resources.resources b/obj/Debug/NT318校时工具.Resources.resources
new file mode 100644
index 0000000..c8c823c
Binary files /dev/null and b/obj/Debug/NT318校时工具.Resources.resources differ
diff --git a/obj/Debug/NT318校时工具.TrustInfo.xml b/obj/Debug/NT318校时工具.TrustInfo.xml
new file mode 100644
index 0000000..9c2ae30
--- /dev/null
+++ b/obj/Debug/NT318校时工具.TrustInfo.xml
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/obj/Debug/NT318校时工具.application b/obj/Debug/NT318校时工具.application
new file mode 100644
index 0000000..099bb76
--- /dev/null
+++ b/obj/Debug/NT318校时工具.application
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jWbFUzPnFP/9U1LxN7s9yn8KKLjfV0CPgu2Y4/FeSU4=
+
+
+
+
\ No newline at end of file
diff --git a/obj/Debug/NT318校时工具.exe b/obj/Debug/NT318校时工具.exe
new file mode 100644
index 0000000..2726b8a
Binary files /dev/null and b/obj/Debug/NT318校时工具.exe differ
diff --git a/obj/Debug/NT318校时工具.exe.manifest b/obj/Debug/NT318校时工具.exe.manifest
new file mode 100644
index 0000000..e77d61c
--- /dev/null
+++ b/obj/Debug/NT318校时工具.exe.manifest
@@ -0,0 +1,583 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 9cU6NkxgtDdqaSNzthllqWlok0n5Z+Uix8Kdn3Eo1bs=
+
+
+
+
+
+
+
+
+
+
+
+ /0K8pwRgXhh6u0VSOGixUSjWrxworUCkV51QfTSpU7I=
+
+
+
+
+
+
+
+
+
+
+
+ qWDdTS8PN7PAn/uVZ8MkJrh5ExDX65NcBMgZw9Rr1J4=
+
+
+
+
+
+
+
+
+
+
+
+ fU3eI5lhl3kbpVU9uxoaqn7/U4ddo579M8SGYLbgufY=
+
+
+
+
+
+
+
+
+
+
+
+ NJmZEtXwnJmWoHm+QakbEe1yZKCGviScDp+j9ln+jU8=
+
+
+
+
+
+
+
+
+
+
+
+ ba3nlmT0ihY9aGTISgpsXFW4Vr3680uhh8h/GPkWcjg=
+
+
+
+
+
+
+
+
+
+
+
+ NvHKAfElIqDFD4/kjNBq3CRXHuKg/ySDFbOIuL0A9IQ=
+
+
+
+
+
+
+
+
+
+
+
+ /V++r7OuWbRdvGrGuGfs2+tLS3Fa3rxdF2bhVeY5yvM=
+
+
+
+
+
+
+
+
+
+
+
+ B1znnoQEETfHiIWzc4wbWgNUfQrip5kW6EQZap0Owds=
+
+
+
+
+
+
+
+
+
+
+
+ 7vlKOf+xKLft6Nw+iTql2d3NMMQWyvaMAXU0hjkfqTE=
+
+
+
+
+
+
+
+
+
+
+
+ 1bfUEwssGf9LpqjScNnNYkQNkJXE+ZRHUDkV8yQ8imE=
+
+
+
+
+
+
+
+
+
+
+
+ arzDO26hBizFnMgwIym5qbteKZCaYE76sMTFQDIMlS8=
+
+
+
+
+
+
+
+
+
+
+
+ mJXsCt/mMTOQBaf0b1TWvXihS7V1DviGEzUwzwTU1bg=
+
+
+
+
+
+
+
+
+
+
+
+ U8fsnsd6lnATQT/egLiE/sDzeegQiVtyJSqmQ+yS7eA=
+
+
+
+
+
+
+
+
+
+
+
+ Ri/yxc7FPYBz2JtiM/4VlnNGk8zJzNVgD4s1ZZtLpQI=
+
+
+
+
+
+
+
+
+
+
+
+ V1163KRDWq+JTnP/g7pwv6ajgY7FNeG+cx4DmGtT2tI=
+
+
+
+
+
+
+
+
+
+
+
+ zevH3gQb0MO0cJ6C/YUvPj6pQiJmtnbVGVLE7t4qDbU=
+
+
+
+
+
+
+
+
+
+
+
+ QH+nkSna5vMMRDErG9YHDd24w47j+DuSSCfbZ5bwnXc=
+
+
+
+
+
+
+
+
+
+
+
+ lPIE8okBzZGm3tZTpVn1Q7YtVGhO7hbIqdeQHVdjVyA=
+
+
+
+
+
+
+
+
+
+
+
+ HGkkpLAwURXUocM768E4CIPI+eJjJIP//QLrqZYjhlI=
+
+
+
+
+
+
+
+
+
+
+
+ bIc9FR4bFVsG5d1WJqcmQNqvS/Y8oqlW3p/pCxd6sOw=
+
+
+
+
+
+
+
+
+
+
+
+ cZz42uc6085Je3OLSYRrKiJG1Yj518RjdxOFveHRPUQ=
+
+
+
+
+
+
+
+
+
+
+
+ 5zgiIxcqwwXrfnPc1JFVbYsim3aT0xyFvgJ25tIsXPw=
+
+
+
+
+
+
+
+
+
+
+
+ ubTZKtooUZNXA5MPZbynAQemut67/NtLN8g9kmZWsQA=
+
+
+
+
+
+
+
+
+
+
+
+ 4eJ697B+7t9c5xqSVfBCKBam/FhJpIPGcU4bRyBE+p0=
+
+
+
+
+
+
+
+
+
+
+
+ ZzYRtciSlGrrBAm+T6KbAJurYPepbyxoUP6DWovuCn4=
+
+
+
+
+
+
+
+
+
+
+
+ V/AIu33HtiM6nyKkWUGaAUnZsKocxWSRgr83Um27uyQ=
+
+
+
+
+
+
+
+
+
+
+
+ rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs=
+
+
+
+
+
+
+
+
+
+
+
+ vhBo0a8kBUmvzUjyLPzxWsEMRjBgClNErgJdMFUCmDQ=
+
+
+
+
+
+
+
+
+
+
+
+ gMWoxwR4y7/dltXcGqQtingz0PKp8SmYlVhaK9RyTnY=
+
+
+
+
+
+
+
+
+
+
+
+ JsARknFP5RoZF9xNv2kzTGtdHZiDSydv7wBpaepmrXY=
+
+
+
+
+
+
+
+
+
+
+
+ 32xAvqqkkG5yvuEr4F2fg4F+pspcVmNs+J+hXxXJXGA=
+
+
+
+
+
+
+
+
+
+
+
+ GIdZJhX8CLvJGtYjB8jBHfwUxFvxINJx1mvkoNGhSac=
+
+
+
+
+
+
+
+
+
+
+
+ kdZASqIUqkuiHgZhgKiMvpVl5SMWSRERy38jn8SYL4I=
+
+
+
+
+
+
+
+
+
+
+
+ vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8=
+
+
+
+
+
+
+
+
+
+
+
+ HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM=
+
+
+
+
+
+
+
+
+
+
+
+ N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8=
+
+
+
+
+
+
+
+
+
+
+
+ T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y=
+
+
+
+
+
+
+
+
+
+
+
+ MJMwwGHBeSdGj9AATQVmQ/tbZ5FRQB5syUdhET+525c=
+
+
+
+
+
+
+
+
+
+ CA0joXWjephERCJ2m3DUmXiNTCCEnnIEHfikawcagDU=
+
+
+
+
+
+
+
+
+ qEteaDndA8SvziyeEEnIBIH9q3ET1PS1OqxIDfFGoQw=
+
+
+
+
+
+
+
+
+ 0sBKOFfWUOSKDR7Oy99G6ckMra0HNu3GrvDCaknQkds=
+
+
+
+
+
+
+
+
+ B/ww4MkioMte7sU+EpZRQzqs+tevfTVD1npBoQGkPZ0=
+
+
+
+
+
+
+
+
+ zdbEB7YTcSgOScmis0r07AawGRmT5u3o77kjWZCDeXc=
+
+
+
+
+
+
+
+
+ bersL5bIocIGmKk93UaNVEe1WsQm3Dge712RsZlTu3s=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/obj/Debug/NT318校时工具.pdb b/obj/Debug/NT318校时工具.pdb
new file mode 100644
index 0000000..2f1894a
Binary files /dev/null and b/obj/Debug/NT318校时工具.pdb differ
diff --git a/obj/Debug/NT318校时工具.xml b/obj/Debug/NT318校时工具.xml
new file mode 100644
index 0000000..7e6908e
--- /dev/null
+++ b/obj/Debug/NT318校时工具.xml
@@ -0,0 +1,1459 @@
+
+
+
+
+NT318校时工具
+
+
+
+
+
+ 一个强类型的资源类,用于查找本地化的字符串等。
+
+
+
+
+ 返回此类使用的缓存的 ResourceManager 实例。
+
+
+
+
+ 重写当前线程的 CurrentUICulture 属性,对
+ 使用此强类型资源类的所有资源查找执行重写。
+
+
+
+
+ 查找类似 的本地化字符串。
+
+
+
+
+ Contains the schema of a single DB column.
+
+
+
+
+ 清空数据表
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 创建表,同时复制基础表数据(不包含原表索引与主键)
+ 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+
+ 表名
+ 基础表名
+
+
+
+
+ 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
+ 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+
+ 表名
+ 基础表名
+
+
+
+
+ 复制基础表数据到新表中
+
+ 表名
+ 基础表名
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ Contains the entire database schema
+
+
+
+
+ 判断列名
+
+
+
+
+
+ 判断条件
+
+
+
+
+
+ 判断值
+
+
+
+
+
+ 当前条件与上一个条件的逻辑关系
+
+
+
+
+
+ 将当前条件转换为字符串,不支持将条件逻辑关系同时转换
+
+
+
+
+
+ 查询条件的表名
+
+
+
+
+
+ 当IsSearchAllCols = False时,查询返回列名集合
+
+
+
+
+
+ 查询的条件
+
+
+
+
+
+ 排序方式
+
+
+
+
+
+ 但需要排序时排序列名
+
+
+
+
+
+ 从返回结果提取指定行的内容
+
+
+
+
+
+ Describes a single view schema
+
+
+
+
+ Contains the view name
+
+
+
+
+ Contains the view SQL statement
+
+
+
+
+ 1 byte,小整数值
+
+
+
+
+ 2 bytes,大整数值
+
+
+
+
+ 3 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 8 bytes,极大整数值
+
+
+
+
+ 4 bytes,单精度浮点数值
+
+
+
+
+ 8 bytes,双精度浮点数值
+
+
+
+
+ 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+
+
+
+
+ 3 bytes,日期值,YYYY-MM-DD
+
+
+
+
+ 3 bytes,时间值或持续时间,HH:MM:SS
+
+
+
+
+ 1 bytes,年份值,YYYY
+
+
+
+
+ 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+
+
+
+
+ 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+
+
+
+
+ 0-255 bytes,定长字符串
+
+
+
+
+ 0-65535 bytes,变长字符串
+
+
+
+
+ 0-255 bytes,不超过 255 个字符的二进制字符串
+
+
+
+
+ 0-255 bytes,短文本字符串
+
+
+
+
+ 0-65 535 bytes,二进制形式的长文本数据
+
+
+
+
+ 0-65 535 bytes,长文本数据
+
+
+
+
+ 0-16 777 215 bytes,二进制形式的中等长度文本数据
+
+
+
+
+ 0-16 777 215 bytes,中等长度文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,二进制形式的极大文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,极大文本数据
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 数据类型是否带符号
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 是否为唯一值
+
+
+
+
+
+ 查询指定数据表的信息
+
+
+
+
+
+
+ 数据库语句助手
+ 时间:2020-12-21
+ 作者:ML
+ 版本:1.0
+
+ 注意:添加一条数据库帮助语句时,需要考虑Mysql/Sqlite/Mssql等数据库是否支持命令,不支持则需要在对应帮助类中重写该帮助语句
+ 注意:Sqlite数据库与大多数据库不相同,DB开头数据库语句大多不适用
+
+
+
+
+
+ 查询指定数据表符合条件的所有数据
+
+ 指定表名
+ 查询条件,
+
+
+
+
+ 查询表符合条件的所有指定列的数据
+
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询表符合条件的所有指定列的数据
+
+ 表名
+ 条件
+
+
+
+
+ 查询指定表包含的内容行数
+
+ 数据表名
+ 查询条件
+
+
+
+
+ 查询指定数据表的信息
+
+ 表名
+
+
+
+
+ 查询指定数据表是否存在的信息,返回查询当前表在数据库中存在的数量
+
+ 表名
+
+
+
+
+ 数据表插入一行数据
+
+ 表名
+ 列名字符串
+ 列值字符串
+
+
+
+
+ 数据表插入一行数据
+
+ 表名
+ 列名与列值键值对
+
+
+
+
+ 数据表插入一行,通过命令参数方式执行时使用
+
+
+
+
+
+
+
+ 数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+
+ 表名
+ 字段列表
+
+
+
+
+ 更新指定表数据
+
+ 指定表名
+ 更新字符串
+
+
+
+
+
+ 更新指定表数据
+
+ 指定表名
+ 更新列名与列值键值对
+ 更新列索引条件
+
+
+
+
+ 更新指定数据库中指定表数据,参数名由@{ColName}
+
+ 指定表名
+ 更新列名的集合
+ 更新列索引条件
+
+
+
+
+ 指定数据表增加一列数据
+
+ 表名
+ 列名
+ 列类型
+ 是否允许为空
+
+
+
+
+ 数据表删除一列数据
+
+ 表名
+ 需要删除的列名,仅一列
+
+
+
+
+ 删除指定表多行数据
+
+ 表名
+ 条件
+
+
+
+
+ 创建数据表
+
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 创建数据表,如果存在则不创建
+
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 清空数据表,表依旧存在
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的数据
+
+ 数据库名
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的去重数据
+
+ 数据库名
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的数据
+
+ 数据库名
+ 表名
+ 条件
+
+
+
+
+ 查询指定表包含的内容行数
+
+ 数据库名
+ 数据表名
+ 查询条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有数据
+
+
+ 数据库名
+ 数据表名
+ 查询条件(可选)
+
+
+
+
+ 查询指定数据库中指定数据表的信息
+
+ 数据库名
+ 表名
+
+
+
+
+ 查询指定数据表是否存在的信息,返回查询当前表在指定数据库中存在的数量
+
+ 数据库名
+ 表名
+
+
+
+
+ 指定数据库中数据表插入一行数据
+
+ 数据库名
+ 表名
+ 列名字符串
+ 列值字符串
+
+
+
+
+ 指定数据库中数据表插入一行数据
+
+ 数据库名
+ 表名
+ 列名与列值键值对
+
+
+
+
+ 指定数据库中数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+
+ 数据库名
+
+ 需要插入列名的集合
+
+
+
+
+ 更新指定数据库中指定表数据
+
+ 数据库名
+ 指定表名
+ 更新字符串
+
+
+
+
+
+ 更新指定数据库中指定表数据,参数名由@{ColName}
+
+ 数据库名
+ 指定表名
+ 更新列名的集合
+ 更新列索引条件
+
+
+
+
+ 更新指定数据库中指定表数据
+
+ 数据库名
+ 指定表名
+ 更新列名与列值键值对
+ 更新列索引条件
+
+
+
+
+ 指定数据库中指定数据表增加一列数据
+
+ 数据库名
+ 表名
+ 列名
+ 列类型
+ 是否允许为空
+
+
+
+
+ 指定数据库中数据表删除一列数据
+
+ 数据库名
+ 表名
+ 需要删除的列名,仅一列
+
+
+
+
+ 指定数据库中指定表删除多行数据
+
+ 数据库名
+ 表名
+ 条件
+
+
+
+
+ 指定数据库中创建数据表
+
+ 数据库名
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 指定数据库中创建数据表,如果存在则不创建
+
+ 数据库名
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 清空指定数据库中数据表,表依旧存在
+
+ 数据库名
+ 数据表名
+
+
+
+
+ 删除指定数据库中数据表
+
+ 数据库名
+ 数据表名
+
+
+
+
+ 数据库通用命令执行器
+ 时间:2020-12-21
+ 作者:ML
+ 版本:1.0
+
+
+
+
+ 数据库类型,目前支持Mysql与Sqlite
+
+
+
+
+ 打开数据库连接
+
+
+
+
+
+ 关闭数据库连接
+
+
+
+
+ 创建当前连接的命令执行句柄
+
+
+
+
+
+ 运行非查询语句,返回执行该语句受到影响的行数
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回数据库读取流的句柄
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行数据库语句,返回数据库读取流的句柄
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回查询结果的第一行第一列的内容
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+
+ 执行的数据库命令文本
+
+
+
+
+ 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 开启事务
+
+
+
+
+
+ 提交事务
+
+
+
+
+ 回滚事务
+
+
+
+
+ 创建数据参数
+
+ 参数数据类型
+ 参数名称
+ 参数值
+
+
+
+
+ 添加数据参数
+
+
+
+
+
+
+
+
+ 清空数据
+
+
+
+
+ 回收资源
+
+
+
+
+ 1 byte,小整数值
+
+
+
+
+ 2 bytes,大整数值
+
+
+
+
+ 3 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 8 bytes,极大整数值
+
+
+
+
+ 4 bytes,单精度浮点数值
+
+
+
+
+ 8 bytes,双精度浮点数值
+
+
+
+
+ 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+
+
+
+
+ 3 bytes,日期值,YYYY-MM-DD
+
+
+
+
+ 3 bytes,时间值或持续时间,HH:MM:SS
+
+
+
+
+ 1 bytes,年份值,YYYY
+
+
+
+
+ 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+
+
+
+
+ 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+
+
+
+
+ 0-255 bytes,定长字符串
+
+
+
+
+ 0-65535 bytes,变长字符串
+
+
+
+
+ 0-255 bytes,不超过 255 个字符的二进制字符串
+
+
+
+
+ 0-255 bytes,短文本字符串
+
+
+
+
+ 0-65 535 bytes,二进制形式的长文本数据
+
+
+
+
+ 0-65 535 bytes,长文本数据
+
+
+
+
+ 0-16 777 215 bytes,二进制形式的中等长度文本数据
+
+
+
+
+ 0-16 777 215 bytes,中等长度文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,二进制形式的极大文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,极大文本数据
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 数据类型是否带符号
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 查询指定数据表的信息
+
+
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 是否为唯一值
+
+
+
+
+
+ 项目加载事件
+
+
+
+
+
+
+ 当前时间
+
+
+
+
+ 最后时间
+
+
+
+
+ 时间间隔
+
+
+
+
+ 接收数据偏移量
+
+
+
+
+ 接收数据缓存包
+
+
+
+
+ 串口波特率
+
+
+
+
+ 初始化串口波特率
+
+
+
+
+ 选择串口
+
+
+
+
+
+
+ 串口通信
+
+
+
+
+
+
+ 获取可用串口
+
+
+
+
+ 串口通讯开关
+
+
+
+
+
+
+ 关闭串口
+
+
+
+
+ 配置串口
+
+ 串口名
+ 串口波特率
+
+
+
+ 打开串口
+
+
+
+
+ 发送485串口数据
+
+
+
+
+
+
+ 接收485串口数据
+
+
+
+
+
+
+ 显示串口回复数据
+
+
+
+
+
+ 清除记录
+
+
+
+
+
+
+ 添加记录文本和颜色
+
+ 需要添加的记录内容
+ 需要设置的记录颜色
+
+
+
+ 添加记录
+
+
+
+
+
+
+ 解析串口数据
+
+
+
+
+
+ Byte数组转字符串
+
+
+
+
+
+
+ 读取核心参数信息-委托
+
+
+
+
+ 显示开关状态
+
+
+
+
+
+ 显示设备浓度
+
+
+
+
+
+ 显示工作天数
+
+
+
+
+
+ 显示当前时间
+
+
+
+
+
+ 将 Int32 转为 4 字节数组,低字节在前。
+
+
+
+
+ Int转2个字节Byte
+ 高字节在前,低字节在后
+
+
+
+
+
+
+ 和校验取余数
+ 求Byte数组的和校验取余数
+
+ Byte数组
+
+
+
+
+ 定期上报开关
+
+
+
+
+ 开启定时上报
+
+
+
+
+
+
+ 调试信息输出开关
+
+
+
+
+
+
+ 复位命令下发
+
+
+
+
+
+
+ 指定查询日志内容
+
+
+
+
+
+
+ 一键查询日志内容
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 数据时间结构
+
+
+
+
+ 解析表格排序
+
+
+
+
+ 将数据显示到表格中
+
+
+
+
+
+ 将字符串按 UTF-8 编码转成 Byte 数组。
+
+
+
+
+ 将 Byte 数组按 UTF-8 编码转成字符串。
+
+
+
+
+ 从原数组截取部分数据为新数组。
+
+ 源数组
+ 起始索引(0 起算)
+ 要截取的长度
+
+
+
+ 将 Byte 数组按指定编码转成字符串。
+ 缺省编码为 UTF-8。
+
+ 源数组
+ 编码,省略则 UTF-8
+
+
+
diff --git a/obj/Debug/NT530.vbproj.AssemblyReference.cache b/obj/Debug/NT530.vbproj.AssemblyReference.cache
new file mode 100644
index 0000000..fc3e45d
Binary files /dev/null and b/obj/Debug/NT530.vbproj.AssemblyReference.cache differ
diff --git a/obj/Debug/NT530.vbproj.CoreCompileInputs.cache b/obj/Debug/NT530.vbproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..113cb6a
--- /dev/null
+++ b/obj/Debug/NT530.vbproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+aa595453693a194bf7c9e546e0ce3cdfb12e363c
diff --git a/obj/Debug/NT530.vbproj.FileListAbsolute.txt b/obj/Debug/NT530.vbproj.FileListAbsolute.txt
new file mode 100644
index 0000000..3847e07
--- /dev/null
+++ b/obj/Debug/NT530.vbproj.FileListAbsolute.txt
@@ -0,0 +1,158 @@
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\x86\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\x64\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.exe.config
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\NT530校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.1.0.119.0.Fakes.fakesconfig
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\FlexCell.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Google.Protobuf.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Microsoft.QualityTools.Testing.Fakes.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\MySql.Data.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\SqlSugar.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Buffers.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.EF6.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Data.SQLite.Linq.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Memory.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ZstdSharp.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Google.Protobuf.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Google.Protobuf.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\MySql.Data.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Buffers.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Memory.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\cs\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\de\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\es\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\fr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\it\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ja\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ko\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\pl\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\pt-BR\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\ru\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\tr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\zh-Hans\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\bin\Debug\zh-Hant\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530.vbprojFakesResolveAssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530.vbproj.AssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.Form1.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.Resources.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530.vbproj.GenerateResource.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530.vbproj.CoreCompileInputs.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.TrustInfo.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530.vbproj.CopyComplete
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\obj\Debug\NT530校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530.vbprojFakesResolveAssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530.vbproj.AssemblyReference.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.Form1.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.Resources.resources
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530.vbproj.GenerateResource.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530.vbproj.CoreCompileInputs.cache
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\x86\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\x64\sqlite3.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT530校时工具.exe.config
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT530校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT530校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT530校时工具.exe
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT530校时工具.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\NT530校时工具.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.1.0.119.0.Fakes.fakesconfig
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\FlexCell.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Google.Protobuf.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Microsoft.QualityTools.Testing.Fakes.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\MySql.Data.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\SqlSugar.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Buffers.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.EF6.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Data.SQLite.Linq.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Memory.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ZstdSharp.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\BouncyCastle.Cryptography.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\EntityFramework.SqlServer.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Google.Protobuf.pdb
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Google.Protobuf.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Compression.LZ4.Streams.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\K4os.Hash.xxHash.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\MySql.Data.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\Newtonsoft.Json.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Buffers.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Configuration.ConfigurationManager.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Diagnostics.DiagnosticSource.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.IO.Pipelines.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Memory.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Numerics.Vectors.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\System.Threading.Tasks.Extensions.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\cs\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\de\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\es\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\fr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\it\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ja\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ko\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\pl\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\pt-BR\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\ru\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\tr\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\zh-Hans\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\bin\Debug\zh-Hant\Microsoft.QualityTools.Testing.Fakes.resources.dll
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.TrustInfo.xml
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.exe.manifest
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530校时工具.application
+E:\Sync\NT2406_Tool_V02_20241001\NT2406_Tool_V02_20241001\NT318V_Tool_V02_20241001\obj\Debug\NT530.vbproj.CopyComplete
diff --git a/obj/Debug/NT530.vbproj.GenerateResource.cache b/obj/Debug/NT530.vbproj.GenerateResource.cache
new file mode 100644
index 0000000..fca8be8
Binary files /dev/null and b/obj/Debug/NT530.vbproj.GenerateResource.cache differ
diff --git a/obj/Debug/NT530.vbprojFakesResolveAssemblyReference.cache b/obj/Debug/NT530.vbprojFakesResolveAssemblyReference.cache
new file mode 100644
index 0000000..57bfdc8
Binary files /dev/null and b/obj/Debug/NT530.vbprojFakesResolveAssemblyReference.cache differ
diff --git a/obj/Debug/NT530校时工具.Form1.resources b/obj/Debug/NT530校时工具.Form1.resources
new file mode 100644
index 0000000..e92ff39
Binary files /dev/null and b/obj/Debug/NT530校时工具.Form1.resources differ
diff --git a/obj/Debug/NT530校时工具.Resources.resources b/obj/Debug/NT530校时工具.Resources.resources
new file mode 100644
index 0000000..c8c823c
Binary files /dev/null and b/obj/Debug/NT530校时工具.Resources.resources differ
diff --git a/obj/Debug/NT530校时工具.TrustInfo.xml b/obj/Debug/NT530校时工具.TrustInfo.xml
new file mode 100644
index 0000000..9c2ae30
--- /dev/null
+++ b/obj/Debug/NT530校时工具.TrustInfo.xml
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/obj/Debug/NT530校时工具.application b/obj/Debug/NT530校时工具.application
new file mode 100644
index 0000000..6b19f21
--- /dev/null
+++ b/obj/Debug/NT530校时工具.application
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ I6AxGtsfckbPdYZx/YFUt9NYqL0RHZUPR/xaCvfvrqw=
+
+
+
+
\ No newline at end of file
diff --git a/obj/Debug/NT530校时工具.exe b/obj/Debug/NT530校时工具.exe
new file mode 100644
index 0000000..624fd15
Binary files /dev/null and b/obj/Debug/NT530校时工具.exe differ
diff --git a/obj/Debug/NT530校时工具.exe.manifest b/obj/Debug/NT530校时工具.exe.manifest
new file mode 100644
index 0000000..358d6e7
--- /dev/null
+++ b/obj/Debug/NT530校时工具.exe.manifest
@@ -0,0 +1,583 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 9cU6NkxgtDdqaSNzthllqWlok0n5Z+Uix8Kdn3Eo1bs=
+
+
+
+
+
+
+
+
+
+
+
+ /0K8pwRgXhh6u0VSOGixUSjWrxworUCkV51QfTSpU7I=
+
+
+
+
+
+
+
+
+
+
+
+ qWDdTS8PN7PAn/uVZ8MkJrh5ExDX65NcBMgZw9Rr1J4=
+
+
+
+
+
+
+
+
+
+
+
+ fU3eI5lhl3kbpVU9uxoaqn7/U4ddo579M8SGYLbgufY=
+
+
+
+
+
+
+
+
+
+
+
+ NJmZEtXwnJmWoHm+QakbEe1yZKCGviScDp+j9ln+jU8=
+
+
+
+
+
+
+
+
+
+
+
+ ba3nlmT0ihY9aGTISgpsXFW4Vr3680uhh8h/GPkWcjg=
+
+
+
+
+
+
+
+
+
+
+
+ NvHKAfElIqDFD4/kjNBq3CRXHuKg/ySDFbOIuL0A9IQ=
+
+
+
+
+
+
+
+
+
+
+
+ /V++r7OuWbRdvGrGuGfs2+tLS3Fa3rxdF2bhVeY5yvM=
+
+
+
+
+
+
+
+
+
+
+
+ B1znnoQEETfHiIWzc4wbWgNUfQrip5kW6EQZap0Owds=
+
+
+
+
+
+
+
+
+
+
+
+ 7vlKOf+xKLft6Nw+iTql2d3NMMQWyvaMAXU0hjkfqTE=
+
+
+
+
+
+
+
+
+
+
+
+ 1bfUEwssGf9LpqjScNnNYkQNkJXE+ZRHUDkV8yQ8imE=
+
+
+
+
+
+
+
+
+
+
+
+ arzDO26hBizFnMgwIym5qbteKZCaYE76sMTFQDIMlS8=
+
+
+
+
+
+
+
+
+
+
+
+ mJXsCt/mMTOQBaf0b1TWvXihS7V1DviGEzUwzwTU1bg=
+
+
+
+
+
+
+
+
+
+
+
+ U8fsnsd6lnATQT/egLiE/sDzeegQiVtyJSqmQ+yS7eA=
+
+
+
+
+
+
+
+
+
+
+
+ Ri/yxc7FPYBz2JtiM/4VlnNGk8zJzNVgD4s1ZZtLpQI=
+
+
+
+
+
+
+
+
+
+
+
+ V1163KRDWq+JTnP/g7pwv6ajgY7FNeG+cx4DmGtT2tI=
+
+
+
+
+
+
+
+
+
+
+
+ zevH3gQb0MO0cJ6C/YUvPj6pQiJmtnbVGVLE7t4qDbU=
+
+
+
+
+
+
+
+
+
+
+
+ QH+nkSna5vMMRDErG9YHDd24w47j+DuSSCfbZ5bwnXc=
+
+
+
+
+
+
+
+
+
+
+
+ lPIE8okBzZGm3tZTpVn1Q7YtVGhO7hbIqdeQHVdjVyA=
+
+
+
+
+
+
+
+
+
+
+
+ HGkkpLAwURXUocM768E4CIPI+eJjJIP//QLrqZYjhlI=
+
+
+
+
+
+
+
+
+
+
+
+ bIc9FR4bFVsG5d1WJqcmQNqvS/Y8oqlW3p/pCxd6sOw=
+
+
+
+
+
+
+
+
+
+
+
+ cZz42uc6085Je3OLSYRrKiJG1Yj518RjdxOFveHRPUQ=
+
+
+
+
+
+
+
+
+
+
+
+ 5zgiIxcqwwXrfnPc1JFVbYsim3aT0xyFvgJ25tIsXPw=
+
+
+
+
+
+
+
+
+
+
+
+ ubTZKtooUZNXA5MPZbynAQemut67/NtLN8g9kmZWsQA=
+
+
+
+
+
+
+
+
+
+
+
+ 4eJ697B+7t9c5xqSVfBCKBam/FhJpIPGcU4bRyBE+p0=
+
+
+
+
+
+
+
+
+
+
+
+ ui8wOl+8uO2LHVfCbs+F9t0gxroa1RomTPWS+y9sVeQ=
+
+
+
+
+
+
+
+
+
+
+
+ V/AIu33HtiM6nyKkWUGaAUnZsKocxWSRgr83Um27uyQ=
+
+
+
+
+
+
+
+
+
+
+
+ rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs=
+
+
+
+
+
+
+
+
+
+
+
+ vhBo0a8kBUmvzUjyLPzxWsEMRjBgClNErgJdMFUCmDQ=
+
+
+
+
+
+
+
+
+
+
+
+ gMWoxwR4y7/dltXcGqQtingz0PKp8SmYlVhaK9RyTnY=
+
+
+
+
+
+
+
+
+
+
+
+ JsARknFP5RoZF9xNv2kzTGtdHZiDSydv7wBpaepmrXY=
+
+
+
+
+
+
+
+
+
+
+
+ 32xAvqqkkG5yvuEr4F2fg4F+pspcVmNs+J+hXxXJXGA=
+
+
+
+
+
+
+
+
+
+
+
+ GIdZJhX8CLvJGtYjB8jBHfwUxFvxINJx1mvkoNGhSac=
+
+
+
+
+
+
+
+
+
+
+
+ kdZASqIUqkuiHgZhgKiMvpVl5SMWSRERy38jn8SYL4I=
+
+
+
+
+
+
+
+
+
+
+
+ vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8=
+
+
+
+
+
+
+
+
+
+
+
+ HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM=
+
+
+
+
+
+
+
+
+
+
+
+ N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8=
+
+
+
+
+
+
+
+
+
+
+
+ T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y=
+
+
+
+
+
+
+
+
+
+
+
+ MJMwwGHBeSdGj9AATQVmQ/tbZ5FRQB5syUdhET+525c=
+
+
+
+
+
+
+
+
+
+ CA0joXWjephERCJ2m3DUmXiNTCCEnnIEHfikawcagDU=
+
+
+
+
+
+
+
+
+ qEteaDndA8SvziyeEEnIBIH9q3ET1PS1OqxIDfFGoQw=
+
+
+
+
+
+
+
+
+ tDatzRgnxjtvtfbo1p7pSLqbGM+8aKw1g9N+mQZlPFI=
+
+
+
+
+
+
+
+
+ B/ww4MkioMte7sU+EpZRQzqs+tevfTVD1npBoQGkPZ0=
+
+
+
+
+
+
+
+
+ zdbEB7YTcSgOScmis0r07AawGRmT5u3o77kjWZCDeXc=
+
+
+
+
+
+
+
+
+ bersL5bIocIGmKk93UaNVEe1WsQm3Dge712RsZlTu3s=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/obj/Debug/NT530校时工具.pdb b/obj/Debug/NT530校时工具.pdb
new file mode 100644
index 0000000..7dbb80b
Binary files /dev/null and b/obj/Debug/NT530校时工具.pdb differ
diff --git a/obj/Debug/NT530校时工具.xml b/obj/Debug/NT530校时工具.xml
new file mode 100644
index 0000000..2633853
--- /dev/null
+++ b/obj/Debug/NT530校时工具.xml
@@ -0,0 +1,1451 @@
+
+
+
+
+NT530校时工具
+
+
+
+
+
+ 一个强类型的资源类,用于查找本地化的字符串等。
+
+
+
+
+ 返回此类使用的缓存的 ResourceManager 实例。
+
+
+
+
+ 重写当前线程的 CurrentUICulture 属性,对
+ 使用此强类型资源类的所有资源查找执行重写。
+
+
+
+
+ 查找类似 的本地化字符串。
+
+
+
+
+ Contains the schema of a single DB column.
+
+
+
+
+ 清空数据表
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 创建表,同时复制基础表数据(不包含原表索引与主键)
+ 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+
+ 表名
+ 基础表名
+
+
+
+
+ 不存在表时即创建表,同时复制基础表数据(不包含原表索引与主键)
+ 若想复制表结构加数据,则先复制表结构创建表,再拷贝数据
+
+ 表名
+ 基础表名
+
+
+
+
+ 复制基础表数据到新表中
+
+ 表名
+ 基础表名
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ Contains the entire database schema
+
+
+
+
+ 判断列名
+
+
+
+
+
+ 判断条件
+
+
+
+
+
+ 判断值
+
+
+
+
+
+ 当前条件与上一个条件的逻辑关系
+
+
+
+
+
+ 将当前条件转换为字符串,不支持将条件逻辑关系同时转换
+
+
+
+
+
+ 查询条件的表名
+
+
+
+
+
+ 当IsSearchAllCols = False时,查询返回列名集合
+
+
+
+
+
+ 查询的条件
+
+
+
+
+
+ 排序方式
+
+
+
+
+
+ 但需要排序时排序列名
+
+
+
+
+
+ 从返回结果提取指定行的内容
+
+
+
+
+
+ Describes a single view schema
+
+
+
+
+ Contains the view name
+
+
+
+
+ Contains the view SQL statement
+
+
+
+
+ 1 byte,小整数值
+
+
+
+
+ 2 bytes,大整数值
+
+
+
+
+ 3 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 8 bytes,极大整数值
+
+
+
+
+ 4 bytes,单精度浮点数值
+
+
+
+
+ 8 bytes,双精度浮点数值
+
+
+
+
+ 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+
+
+
+
+ 3 bytes,日期值,YYYY-MM-DD
+
+
+
+
+ 3 bytes,时间值或持续时间,HH:MM:SS
+
+
+
+
+ 1 bytes,年份值,YYYY
+
+
+
+
+ 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+
+
+
+
+ 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+
+
+
+
+ 0-255 bytes,定长字符串
+
+
+
+
+ 0-65535 bytes,变长字符串
+
+
+
+
+ 0-255 bytes,不超过 255 个字符的二进制字符串
+
+
+
+
+ 0-255 bytes,短文本字符串
+
+
+
+
+ 0-65 535 bytes,二进制形式的长文本数据
+
+
+
+
+ 0-65 535 bytes,长文本数据
+
+
+
+
+ 0-16 777 215 bytes,二进制形式的中等长度文本数据
+
+
+
+
+ 0-16 777 215 bytes,中等长度文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,二进制形式的极大文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,极大文本数据
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 数据类型是否带符号
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 是否为唯一值
+
+
+
+
+
+ 查询指定数据表的信息
+
+
+
+
+
+
+ 数据库语句助手
+ 时间:2020-12-21
+ 作者:ML
+ 版本:1.0
+
+ 注意:添加一条数据库帮助语句时,需要考虑Mysql/Sqlite/Mssql等数据库是否支持命令,不支持则需要在对应帮助类中重写该帮助语句
+ 注意:Sqlite数据库与大多数据库不相同,DB开头数据库语句大多不适用
+
+
+
+
+
+ 查询指定数据表符合条件的所有数据
+
+ 指定表名
+ 查询条件,
+
+
+
+
+ 查询表符合条件的所有指定列的数据
+
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询表符合条件的所有指定列的数据
+
+ 表名
+ 条件
+
+
+
+
+ 查询指定表包含的内容行数
+
+ 数据表名
+ 查询条件
+
+
+
+
+ 查询指定数据表的信息
+
+ 表名
+
+
+
+
+ 查询指定数据表是否存在的信息,返回查询当前表在数据库中存在的数量
+
+ 表名
+
+
+
+
+ 数据表插入一行数据
+
+ 表名
+ 列名字符串
+ 列值字符串
+
+
+
+
+ 数据表插入一行数据
+
+ 表名
+ 列名与列值键值对
+
+
+
+
+ 数据表插入一行,通过命令参数方式执行时使用
+
+
+
+
+
+
+
+ 数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+
+ 表名
+ 字段列表
+
+
+
+
+ 更新指定表数据
+
+ 指定表名
+ 更新字符串
+
+
+
+
+
+ 更新指定表数据
+
+ 指定表名
+ 更新列名与列值键值对
+ 更新列索引条件
+
+
+
+
+ 更新指定数据库中指定表数据,参数名由@{ColName}
+
+ 指定表名
+ 更新列名的集合
+ 更新列索引条件
+
+
+
+
+ 指定数据表增加一列数据
+
+ 表名
+ 列名
+ 列类型
+ 是否允许为空
+
+
+
+
+ 数据表删除一列数据
+
+ 表名
+ 需要删除的列名,仅一列
+
+
+
+
+ 删除指定表多行数据
+
+ 表名
+ 条件
+
+
+
+
+ 创建数据表
+
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 创建数据表,如果存在则不创建
+
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 清空数据表,表依旧存在
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 删除数据表
+
+ 数据表名
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的数据
+
+ 数据库名
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的去重数据
+
+ 数据库名
+ 列名集合,需要返回多列时用','符号分隔列名
+ 表名
+ 条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有指定列的数据
+
+ 数据库名
+ 表名
+ 条件
+
+
+
+
+ 查询指定表包含的内容行数
+
+ 数据库名
+ 数据表名
+ 查询条件
+
+
+
+
+ 查询指定数据库中指定数据表符合条件的所有数据
+
+
+ 数据库名
+ 数据表名
+ 查询条件(可选)
+
+
+
+
+ 查询指定数据库中指定数据表的信息
+
+ 数据库名
+ 表名
+
+
+
+
+ 查询指定数据表是否存在的信息,返回查询当前表在指定数据库中存在的数量
+
+ 数据库名
+ 表名
+
+
+
+
+ 指定数据库中数据表插入一行数据
+
+ 数据库名
+ 表名
+ 列名字符串
+ 列值字符串
+
+
+
+
+ 指定数据库中数据表插入一行数据
+
+ 数据库名
+ 表名
+ 列名与列值键值对
+
+
+
+
+ 指定数据库中数据表插入一行,通过命令参数方式执行时使用,参数名由@{ColName}
+
+ 数据库名
+
+ 需要插入列名的集合
+
+
+
+
+ 更新指定数据库中指定表数据
+
+ 数据库名
+ 指定表名
+ 更新字符串
+
+
+
+
+
+ 更新指定数据库中指定表数据,参数名由@{ColName}
+
+ 数据库名
+ 指定表名
+ 更新列名的集合
+ 更新列索引条件
+
+
+
+
+ 更新指定数据库中指定表数据
+
+ 数据库名
+ 指定表名
+ 更新列名与列值键值对
+ 更新列索引条件
+
+
+
+
+ 指定数据库中指定数据表增加一列数据
+
+ 数据库名
+ 表名
+ 列名
+ 列类型
+ 是否允许为空
+
+
+
+
+ 指定数据库中数据表删除一列数据
+
+ 数据库名
+ 表名
+ 需要删除的列名,仅一列
+
+
+
+
+ 指定数据库中指定表删除多行数据
+
+ 数据库名
+ 表名
+ 条件
+
+
+
+
+ 指定数据库中创建数据表
+
+ 数据库名
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 指定数据库中创建数据表,如果存在则不创建
+
+ 数据库名
+ 表名
+ 创建表的列信息字符串
+
+
+
+
+ 清空指定数据库中数据表,表依旧存在
+
+ 数据库名
+ 数据表名
+
+
+
+
+ 删除指定数据库中数据表
+
+ 数据库名
+ 数据表名
+
+
+
+
+ 数据库通用命令执行器
+ 时间:2020-12-21
+ 作者:ML
+ 版本:1.0
+
+
+
+
+ 数据库类型,目前支持Mysql与Sqlite
+
+
+
+
+ 打开数据库连接
+
+
+
+
+
+ 关闭数据库连接
+
+
+
+
+ 创建当前连接的命令执行句柄
+
+
+
+
+
+ 运行非查询语句,返回执行该语句受到影响的行数
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行非查询语句,返回执行该语句受到影响的行数
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回数据库读取流的句柄
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行数据库语句,返回数据库读取流的句柄
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回查询结果的第一行第一列的内容
+
+ 执行的数据库命令文本
+
+
+
+
+ 使用命令参数模式执行数据库语句,返回查询结果的第一行第一列的内容
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+
+ 执行的数据库命令文本
+
+
+
+
+ 执行数据库语句,返回执行结果返回的数据表,常用于查询命令
+
+ 执行的数据库命令文本
+ 执行的数据库命令参数
+
+
+
+
+ 开启事务
+
+
+
+
+
+ 提交事务
+
+
+
+
+ 回滚事务
+
+
+
+
+ 创建数据参数
+
+ 参数数据类型
+ 参数名称
+ 参数值
+
+
+
+
+ 添加数据参数
+
+
+
+
+
+
+
+
+ 清空数据
+
+
+
+
+ 回收资源
+
+
+
+
+ 1 byte,小整数值
+
+
+
+
+ 2 bytes,大整数值
+
+
+
+
+ 3 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 4 bytes,大整数值
+
+
+
+
+ 8 bytes,极大整数值
+
+
+
+
+ 4 bytes,单精度浮点数值
+
+
+
+
+ 8 bytes,双精度浮点数值
+
+
+
+
+ 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2.小数值
+
+
+
+
+ 3 bytes,日期值,YYYY-MM-DD
+
+
+
+
+ 3 bytes,时间值或持续时间,HH:MM:SS
+
+
+
+
+ 1 bytes,年份值,YYYY
+
+
+
+
+ 8 bytes,混合日期和时间值,YYYY-MM-DD HH:MM:SS
+
+
+
+
+ 4 bytes,混合日期和时间值,时间戳,YYYYMMDD HHMMSS
+
+
+
+
+ 0-255 bytes,定长字符串
+
+
+
+
+ 0-65535 bytes,变长字符串
+
+
+
+
+ 0-255 bytes,不超过 255 个字符的二进制字符串
+
+
+
+
+ 0-255 bytes,短文本字符串
+
+
+
+
+ 0-65 535 bytes,二进制形式的长文本数据
+
+
+
+
+ 0-65 535 bytes,长文本数据
+
+
+
+
+ 0-16 777 215 bytes,二进制形式的中等长度文本数据
+
+
+
+
+ 0-16 777 215 bytes,中等长度文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,二进制形式的极大文本数据
+
+
+
+
+ 0-4 294 967 295 bytes,极大文本数据
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 数据类型是否带符号
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 查询指定数据表的信息
+
+
+
+
+
+
+ 列名
+
+
+
+
+
+ 当前值
+
+
+
+
+
+ 默认值
+
+
+
+
+
+ 数据类型
+
+
+
+
+
+ 数据类型长度
+
+
+
+
+
+ 是否允许为空
+
+
+
+
+
+ 是否自动增长
+
+
+
+
+
+ 是否为主键
+
+
+
+
+
+ 是否为唯一值
+
+
+
+
+
+ 项目加载事件
+
+
+
+
+
+
+ 当前时间
+
+
+
+
+ 最后时间
+
+
+
+
+ 时间间隔
+
+
+
+
+ 接收数据偏移量
+
+
+
+
+ 接收数据缓存包
+
+
+
+
+ 串口波特率
+
+
+
+
+ 初始化串口波特率
+
+
+
+
+ 选择串口
+
+
+
+
+
+
+ 串口通信
+
+
+
+
+
+
+ 获取可用串口
+
+
+
+
+ 串口通讯开关
+
+
+
+
+
+
+ 关闭串口
+
+
+
+
+ 配置串口
+
+ 串口名
+ 串口波特率
+
+
+
+ 打开串口
+
+
+
+
+ 发送485串口数据
+
+
+
+
+
+
+ 接收485串口数据
+
+
+
+
+
+
+ 显示串口回复数据
+
+
+
+
+
+ 清除记录
+
+
+
+
+
+
+ 添加记录文本和颜色
+
+ 需要添加的记录内容
+ 需要设置的记录颜色
+
+
+
+ 添加记录
+
+
+
+
+
+
+ 解析串口数据
+
+
+
+
+
+ Byte数组转字符串
+
+
+
+
+
+
+ 读取核心参数信息-委托
+
+
+
+
+ 显示开关状态
+
+
+
+
+
+ 显示设备浓度
+
+
+
+
+
+ 显示工作天数
+
+
+
+
+
+ 显示当前时间
+
+
+
+
+
+ 将 Int32 转为 4 字节数组,低字节在前。
+
+
+
+
+ Int转2个字节Byte
+ 高字节在前,低字节在后
+
+
+
+
+
+
+ 和校验取余数
+ 求Byte数组的和校验取余数
+
+ Byte数组
+
+
+
+
+ 定期上报开关
+
+
+
+
+ 开启定时上报
+
+
+
+
+
+
+ 调试信息输出开关
+
+
+
+
+
+
+ 复位命令下发
+
+
+
+
+
+
+ 指定查询日志内容
+
+
+
+
+
+
+ 一键查询日志内容
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 数据时间结构
+
+
+
+
+ 解析表格排序
+
+
+
+
+ 将数据显示到表格中
+
+
+
+
+
+ 将字符串按 UTF-8 编码转成 Byte 数组。
+
+
+
+
+ 将 Byte 数组按 UTF-8 编码转成字符串。
+
+
+
+
+ 从原数组截取部分数据为新数组。
+
+ 源数组
+ 起始索引(0 起算)
+ 要截取的长度
+
+
+
diff --git a/obj/Debug/System.Data.SQLite.dll b/obj/Debug/System.Data.SQLite.dll
new file mode 100644
index 0000000..ecc1c11
Binary files /dev/null and b/obj/Debug/System.Data.SQLite.dll differ
diff --git a/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll
new file mode 100644
index 0000000..6d0db9d
Binary files /dev/null and b/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll differ
diff --git a/packages.config b/packages.config
new file mode 100644
index 0000000..2a0aba5
--- /dev/null
+++ b/packages.config
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ss.vb b/ss.vb
new file mode 100644
index 0000000..8710d89
--- /dev/null
+++ b/ss.vb
@@ -0,0 +1,85 @@
+' NuGet 安装:Newtonsoft.Json
+Imports Newtonsoft.Json
+
+Public Class Program
+
+
+ '
+ Public Property IsOk As Boolean
+
+ '
+ Public Property Message As Object
+
+ '
+ Public Property Status As Integer
+
+ '
+ Public Property Response As DeviceInfo
+
+
+
+
+
+
+End Class
+
+Public Class DeviceInfo
+ '
+ Public Property ClientId As Integer
+
+ '
+ Public Property MachineType As Integer
+
+ '
+ Public Property Uuid As String
+
+ '
+ Public Property OrderNo As String
+
+ '
+ 'Public Property ProductId As Integer
+
+ '
+ Public Property DeviceName As String
+
+ '
+ Public Property SecretKey As String
+
+ ' 原始字符串,仅做存储
+ '
+ Public Property CreateTimeStr As String
+
+ '
+ Public Property CreateTimeUnix As Long
+
+ '
+ Public Property UpdateTimeStr As String
+
+ '
+ Public Property UpdateTimeUnix As Long
+
+ '
+ Public Property HotelCode As Object
+
+ '
+ Public Property Remark As String
+
+ '
+ Public Property ExcelFileName As Object
+
+ '
+ Public Property ExcelBatchFlag As Long
+
+ '
+ Public Property ClientStatus As Object
+
+ '
+ Public Property IsDelete As Boolean
+
+ '
+ Public Property BrandId As Object
+
+ '
+ Public Property McuUuid As String
+
+End Class
\ No newline at end of file
diff --git a/twitter.ico b/twitter.ico
new file mode 100644
index 0000000..354a08f
Binary files /dev/null and b/twitter.ico differ